q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE3T_XHCGT //================================================================================ //SE3T_XHPT ($0000,$09xx,$1D67) // 概要 // SE3T スプライト>512ドット16色3プレーン>テキスト // XHPT 1番目のパレットが3以上の奇数のときそれを偶数化したパレットのカラーと奥のスプライト・テキストのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットのカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーとカラー0を混ぜたカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが0でないとき // 2番目のパレットを偶数化したパレットのカラー // さもなくば(2番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットのカラーが0でないとき // 3番目のパレットを偶数化したパレットのカラー // さもなくば(3番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラーが0でないとき // グラフィックパレット0のカラー // さもなくば(グラフィックパレット0のカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()==0?((tev(e2p()))!=0?epc(tev(e2p())):epc(tev(e3p()))):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),0))):(e1p()==0?((tev(e2p()))!=0?(epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp())):(epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()))):e1p()==1?(epc(0)!=0?epc(0):tpc(txp())):ls1(e1p())==0?(epc(e1p())!=0?epc(e1p()):tpc(txp())):mix(epc(tev(e1p())),tpc(txp())))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()==0?tev(e2p())!=0?epc(tev(e2p())):epc(tev(e3p())):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),0):e1p()==0?tev(e2p())!=0?epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp()):epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()):e1p()==1?epc(0)!=0?epc(0):tpc(txp()):ls1(e1p())==0?epc(e1p())!=0?epc(e1p()):tpc(txp()):mix(epc(tev(e1p())),tpc(txp())) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())==0?(v5=tev(e2p()))!=0?epc(v5):epc(tev(e3p())):v4==1?epc(0):ls1(v4)==0?epc(v4):mix(epc(tev(v4)),0):(v17=e1p())==0?(v18=tev(e2p()))!=0?(v20=epc(v18))!=0?v20:tpc(txp()):(v23=epc(tev(e3p())))!=0?v23:tpc(txp()):v17==1?(v28=epc(0))!=0?v28:tpc(txp()):ls1(v17)==0?(v32=epc(v17))!=0?v32:tpc(txp()):mix(epc(tev(v17)),tpc(txp())) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=tev(e2p()))!=0?epc(p):epc(tev(e3p())):p==1?epc(0):ls1(p)==0?epc(p):mix(epc(tev(p)),0):(p=e1p())==0?(p=tev(e2p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(tev(e3p())))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):ls1(p)==0?(q=epc(p))!=0?q:tpc(txp()):mix(epc(tev(p)),tpc(txp())) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=e2p()&-2)!=0?epc(p):epc(e3p()&-2):p==1?epc(0):(p&1)==0?epc(p):mix(epc(p&-2),0):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e3p()&-2))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):(p&1)==0?(q=epc(p))!=0?q:tpc(txp()):mix(epc(p&-2),tpc(txp())) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())==0?(p=e2p()&-2)!=0?epo(p):epo(e3p()&-2):p==1?epo(0):(p&1)==0?epo(p):cto(mix(epc(p&-2),0)):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e3p()&-2))!=0?cto(p):tpo(txp()):p==1?(p=epc(0))!=0?cto(p):tpo(txp()):(p&1)==0?(q=epc(p))!=0?cto(q):tpo(txp()):cto(mix(epc(p&-2),tpc(txp()))) SE3T_XHPT { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 28])]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 24 & 15])]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 20 & 15])]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 16 & 15])]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 12 & 15])]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 8 & 15])]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 4 & 15])]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp & 15])]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 28])]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 24 & 15])]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 20 & 15])]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 16 & 15])]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 12 & 15])]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 8 & 15])]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 4 & 15])]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp & 15])]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE3T_XHPT //================================================================================ //SE3T_XHPG ($0000,$09xx,$1E67) // 概要 // SE3T スプライト>512ドット16色3プレーン>テキスト // XHPG 1番目のパレットが3以上の奇数のときそれを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットのカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが0でないとき // 2番目のパレットを偶数化したパレットのカラー // さもなくば(2番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットのカラーが0でないとき // 3番目のパレットを偶数化したパレットのカラー // さもなくば(3番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラーが0でないとき // グラフィックパレット0のカラー // さもなくば(グラフィックパレット0のカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラーが0でないとき // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラー // さもなくば(1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()==0?((tev(e2p()))!=0?epc(tev(e2p())):epc(tev(e3p()))):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),epc(tod(e2q()))))):(e1p()==0?((tev(e2p()))!=0?(epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp())):(epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()))):e1p()==1?(epc(0)!=0?epc(0):tpc(txp())):ls1(e1p())==0?(epc(e1p())!=0?epc(e1p()):tpc(txp())):(mix(epc(tev(e1p())),epc(tod(e2q())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):tpc(txp())))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()==0?tev(e2p())!=0?epc(tev(e2p())):epc(tev(e3p())):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),epc(tod(e2q()))):e1p()==0?tev(e2p())!=0?epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp()):epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()):e1p()==1?epc(0)!=0?epc(0):tpc(txp()):ls1(e1p())==0?epc(e1p())!=0?epc(e1p()):tpc(txp()):mix(epc(tev(e1p())),epc(tod(e2q())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):tpc(txp()) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())==0?(v5=tev(e2p()))!=0?epc(v5):epc(tev(e3p())):v4==1?epc(0):ls1(v4)==0?epc(v4):mix(epc(tev(v4)),epc(tod(e2q()))):(v20=e1p())==0?(v21=tev(e2p()))!=0?(v23=epc(v21))!=0?v23:tpc(txp()):(v26=epc(tev(e3p())))!=0?v26:tpc(txp()):v20==1?(v31=epc(0))!=0?v31:tpc(txp()):ls1(v20)==0?(v35=epc(v20))!=0?v35:tpc(txp()):(v38=mix(epc(tev(v20)),epc(tod(e2q()))))!=0?v38:tpc(txp()) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=tev(e2p()))!=0?epc(p):epc(tev(e3p())):p==1?epc(0):ls1(p)==0?epc(p):mix(epc(tev(p)),epc(tod(e2q()))):(p=e1p())==0?(p=tev(e2p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(tev(e3p())))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):ls1(p)==0?(q=epc(p))!=0?q:tpc(txp()):(q=mix(epc(tev(p)),epc(tod(e2q()))))!=0?q:tpc(txp()) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=e2p()&-2)!=0?epc(p):epc(e3p()&-2):p==1?epc(0):(p&1)==0?epc(p):mix(epc(p&-2),epc(e2q()|1)):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e3p()&-2))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):(p&1)==0?(q=epc(p))!=0?q:tpc(txp()):(q=mix(epc(p&-2),epc(e2q()|1)))!=0?q:tpc(txp()) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())==0?(p=e2p()&-2)!=0?epo(p):epo(e3p()&-2):p==1?epo(0):(p&1)==0?epo(p):cto(mix(epc(p&-2),epc(e2q()|1))):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e3p()&-2))!=0?cto(p):tpo(txp()):p==1?(p=epc(0))!=0?cto(p):tpo(txp()):(p&1)==0?(q=epc(p))!=0?cto(q):tpo(txp()):(q=mix(epc(p&-2),epc(e2q()|1)))!=0?cto(q):tpo(txp()) SE3T_XHPG { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int gz2nd = VideoController.vcnHidden2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); //ONとみなす pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE3T_XHPG //================================================================================ //SE3T_XHPGT ($0000,$09xx,$1F67) // 概要 // SE3T スプライト>512ドット16色3プレーン>テキスト // XHPGT 1番目のパレットが3以上の奇数のときそれを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜてさらに奥のスプライト・テキストのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットのカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラーにさらにカラー0を混ぜたカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが0でないとき // 2番目のパレットを偶数化したパレットのカラー // さもなくば(2番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットのカラーが0でないとき // 3番目のパレットを偶数化したパレットのカラー // さもなくば(3番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラーが0でないとき // グラフィックパレット0のカラー // さもなくば(グラフィックパレット0のカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラーにさらに // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()==0?((tev(e2p()))!=0?epc(tev(e2p())):epc(tev(e3p()))):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(mix(epc(tev(e1p())),epc(tod(e2q()))),0))):(e1p()==0?((tev(e2p()))!=0?(epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp())):(epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()))):e1p()==1?(epc(0)!=0?epc(0):tpc(txp())):ls1(e1p())==0?(epc(e1p())!=0?epc(e1p()):tpc(txp())):mix(mix(epc(tev(e1p())),epc(tod(e2q()))),tpc(txp())))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()==0?tev(e2p())!=0?epc(tev(e2p())):epc(tev(e3p())):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(mix(epc(tev(e1p())),epc(tod(e2q()))),0):e1p()==0?tev(e2p())!=0?epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp()):epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()):e1p()==1?epc(0)!=0?epc(0):tpc(txp()):ls1(e1p())==0?epc(e1p())!=0?epc(e1p()):tpc(txp()):mix(mix(epc(tev(e1p())),epc(tod(e2q()))),tpc(txp())) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())==0?(v5=tev(e2p()))!=0?epc(v5):epc(tev(e3p())):v4==1?epc(0):ls1(v4)==0?epc(v4):mix(mix(epc(tev(v4)),epc(tod(e2q()))),0):(v21=e1p())==0?(v22=tev(e2p()))!=0?(v24=epc(v22))!=0?v24:tpc(txp()):(v27=epc(tev(e3p())))!=0?v27:tpc(txp()):v21==1?(v32=epc(0))!=0?v32:tpc(txp()):ls1(v21)==0?(v36=epc(v21))!=0?v36:tpc(txp()):mix(mix(epc(tev(v21)),epc(tod(e2q()))),tpc(txp())) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=tev(e2p()))!=0?epc(p):epc(tev(e3p())):p==1?epc(0):ls1(p)==0?epc(p):mix(mix(epc(tev(p)),epc(tod(e2q()))),0):(p=e1p())==0?(p=tev(e2p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(tev(e3p())))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):ls1(p)==0?(q=epc(p))!=0?q:tpc(txp()):mix(mix(epc(tev(p)),epc(tod(e2q()))),tpc(txp())) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=e2p()&-2)!=0?epc(p):epc(e3p()&-2):p==1?epc(0):(p&1)==0?epc(p):mix(mix(epc(p&-2),epc(e2q()|1)),0):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e3p()&-2))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):(p&1)==0?(q=epc(p))!=0?q:tpc(txp()):mix(mix(epc(p&-2),epc(e2q()|1)),tpc(txp())) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())==0?(p=e2p()&-2)!=0?epo(p):epo(e3p()&-2):p==1?epo(0):(p&1)==0?epo(p):cto(mix(mix(epc(p&-2),epc(e2q()|1)),0)):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e3p()&-2))!=0?cto(p):tpo(txp()):p==1?(p=epc(0))!=0?cto(p):tpo(txp()):(p&1)==0?(q=epc(p))!=0?cto(q):tpo(txp()):cto(mix(mix(epc(p&-2),epc(e2q()|1)),tpc(txp()))) SE3T_XHPGT { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int gz2nd = VideoController.vcnHidden2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); //ONとみなす pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), VideoController.vcnPal16TS[tp >>> 28])]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 24 & 15])]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 20 & 15])]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 16 & 15])]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 12 & 15])]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 8 & 15])]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), VideoController.vcnPal16TS[tp >>> 28])]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 24 & 15])]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 20 & 15])]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 16 & 15])]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 12 & 15])]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 8 & 15])]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE3T_XHPGT //================================================================================ //SE4T ($0000,$09xx,$006F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // 拡張なし // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0でないとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0でないとき // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のカラーが0でないとき // 2番目のカラー // さもなくば(2番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のカラーが0でないとき // 3番目のカラー // さもなくば(3番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のカラーが0でないとき // 4番目のカラー // さもなくば(4番目のカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()!=0?epc(e1p()):(e2p()!=0?epc(e2p()):(e3p()!=0?epc(e3p()):epc(e4p()))))):(e1p()!=0?(epc(e1p())!=0?epc(e1p()):tpc(txp())):(e2p()!=0?(epc(e2p())!=0?epc(e2p()):tpc(txp())):(e3p()!=0?(epc(e3p())!=0?epc(e3p()):tpc(txp())):(epc(e4p())!=0?epc(e4p()):tpc(txp())))))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()!=0?epc(e1p()):e2p()!=0?epc(e2p()):e3p()!=0?epc(e3p()):epc(e4p()):e1p()!=0?epc(e1p())!=0?epc(e1p()):tpc(txp()):e2p()!=0?epc(e2p())!=0?epc(e2p()):tpc(txp()):e3p()!=0?epc(e3p())!=0?epc(e3p()):tpc(txp()):epc(e4p())!=0?epc(e4p()):tpc(txp()) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())!=0?epc(v4):(v6=e2p())!=0?epc(v6):(v8=e3p())!=0?epc(v8):epc(e4p()):(v12=e1p())!=0?(v13=epc(v12))!=0?v13:tpc(txp()):(v16=e2p())!=0?(v17=epc(v16))!=0?v17:tpc(txp()):(v20=e3p())!=0?(v21=epc(v20))!=0?v21:tpc(txp()):(v24=epc(e4p()))!=0?v24:tpc(txp()) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?epc(p):(p=e2p())!=0?epc(p):(p=e3p())!=0?epc(p):epc(e4p()):(p=e1p())!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e4p()))!=0?p:tpc(txp()) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?epc(p):(p=e2p())!=0?epc(p):(p=e3p())!=0?epc(p):epc(e4p()):(p=e1p())!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e4p()))!=0?p:tpc(txp()) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())!=0?epo(p):(p=e2p())!=0?epo(p):(p=e3p())!=0?epo(p):epo(e4p()):(p=e1p())!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=e2p())!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p())!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e4p()))!=0?cto(p):tpo(txp()) SE4T { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511]] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511]]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T //================================================================================ //XSE4T // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // 拡張あり XSE4T { @Override public void drawRaster (int src, int dst, boolean rh) { switch (VideoController.vcnReg3Curr >>> 8 & 0b01011111) { // .A.XHPGT case 0b00010000: //SE4T_XWC case 0b00010001: //SE4T_XWC case 0b00010010: //SE4T_XWC case 0b00010011: //SE4T_XWC SE4T_XWC.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00010100: //SE4T_XWP case 0b00010101: //SE4T_XWP case 0b00010110: //SE4T_XWP case 0b00010111: //SE4T_XWP SE4T_XWP.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011000: //SE4T_XHC SE4T.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011001: //SE4T_XHCT SE4T_XHCT.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011010: //SE4T_XHCG SE4T_XHCG.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011011: //SE4T_XHCGT SE4T_XHCGT.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011101: //SE4T_XHPT SE4T_XHPT.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011110: //SE4T_XHPG SE4T_XHPG.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b00011111: //SE4T_XHPGT SE4T_XHPGT.drawRaster (src, dst, rh); break; // .A.XHPGT case 0b01000000: //SE4T_A case 0b01000001: //SE4T_A case 0b01000010: //SE4T_A case 0b01000011: //SE4T_A case 0b01000100: //SE4T_A case 0b01000101: //SE4T_A case 0b01000110: //SE4T_A case 0b01000111: //SE4T_A case 0b01001000: //SE4T_A case 0b01001001: //SE4T_A case 0b01001010: //SE4T_A case 0b01001011: //SE4T_A case 0b01001100: //SE4T_A case 0b01001101: //SE4T_A case 0b01001110: //SE4T_A case 0b01001111: //SE4T_A case 0b01010000: //SE4T_A case 0b01010001: //SE4T_A case 0b01010010: //SE4T_A case 0b01010011: //SE4T_A case 0b01010100: //SE4T_A case 0b01010101: //SE4T_A case 0b01010110: //SE4T_A case 0b01010111: //SE4T_A case 0b01011000: //SE4T_A case 0b01011001: //SE4T_A case 0b01011010: //SE4T_A case 0b01011011: //SE4T_A case 0b01011100: //SE4T_A case 0b01011101: //SE4T_A case 0b01011110: //SE4T_A case 0b01011111: //SE4T_A E4_A.drawRaster (src, dst, rh); break; default: SE4T.drawRaster (src, dst, rh); VideoController.vcnReportUnimplemented (XSE4T); } //switch } //drawRaster }, //XSE4T //================================================================================ //SE4T_XWC ($0000,$09xx,$106F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XWC 優先順位に関わらず0でない1番目のパレットを偶数化(65536色は奇数化)したパレットのカラーが奇数のとき0でない1番目のパレットのカラーだけ表示する // 手順 // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 2番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 2番目のカラーが0でないとき // 2番目のカラー // さもなくば(2番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 3番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 3番目のカラーが0でないとき // 3番目のカラー // さもなくば(3番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 4番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 4番目のカラーが0でないとき // 4番目のカラー // さもなくば(4番目のカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (e1p()!=0?(ls1(epc(tev(e1p())))!=0?epc(e1p()):(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):epc(e1p())):(epc(e1p())!=0?epc(e1p()):tpc(txp())))):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?epc(e2p()):(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):epc(e2p())):(epc(e2p())!=0?epc(e2p()):tpc(txp())))):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?epc(e3p()):(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):epc(e3p())):(epc(e3p())!=0?epc(e3p()):tpc(txp())))):(ls1(epc(tev(e4p())))!=0?epc(e4p()):(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):epc(e4p())):(epc(e4p())!=0?epc(e4p()):tpc(txp()))))))) // 中間コード2 // e1p()!=0?ls1(epc(tev(e1p())))!=0?epc(e1p()):ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):epc(e1p()):epc(e1p())!=0?epc(e1p()):tpc(txp()):e2p()!=0?ls1(epc(tev(e2p())))!=0?epc(e2p()):ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):epc(e2p()):epc(e2p())!=0?epc(e2p()):tpc(txp()):e3p()!=0?ls1(epc(tev(e3p())))!=0?epc(e3p()):ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):epc(e3p()):epc(e3p())!=0?epc(e3p()):tpc(txp()):ls1(epc(tev(e4p())))!=0?epc(e4p()):ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):epc(e4p()):epc(e4p())!=0?epc(e4p()):tpc(txp()) // 中間コード3 // (v0=e1p())!=0?ls1(epc(tev(v0)))!=0?epc(v0):ls4(v6=spp())!=0||v6!=0&&txp()==0?(v8=spc(v6))!=0?v8:epc(v0):(v10=epc(v0))!=0?v10:tpc(txp()):(v13=e2p())!=0?ls1(epc(tev(v13)))!=0?epc(v13):ls4(v19=spp())!=0||v19!=0&&txp()==0?(v21=spc(v19))!=0?v21:epc(v13):(v23=epc(v13))!=0?v23:tpc(txp()):(v26=e3p())!=0?ls1(epc(tev(v26)))!=0?epc(v26):ls4(v32=spp())!=0||v32!=0&&txp()==0?(v34=spc(v32))!=0?v34:epc(v26):(v36=epc(v26))!=0?v36:tpc(txp()):ls1(epc(tev(v42=e4p())))!=0?epc(v42):ls4(v45=spp())!=0||v45!=0&&txp()==0?(v47=spc(v45))!=0?v47:epc(v42):(v49=epc(v42))!=0?v49:tpc(txp()) // 中間コード4 // (p=e1p())!=0?ls1(epc(tev(p)))!=0?epc(p):ls4(q=spp())!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?ls1(epc(tev(p)))!=0?epc(p):ls4(q=spp())!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?ls1(epc(tev(p)))!=0?epc(p):ls4(q=spp())!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):ls1(epc(tev(p=e4p())))!=0?epc(p):ls4(q=spp())!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()) // 中間コード5 // (p=e1p())!=0?(epc(p&-2)&1)!=0?epc(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?(epc(p&-2)&1)!=0?epc(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?(epc(p&-2)&1)!=0?epc(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):(epc((p=e4p())&-2)&1)!=0?epc(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()) // 中間コード6 // (p=e1p())!=0?(epc(p&-2)&1)!=0?epo(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?cto(r):epo(p):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e2p())!=0?(epc(p&-2)&1)!=0?epo(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?cto(r):epo(p):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p())!=0?(epc(p&-2)&1)!=0?epo(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?cto(r):epo(p):(q=epc(p))!=0?cto(q):tpo(txp()):(epc((p=e4p())&-2)&1)!=0?epo(p):((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?cto(r):epo(p):(q=epc(p))!=0?cto(q):tpo(txp()) SE4T_XWC { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q, r; XEiJ.pnlBM[da] = ((p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = ((p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = ((p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = ((p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = ((p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = ((p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = ((p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = ((p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q, r; XEiJ.pnlBM[da] = ((p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = ((p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = ((p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = ((p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = ((p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = ((p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = ((p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = ((p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2] & 1) != 0 ? VideoController.vcnPal32G8[p] : ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T_XWC //================================================================================ //SE4T_XWP ($0000,$09xx,$146F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XWP 優先順位に関わらず1番目のパレットが3以上の奇数のときそれを偶数化したパレットのカラーだけ表示する // 手順 // 1番目のパレットが0のとき // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが0でないとき // 2番目のパレットを偶数化したパレットのカラー // さもなくば(2番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが0でないとき // 3番目のパレットを偶数化したパレットのカラー // さもなくば(3番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが0でないとき // 4番目のパレットを偶数化したパレットのカラー // さもなくば(4番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが1のとき // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // グラフィックパレット0のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // グラフィックパレット0のカラーが0でないとき // グラフィックパレット0のカラー // さもなくば(グラフィックパレット0のカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラー(0は黒) // 中間コード1 // (e1p()==0?(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):((tev(e2p()))!=0?epc(tev(e2p())):((tev(e3p()))!=0?epc(tev(e3p())):epc(tev(e4p()))))):((tev(e2p()))!=0?(epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp())):((tev(e3p()))!=0?(epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp())):(epc(tev(e4p()))!=0?epc(tev(e4p())):tpc(txp()))))):e1p()==1?(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):epc(0)):(epc(0)!=0?epc(0):tpc(txp()))):ls1(e1p())==0?(ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):epc(e1p())):(epc(e1p())!=0?epc(e1p()):tpc(txp()))):epc(tev(e1p()))) // 中間コード2 // e1p()==0?ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):tev(e2p())!=0?epc(tev(e2p())):tev(e3p())!=0?epc(tev(e3p())):epc(tev(e4p())):tev(e2p())!=0?epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp()):tev(e3p())!=0?epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()):epc(tev(e4p()))!=0?epc(tev(e4p())):tpc(txp()):e1p()==1?ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):epc(0):epc(0)!=0?epc(0):tpc(txp()):ls1(e1p())==0?ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):epc(e1p()):epc(e1p())!=0?epc(e1p()):tpc(txp()):epc(tev(e1p())) // 中間コード3 // (v0=e1p())==0?ls4(v2=spp())!=0||v2!=0&&txp()==0?(v4=spc(v2))!=0?v4:(v5=tev(e2p()))!=0?epc(v5):(v8=tev(e3p()))!=0?epc(v8):epc(tev(e4p())):(v14=tev(e2p()))!=0?(v16=epc(v14))!=0?v16:tpc(txp()):(v19=tev(e3p()))!=0?(v21=epc(v19))!=0?v21:tpc(txp()):(v24=epc(tev(e4p())))!=0?v24:tpc(txp()):v0==1?ls4(v30=spp())!=0||v30!=0&&txp()==0?(v32=spc(v30))!=0?v32:epc(0):(v34=epc(0))!=0?v34:tpc(txp()):ls1(v0)==0?ls4(v39=spp())!=0||v39!=0&&txp()==0?(v41=spc(v39))!=0?v41:epc(v0):(v43=epc(v0))!=0?v43:tpc(txp()):epc(tev(v0)) // 中間コード4 // (p=e1p())==0?ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=tev(e2p()))!=0?epc(p):(p=tev(e3p()))!=0?epc(p):epc(tev(e4p())):(p=tev(e2p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=tev(e3p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(tev(e4p())))!=0?p:tpc(txp()):p==1?ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:epc(0):(p=epc(0))!=0?p:tpc(txp()):ls1(p)==0?ls4(q=spp())!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):epc(tev(p)) // 中間コード5 // (p=e1p())==0?((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e2p()&-2)!=0?epc(p):(p=e3p()&-2)!=0?epc(p):epc(e4p()&-2):(p=e2p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e3p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e4p()&-2))!=0?p:tpc(txp()):p==1?((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:epc(0):(p=epc(0))!=0?p:tpc(txp()):(p&1)==0?((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?r:epc(p):(q=epc(p))!=0?q:tpc(txp()):epc(p&-2) // 中間コード6 // (p=e1p())==0?((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e2p()&-2)!=0?epo(p):(p=e3p()&-2)!=0?epo(p):epo(e4p()&-2):(p=e2p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e4p()&-2))!=0?cto(p):tpo(txp()):p==1?((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):epo(0):(p=epc(0))!=0?cto(p):tpo(txp()):(p&1)==0?((q=spp())&15)!=0||q!=0&&txp()==0?(r=spc(q))!=0?cto(r):epo(p):(q=epc(p))!=0?cto(q):tpo(txp()):epo(p&-2) SE4T_XWP { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q, r; XEiJ.pnlBM[da] = ((p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 1] = ((p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 2] = ((p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 3] = ((p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 4] = ((p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 5] = ((p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 6] = ((p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 7] = ((p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPal32G8[p & -2]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q, r; XEiJ.pnlBM[da] = ((p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx]) & 15) != 0 || q != 0 && tp >>> 28 == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 1] = ((p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || q != 0 && (tp >>> 24 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 2] = ((p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || q != 0 && (tp >>> 20 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 3] = ((p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || q != 0 && (tp >>> 16 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 4] = ((p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || q != 0 && (tp >>> 12 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 5] = ((p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || q != 0 && (tp >>> 8 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 6] = ((p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || q != 0 && (tp >>> 4 & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPal32G8[p & -2]); XEiJ.pnlBM[da + 7] = ((p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? ((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? ((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32G8[0] : (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? ((q = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || q != 0 && (tp & 15) == 0 ? (r = VideoController.vcnPal16TS[q]) != 0 ? VideoController.vcnPalTbl[r] : VideoController.vcnPal32G8[p] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPal32G8[p & -2]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T_XWP //================================================================================ //SE4T_XHCT ($0000,$09xx,$196F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XHCT 0でない1番目のパレットを偶数化(65536色は奇数化)したパレットのカラーが奇数のとき0でない1番目のカラーと奥のスプライト・テキストのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のカラーとカラー0を混ぜたカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のカラーとカラー0を混ぜたカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // 2番目のカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のカラーとカラー0を混ぜたカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // 3番目のカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のカラーとカラー0を混ぜたカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // 4番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のカラーと // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のカラーと // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // 2番目のカラーが0でないとき // 2番目のカラー // さもなくば(2番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のカラーと // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // 3番目のカラーが0でないとき // 3番目のカラー // さもなくば(3番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のカラーと // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // 4番目のカラーが0でないとき // 4番目のカラー // さもなくば(4番目のカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()!=0?(ls1(epc(tev(e1p())))!=0?mix(epc(e1p()),0):epc(e1p())):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?mix(epc(e2p()),0):epc(e2p())):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?mix(epc(e3p()),0):epc(e3p())):(ls1(epc(tev(e4p())))!=0?mix(epc(e4p()),0):epc(e4p())))))):(e1p()!=0?(ls1(epc(tev(e1p())))!=0?mix(epc(e1p()),tpc(txp())):(epc(e1p())!=0?epc(e1p()):tpc(txp()))):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?mix(epc(e2p()),tpc(txp())):(epc(e2p())!=0?epc(e2p()):tpc(txp()))):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?mix(epc(e3p()),tpc(txp())):(epc(e3p())!=0?epc(e3p()):tpc(txp()))):(ls1(epc(tev(e4p())))!=0?mix(epc(e4p()),tpc(txp())):(epc(e4p())!=0?epc(e4p()):tpc(txp()))))))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()!=0?ls1(epc(tev(e1p())))!=0?mix(epc(e1p()),0):epc(e1p()):e2p()!=0?ls1(epc(tev(e2p())))!=0?mix(epc(e2p()),0):epc(e2p()):e3p()!=0?ls1(epc(tev(e3p())))!=0?mix(epc(e3p()),0):epc(e3p()):ls1(epc(tev(e4p())))!=0?mix(epc(e4p()),0):epc(e4p()):e1p()!=0?ls1(epc(tev(e1p())))!=0?mix(epc(e1p()),tpc(txp())):epc(e1p())!=0?epc(e1p()):tpc(txp()):e2p()!=0?ls1(epc(tev(e2p())))!=0?mix(epc(e2p()),tpc(txp())):epc(e2p())!=0?epc(e2p()):tpc(txp()):e3p()!=0?ls1(epc(tev(e3p())))!=0?mix(epc(e3p()),tpc(txp())):epc(e3p())!=0?epc(e3p()):tpc(txp()):ls1(epc(tev(e4p())))!=0?mix(epc(e4p()),tpc(txp())):epc(e4p())!=0?epc(e4p()):tpc(txp()) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())!=0?ls1(epc(tev(v4)))!=0?mix(epc(v4),0):epc(v4):(v11=e2p())!=0?ls1(epc(tev(v11)))!=0?mix(epc(v11),0):epc(v11):(v18=e3p())!=0?ls1(epc(tev(v18)))!=0?mix(epc(v18),0):epc(v18):ls1(epc(tev(v28=e4p())))!=0?mix(epc(v28),0):epc(v28):(v32=e1p())!=0?ls1(epc(tev(v32)))!=0?mix(epc(v32),tpc(txp())):(v40=epc(v32))!=0?v40:tpc(txp()):(v43=e2p())!=0?ls1(epc(tev(v43)))!=0?mix(epc(v43),tpc(txp())):(v51=epc(v43))!=0?v51:tpc(txp()):(v54=e3p())!=0?ls1(epc(tev(v54)))!=0?mix(epc(v54),tpc(txp())):(v62=epc(v54))!=0?v62:tpc(txp()):ls1(epc(tev(v68=e4p())))!=0?mix(epc(v68),tpc(txp())):(v73=epc(v68))!=0?v73:tpc(txp()) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?ls1(epc(tev(p)))!=0?mix(epc(p),0):epc(p):(p=e2p())!=0?ls1(epc(tev(p)))!=0?mix(epc(p),0):epc(p):(p=e3p())!=0?ls1(epc(tev(p)))!=0?mix(epc(p),0):epc(p):ls1(epc(tev(p=e4p())))!=0?mix(epc(p),0):epc(p):(p=e1p())!=0?ls1(epc(tev(p)))!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?ls1(epc(tev(p)))!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?ls1(epc(tev(p)))!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):ls1(epc(tev(p=e4p())))!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?(epc(p&-2)&1)!=0?mix(epc(p),0):epc(p):(p=e2p())!=0?(epc(p&-2)&1)!=0?mix(epc(p),0):epc(p):(p=e3p())!=0?(epc(p&-2)&1)!=0?mix(epc(p),0):epc(p):(epc((p=e4p())&-2)&1)!=0?mix(epc(p),0):epc(p):(p=e1p())!=0?(epc(p&-2)&1)!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?(epc(p&-2)&1)!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?(epc(p&-2)&1)!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(epc((p=e4p())&-2)&1)!=0?mix(epc(p),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())!=0?(epc(p&-2)&1)!=0?cto(mix(epc(p),0)):epo(p):(p=e2p())!=0?(epc(p&-2)&1)!=0?cto(mix(epc(p),0)):epo(p):(p=e3p())!=0?(epc(p&-2)&1)!=0?cto(mix(epc(p),0)):epo(p):(epc((p=e4p())&-2)&1)!=0?cto(mix(epc(p),0)):epo(p):(p=e1p())!=0?(epc(p&-2)&1)!=0?cto(mix(epc(p),tpc(txp()))):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e2p())!=0?(epc(p&-2)&1)!=0?cto(mix(epc(p),tpc(txp()))):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p())!=0?(epc(p&-2)&1)!=0?cto(mix(epc(p),tpc(txp()))):(q=epc(p))!=0?cto(q):tpo(txp()):(epc((p=e4p())&-2)&1)!=0?cto(mix(epc(p),tpc(txp()))):(q=epc(p))!=0?cto(q):tpo(txp()) SE4T_XHCT { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? (VideoController.vcnPal16G8[p & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (VideoController.vcnPal16G8[(p = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2] & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p], VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T_XHCT //================================================================================ //SE4T_XHCG ($0000,$09xx,$1A6F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XHCG 0でない1番目のパレットを偶数化したパレットのカラーが奇数のときそれと2番目のパレットを奇数化したパレットのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // 1番目のパレットが奇数のとき // 2番目(ONとみなす)のパレットを奇数化したパレットのカラー(0は黒) // さもなくば(1番目のパレットが偶数のとき) // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // 2番目のカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // 3番目のパレットが奇数のとき // パレット1のカラー(0は黒) // さもなくば(3番目のパレットが偶数のとき) // 3番目のカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // 4番目のパレットが奇数のとき // パレット1のカラー(0は黒) // さもなくば(4番目のパレットが偶数のとき) // 4番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // 1番目のパレットが奇数のとき // 2番目(ONとみなす)のパレットを奇数化したパレットのカラーが0でないとき // 2番目(ONとみなす)のパレットを奇数化したパレットのカラー // さもなくば(2番目(ONとみなす)のパレットを奇数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが偶数のとき) // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // 2番目のカラーが0でないとき // 2番目のカラー // さもなくば(2番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // 3番目のパレットが奇数のとき // パレット1のカラーが0でないとき // パレット1のカラー // さもなくば(パレット1のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが偶数のとき) // 3番目のカラーが0でないとき // 3番目のカラー // さもなくば(3番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // 4番目のパレットが奇数のとき // パレット1のカラーが0でないとき // パレット1のカラー // さもなくば(パレット1のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(4番目のパレットが偶数のとき) // 4番目のカラーが0でないとき // 4番目のカラー // さもなくば(4番目のカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()!=0?(ls1(epc(tev(e1p())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):(ls1(e1p())!=0?epc(tod(e2q())):epc(e1p()))):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?mix(epc(tev(e2p())),epc(tod(e2q()))):epc(e2p())):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?mix(epc(tev(e3p())),epc(1)):(ls1(e3p())!=0?epc(1):epc(e3p()))):(ls1(epc(tev(e4p())))!=0?mix(epc(tev(e4p())),epc(1)):(ls1(e4p())!=0?epc(1):epc(e4p()))))))):(e1p()!=0?(ls1(epc(tev(e1p())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):(ls1(e1p())!=0?(epc(tod(e2q()))!=0?epc(tod(e2q())):tpc(txp())):(epc(e1p())!=0?epc(e1p()):tpc(txp())))):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?mix(epc(tev(e2p())),epc(tod(e2q()))):(epc(e2p())!=0?epc(e2p()):tpc(txp()))):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?mix(epc(tev(e3p())),epc(1)):(ls1(e3p())!=0?(epc(1)!=0?epc(1):tpc(txp())):(epc(e3p())!=0?epc(e3p()):tpc(txp())))):(ls1(epc(tev(e4p())))!=0?mix(epc(tev(e4p())),epc(1)):(ls1(e4p())!=0?(epc(1)!=0?epc(1):tpc(txp())):(epc(e4p())!=0?epc(e4p()):tpc(txp())))))))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()!=0?ls1(epc(tev(e1p())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):ls1(e1p())!=0?epc(tod(e2q())):epc(e1p()):e2p()!=0?ls1(epc(tev(e2p())))!=0?mix(epc(tev(e2p())),epc(tod(e2q()))):epc(e2p()):e3p()!=0?ls1(epc(tev(e3p())))!=0?mix(epc(tev(e3p())),epc(1)):ls1(e3p())!=0?epc(1):epc(e3p()):ls1(epc(tev(e4p())))!=0?mix(epc(tev(e4p())),epc(1)):ls1(e4p())!=0?epc(1):epc(e4p()):e1p()!=0?ls1(epc(tev(e1p())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):ls1(e1p())!=0?epc(tod(e2q()))!=0?epc(tod(e2q())):tpc(txp()):epc(e1p())!=0?epc(e1p()):tpc(txp()):e2p()!=0?ls1(epc(tev(e2p())))!=0?mix(epc(tev(e2p())),epc(tod(e2q()))):epc(e2p())!=0?epc(e2p()):tpc(txp()):e3p()!=0?ls1(epc(tev(e3p())))!=0?mix(epc(tev(e3p())),epc(1)):ls1(e3p())!=0?epc(1)!=0?epc(1):tpc(txp()):epc(e3p())!=0?epc(e3p()):tpc(txp()):ls1(epc(tev(e4p())))!=0?mix(epc(tev(e4p())),epc(1)):ls1(e4p())!=0?epc(1)!=0?epc(1):tpc(txp()):epc(e4p())!=0?epc(e4p()):tpc(txp()) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())!=0?ls1(v6=epc(tev(v4)))!=0?mix(v6,epc(tod(e2q()))):ls1(v4)!=0?epc(tod(e2q())):epc(v4):(v17=e2p())!=0?ls1(v19=epc(tev(v17)))!=0?mix(v19,epc(tod(e2q()))):epc(v17):(v26=e3p())!=0?ls1(v28=epc(tev(v26)))!=0?mix(v28,epc(1)):ls1(v26)!=0?epc(1):epc(v26):ls1(v36=epc(tev(v38=e4p())))!=0?mix(v36,epc(1)):ls1(v38)!=0?epc(1):epc(v38):(v44=e1p())!=0?ls1(v46=epc(tev(v44)))!=0?mix(v46,epc(tod(e2q()))):ls1(v44)!=0?(v53=epc(tod(e2q())))!=0?v53:tpc(txp()):(v58=epc(v44))!=0?v58:tpc(txp()):(v61=e2p())!=0?ls1(v63=epc(tev(v61)))!=0?mix(v63,epc(tod(e2q()))):(v69=epc(v61))!=0?v69:tpc(txp()):(v72=e3p())!=0?ls1(v74=epc(tev(v72)))!=0?mix(v74,epc(1)):ls1(v72)!=0?(v79=epc(1))!=0?v79:tpc(txp()):(v82=epc(v72))!=0?v82:tpc(txp()):ls1(v86=epc(tev(v88=e4p())))!=0?mix(v86,epc(1)):ls1(v88)!=0?(v92=epc(1))!=0?v92:tpc(txp()):(v95=epc(v88))!=0?v95:tpc(txp()) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?ls1(q=epc(tev(p)))!=0?mix(q,epc(tod(e2q()))):ls1(p)!=0?epc(tod(e2q())):epc(p):(p=e2p())!=0?ls1(q=epc(tev(p)))!=0?mix(q,epc(tod(e2q()))):epc(p):(p=e3p())!=0?ls1(q=epc(tev(p)))!=0?mix(q,epc(1)):ls1(p)!=0?epc(1):epc(p):ls1(p=epc(tev(q=e4p())))!=0?mix(p,epc(1)):ls1(q)!=0?epc(1):epc(q):(p=e1p())!=0?ls1(q=epc(tev(p)))!=0?mix(q,epc(tod(e2q()))):ls1(p)!=0?(p=epc(tod(e2q())))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?ls1(q=epc(tev(p)))!=0?mix(q,epc(tod(e2q()))):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?ls1(q=epc(tev(p)))!=0?mix(q,epc(1)):ls1(p)!=0?(p=epc(1))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):ls1(p=epc(tev(q=e4p())))!=0?mix(p,epc(1)):ls1(q)!=0?(p=epc(1))!=0?p:tpc(txp()):(p=epc(q))!=0?p:tpc(txp()) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?((q=epc(p&-2))&1)!=0?mix(q,epc(e2q()|1)):(p&1)!=0?epc(e2q()|1):epc(p):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?mix(q,epc(e2q()|1)):epc(p):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?mix(q,epc(1)):(p&1)!=0?epc(1):epc(p):((p=epc((q=e4p())&-2))&1)!=0?mix(p,epc(1)):(q&1)!=0?epc(1):epc(q):(p=e1p())!=0?((q=epc(p&-2))&1)!=0?mix(q,epc(e2q()|1)):(p&1)!=0?(p=epc(e2q()|1))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?mix(q,epc(e2q()|1)):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?mix(q,epc(1)):(p&1)!=0?(p=epc(1))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):((p=epc((q=e4p())&-2))&1)!=0?mix(p,epc(1)):(q&1)!=0?(p=epc(1))!=0?p:tpc(txp()):(p=epc(q))!=0?p:tpc(txp()) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(q,epc(e2q()|1))):(p&1)!=0?epo(e2q()|1):epo(p):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(q,epc(e2q()|1))):epo(p):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(q,epc(1))):(p&1)!=0?epo(1):epo(p):((p=epc((q=e4p())&-2))&1)!=0?cto(mix(p,epc(1))):(q&1)!=0?epo(1):epo(q):(p=e1p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(q,epc(e2q()|1))):(p&1)!=0?(p=epc(e2q()|1))!=0?cto(p):tpo(txp()):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(q,epc(e2q()|1))):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(q,epc(1))):(p&1)!=0?(p=epc(1))!=0?cto(p):tpo(txp()):(q=epc(p))!=0?cto(q):tpo(txp()):((p=epc((q=e4p())&-2))&1)!=0?cto(mix(p,epc(1))):(q&1)!=0?(p=epc(1))!=0?cto(p):tpo(txp()):(p=epc(q))!=0?cto(p):tpo(txp()) SE4T_XHCG { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int gz2nd = VideoController.vcnHidden2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); //ONとみなす pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T_XHCG //================================================================================ //SE4T_XHCGT ($0000,$09xx,$1B6F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XHCGT 0でない1番目のパレットを偶数化したパレットのカラーが奇数のときそれと2番目のパレットを奇数化したパレットのカラーを混ぜてさらに奥のスプライト・テキストのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラーにさらにカラー0を混ぜたカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // 1番目のパレットが奇数のとき // 2番目(ONとみなす)のパレットを奇数化したパレットのカラー(0は黒) // さもなくば(1番目のパレットが偶数のとき) // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラーにさらにカラー0を混ぜたカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // 2番目のカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラーにさらにカラー0を混ぜたカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // 3番目のパレットが奇数のとき // パレット1のカラー(0は黒) // さもなくば(3番目のパレットが偶数のとき) // 3番目のカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラーにさらにカラー0を混ぜたカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // 4番目のパレットが奇数のとき // パレット1のカラー(0は黒) // さもなくば(4番目のパレットが偶数のとき) // 4番目のカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0でないとき // 1番目のパレットを偶数化したパレットのカラーが奇数のとき // 1番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラーにさらに // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(1番目のパレットを偶数化したパレットのカラーが偶数のとき) // 1番目のパレットが奇数のとき // 2番目(ONとみなす)のパレットを奇数化したパレットのカラーが0でないとき // 2番目(ONとみなす)のパレットを奇数化したパレットのカラー // さもなくば(2番目(ONとみなす)のパレットを奇数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが偶数のとき) // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが0のとき) // 2番目のパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが奇数のとき // 2番目のパレットを偶数化したパレットのカラーと2番目(ONとみなす)のパレットを奇数化したパレットのカラーを混ぜたカラーにさらに // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットのカラーが偶数のとき) // 2番目のカラーが0でないとき // 2番目のカラー // さもなくば(2番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットが0のとき) // 3番目のパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが奇数のとき // 3番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラーにさらに // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットのカラーが偶数のとき) // 3番目のパレットが奇数のとき // パレット1のカラーが0でないとき // パレット1のカラー // さもなくば(パレット1のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが偶数のとき) // 3番目のカラーが0でないとき // 3番目のカラー // さもなくば(3番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが奇数のとき // 4番目のパレットを偶数化したパレットのカラーとパレット1のカラーを混ぜたカラーにさらに // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // さもなくば(4番目のパレットを偶数化したパレットのカラーが偶数のとき) // 4番目のパレットが奇数のとき // パレット1のカラーが0でないとき // パレット1のカラー // さもなくば(パレット1のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(4番目のパレットが偶数のとき) // 4番目のカラーが0でないとき // 4番目のカラー // さもなくば(4番目のカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()!=0?(ls1(epc(tev(e1p())))!=0?mix(mix(epc(tev(e1p())),epc(tod(e2q()))),0):(ls1(e1p())!=0?epc(tod(e2q())):epc(e1p()))):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?mix(mix(epc(tev(e2p())),epc(tod(e2q()))),0):epc(e2p())):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?mix(mix(epc(tev(e3p())),epc(1)),0):(ls1(e3p())!=0?epc(1):epc(e3p()))):(ls1(epc(tev(e4p())))!=0?mix(mix(epc(tev(e4p())),epc(1)),0):(ls1(e4p())!=0?epc(1):epc(e4p()))))))):(e1p()!=0?(ls1(epc(tev(e1p())))!=0?mix(mix(epc(tev(e1p())),epc(tod(e2q()))),tpc(txp())):(ls1(e1p())!=0?(epc(tod(e2q()))!=0?epc(tod(e2q())):tpc(txp())):(epc(e1p())!=0?epc(e1p()):tpc(txp())))):(e2p()!=0?(ls1(epc(tev(e2p())))!=0?mix(mix(epc(tev(e2p())),epc(tod(e2q()))),tpc(txp())):(epc(e2p())!=0?epc(e2p()):tpc(txp()))):(e3p()!=0?(ls1(epc(tev(e3p())))!=0?mix(mix(epc(tev(e3p())),epc(1)),tpc(txp())):(ls1(e3p())!=0?(epc(1)!=0?epc(1):tpc(txp())):(epc(e3p())!=0?epc(e3p()):tpc(txp())))):(ls1(epc(tev(e4p())))!=0?mix(mix(epc(tev(e4p())),epc(1)),tpc(txp())):(ls1(e4p())!=0?(epc(1)!=0?epc(1):tpc(txp())):(epc(e4p())!=0?epc(e4p()):tpc(txp())))))))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()!=0?ls1(epc(tev(e1p())))!=0?mix(mix(epc(tev(e1p())),epc(tod(e2q()))),0):ls1(e1p())!=0?epc(tod(e2q())):epc(e1p()):e2p()!=0?ls1(epc(tev(e2p())))!=0?mix(mix(epc(tev(e2p())),epc(tod(e2q()))),0):epc(e2p()):e3p()!=0?ls1(epc(tev(e3p())))!=0?mix(mix(epc(tev(e3p())),epc(1)),0):ls1(e3p())!=0?epc(1):epc(e3p()):ls1(epc(tev(e4p())))!=0?mix(mix(epc(tev(e4p())),epc(1)),0):ls1(e4p())!=0?epc(1):epc(e4p()):e1p()!=0?ls1(epc(tev(e1p())))!=0?mix(mix(epc(tev(e1p())),epc(tod(e2q()))),tpc(txp())):ls1(e1p())!=0?epc(tod(e2q()))!=0?epc(tod(e2q())):tpc(txp()):epc(e1p())!=0?epc(e1p()):tpc(txp()):e2p()!=0?ls1(epc(tev(e2p())))!=0?mix(mix(epc(tev(e2p())),epc(tod(e2q()))),tpc(txp())):epc(e2p())!=0?epc(e2p()):tpc(txp()):e3p()!=0?ls1(epc(tev(e3p())))!=0?mix(mix(epc(tev(e3p())),epc(1)),tpc(txp())):ls1(e3p())!=0?epc(1)!=0?epc(1):tpc(txp()):epc(e3p())!=0?epc(e3p()):tpc(txp()):ls1(epc(tev(e4p())))!=0?mix(mix(epc(tev(e4p())),epc(1)),tpc(txp())):ls1(e4p())!=0?epc(1)!=0?epc(1):tpc(txp()):epc(e4p())!=0?epc(e4p()):tpc(txp()) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())!=0?ls1(v6=epc(tev(v4)))!=0?mix(mix(v6,epc(tod(e2q()))),0):ls1(v4)!=0?epc(tod(e2q())):epc(v4):(v18=e2p())!=0?ls1(v20=epc(tev(v18)))!=0?mix(mix(v20,epc(tod(e2q()))),0):epc(v18):(v28=e3p())!=0?ls1(v30=epc(tev(v28)))!=0?mix(mix(v30,epc(1)),0):ls1(v28)!=0?epc(1):epc(v28):ls1(v39=epc(tev(v41=e4p())))!=0?mix(mix(v39,epc(1)),0):ls1(v41)!=0?epc(1):epc(v41):(v48=e1p())!=0?ls1(v50=epc(tev(v48)))!=0?mix(mix(v50,epc(tod(e2q()))),tpc(txp())):ls1(v48)!=0?(v60=epc(tod(e2q())))!=0?v60:tpc(txp()):(v65=epc(v48))!=0?v65:tpc(txp()):(v68=e2p())!=0?ls1(v70=epc(tev(v68)))!=0?mix(mix(v70,epc(tod(e2q()))),tpc(txp())):(v79=epc(v68))!=0?v79:tpc(txp()):(v82=e3p())!=0?ls1(v84=epc(tev(v82)))!=0?mix(mix(v84,epc(1)),tpc(txp())):ls1(v82)!=0?(v92=epc(1))!=0?v92:tpc(txp()):(v95=epc(v82))!=0?v95:tpc(txp()):ls1(v99=epc(tev(v101=e4p())))!=0?mix(mix(v99,epc(1)),tpc(txp())):ls1(v101)!=0?(v108=epc(1))!=0?v108:tpc(txp()):(v111=epc(v101))!=0?v111:tpc(txp()) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?ls1(q=epc(tev(p)))!=0?mix(mix(q,epc(tod(e2q()))),0):ls1(p)!=0?epc(tod(e2q())):epc(p):(p=e2p())!=0?ls1(q=epc(tev(p)))!=0?mix(mix(q,epc(tod(e2q()))),0):epc(p):(p=e3p())!=0?ls1(q=epc(tev(p)))!=0?mix(mix(q,epc(1)),0):ls1(p)!=0?epc(1):epc(p):ls1(p=epc(tev(q=e4p())))!=0?mix(mix(p,epc(1)),0):ls1(q)!=0?epc(1):epc(q):(p=e1p())!=0?ls1(q=epc(tev(p)))!=0?mix(mix(q,epc(tod(e2q()))),tpc(txp())):ls1(p)!=0?(p=epc(tod(e2q())))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?ls1(q=epc(tev(p)))!=0?mix(mix(q,epc(tod(e2q()))),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?ls1(q=epc(tev(p)))!=0?mix(mix(q,epc(1)),tpc(txp())):ls1(p)!=0?(p=epc(1))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):ls1(p=epc(tev(q=e4p())))!=0?mix(mix(p,epc(1)),tpc(txp())):ls1(q)!=0?(p=epc(1))!=0?p:tpc(txp()):(p=epc(q))!=0?p:tpc(txp()) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())!=0?((q=epc(p&-2))&1)!=0?mix(mix(q,epc(e2q()|1)),0):(p&1)!=0?epc(e2q()|1):epc(p):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?mix(mix(q,epc(e2q()|1)),0):epc(p):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?mix(mix(q,epc(1)),0):(p&1)!=0?epc(1):epc(p):((p=epc((q=e4p())&-2))&1)!=0?mix(mix(p,epc(1)),0):(q&1)!=0?epc(1):epc(q):(p=e1p())!=0?((q=epc(p&-2))&1)!=0?mix(mix(q,epc(e2q()|1)),tpc(txp())):(p&1)!=0?(p=epc(e2q()|1))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?mix(mix(q,epc(e2q()|1)),tpc(txp())):(q=epc(p))!=0?q:tpc(txp()):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?mix(mix(q,epc(1)),tpc(txp())):(p&1)!=0?(p=epc(1))!=0?p:tpc(txp()):(q=epc(p))!=0?q:tpc(txp()):((p=epc((q=e4p())&-2))&1)!=0?mix(mix(p,epc(1)),tpc(txp())):(q&1)!=0?(p=epc(1))!=0?p:tpc(txp()):(p=epc(q))!=0?p:tpc(txp()) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(mix(q,epc(e2q()|1)),0)):(p&1)!=0?epo(e2q()|1):epo(p):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(mix(q,epc(e2q()|1)),0)):epo(p):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(mix(q,epc(1)),0)):(p&1)!=0?epo(1):epo(p):((p=epc((q=e4p())&-2))&1)!=0?cto(mix(mix(p,epc(1)),0)):(q&1)!=0?epo(1):epo(q):(p=e1p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(mix(q,epc(e2q()|1)),tpc(txp()))):(p&1)!=0?(p=epc(e2q()|1))!=0?cto(p):tpo(txp()):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e2p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(mix(q,epc(e2q()|1)),tpc(txp()))):(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p())!=0?((q=epc(p&-2))&1)!=0?cto(mix(mix(q,epc(1)),tpc(txp()))):(p&1)!=0?(p=epc(1))!=0?cto(p):tpo(txp()):(q=epc(p))!=0?cto(q):tpo(txp()):((p=epc((q=e4p())&-2))&1)!=0?cto(mix(mix(p,epc(1)),tpc(txp()))):(q&1)!=0?(p=epc(1))!=0?cto(p):tpo(txp()):(p=epc(q))!=0?cto(p):tpo(txp()) SE4T_XHCGT { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int gz2nd = VideoController.vcnHidden2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); //ONとみなす pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), VideoController.vcnPal16TS[tp >>> 28])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 28])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 28])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), VideoController.vcnPal16TS[tp >>> 28])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy2nd | gx2nd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1]), VideoController.vcnPal16TS[tp >>> 28])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 28])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 28])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 1 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 24 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 2 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 20 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 3 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 3 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 16 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 4 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 4 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 12 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 5 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 5 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 8 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 6 & 511] | 1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 6 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp >>> 4 & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), 0)] : VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), 0)] : (p & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[p] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), 0)] : (q & 1) != 0 ? VideoController.vcnPal32G8[1] : VideoController.vcnPal32G8[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 7 & 511] | 1]), VideoController.vcnPal16TS[tp & 15])] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511]) != 0 ? ((q = VideoController.vcnPal16G8[p & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( q, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp & 15])] : (p & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : ((p = VideoController.vcnPal16G8[(q = GraphicScreen.graM4[gy4th | gx4th + 7 & 511]) & -2]) & 1) != 0 ? VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnMix2 ( p, VideoController.vcnPal16G8[1]), VideoController.vcnPal16TS[tp & 15])] : (q & 1) != 0 ? (p = VideoController.vcnPal16G8[1]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[q]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T_XHCGT //================================================================================ //SE4T_XHPT ($0000,$09xx,$1D6F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XHPT 1番目のパレットが3以上の奇数のときそれを偶数化したパレットのカラーと奥のスプライト・テキストのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーとカラー0を混ぜたカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが0でないとき // 2番目のパレットを偶数化したパレットのカラー // さもなくば(2番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが0でないとき // 3番目のパレットを偶数化したパレットのカラー // さもなくば(3番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが0でないとき // 4番目のパレットを偶数化したパレットのカラー // さもなくば(4番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラーが0でないとき // グラフィックパレット0のカラー // さもなくば(グラフィックパレット0のカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと // テキストカラー(0は黒) // を混ぜたカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()==0?((tev(e2p()))!=0?epc(tev(e2p())):((tev(e3p()))!=0?epc(tev(e3p())):epc(tev(e4p())))):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),0))):(e1p()==0?((tev(e2p()))!=0?(epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp())):((tev(e3p()))!=0?(epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp())):(epc(tev(e4p()))!=0?epc(tev(e4p())):tpc(txp())))):e1p()==1?(epc(0)!=0?epc(0):tpc(txp())):ls1(e1p())==0?(epc(e1p())!=0?epc(e1p()):tpc(txp())):mix(epc(tev(e1p())),tpc(txp())))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()==0?tev(e2p())!=0?epc(tev(e2p())):tev(e3p())!=0?epc(tev(e3p())):epc(tev(e4p())):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),0):e1p()==0?tev(e2p())!=0?epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp()):tev(e3p())!=0?epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()):epc(tev(e4p()))!=0?epc(tev(e4p())):tpc(txp()):e1p()==1?epc(0)!=0?epc(0):tpc(txp()):ls1(e1p())==0?epc(e1p())!=0?epc(e1p()):tpc(txp()):mix(epc(tev(e1p())),tpc(txp())) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())==0?(v5=tev(e2p()))!=0?epc(v5):(v8=tev(e3p()))!=0?epc(v8):epc(tev(e4p())):v4==1?epc(0):ls1(v4)==0?epc(v4):mix(epc(tev(v4)),0):(v20=e1p())==0?(v21=tev(e2p()))!=0?(v23=epc(v21))!=0?v23:tpc(txp()):(v26=tev(e3p()))!=0?(v28=epc(v26))!=0?v28:tpc(txp()):(v31=epc(tev(e4p())))!=0?v31:tpc(txp()):v20==1?(v36=epc(0))!=0?v36:tpc(txp()):ls1(v20)==0?(v40=epc(v20))!=0?v40:tpc(txp()):mix(epc(tev(v20)),tpc(txp())) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=tev(e2p()))!=0?epc(p):(p=tev(e3p()))!=0?epc(p):epc(tev(e4p())):p==1?epc(0):ls1(p)==0?epc(p):mix(epc(tev(p)),0):(p=e1p())==0?(p=tev(e2p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=tev(e3p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(tev(e4p())))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):ls1(p)==0?(q=epc(p))!=0?q:tpc(txp()):mix(epc(tev(p)),tpc(txp())) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=e2p()&-2)!=0?epc(p):(p=e3p()&-2)!=0?epc(p):epc(e4p()&-2):p==1?epc(0):(p&1)==0?epc(p):mix(epc(p&-2),0):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e3p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e4p()&-2))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):(p&1)==0?(q=epc(p))!=0?q:tpc(txp()):mix(epc(p&-2),tpc(txp())) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())==0?(p=e2p()&-2)!=0?epo(p):(p=e3p()&-2)!=0?epo(p):epo(e4p()&-2):p==1?epo(0):(p&1)==0?epo(p):cto(mix(epc(p&-2),0)):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e4p()&-2))!=0?cto(p):tpo(txp()):p==1?(p=epc(0))!=0?cto(p):tpo(txp()):(p&1)==0?(q=epc(p))!=0?cto(q):tpo(txp()):cto(mix(epc(p&-2),tpc(txp()))) SE4T_XHPT { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 28])]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 24 & 15])]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 20 & 15])]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 16 & 15])]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 12 & 15])]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 8 & 15])]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 4 & 15])]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp & 15])]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } else { //テキスト桁境界に合っていないとき // ts=1のとき int tt = ts + 8; //tt=9 ts += 16; //ts=17 // ........ ........ ........ 01234567 m8[ta0+tc] int p0 = MainMemory.mmrM8[ta0 + tc] << ts; //.......0 1234567_ ________ ________ p0=m8[ta0+tc]<<ts int p1 = MainMemory.mmrM8[ta1 + tc] << ts; int p2 = MainMemory.mmrM8[ta2 + tc] << ts; int p3 = MainMemory.mmrM8[ta3 + tc] << ts; tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 while (da < db) { // ........ ........ .1234567 ________ p0>>tt // ........ ........ .1234567 89abcdef p0>>tt|m8[ta0+tc]&255 p0 = (p0 >> tt | MainMemory.mmrM8[ta0 + tc] & 255) << ts; //12345678 9abcdef_ ________ ________ p0=(p0>>tt|m8[ta0+tc]&255)<<ts p1 = (p1 >> tt | MainMemory.mmrM8[ta1 + tc] & 255) << ts; //~~~~~~~~ p2 = (p2 >> tt | MainMemory.mmrM8[ta2 + tc] & 255) << ts; //ここを使う p3 = (p3 >> tt | MainMemory.mmrM8[ta3 + tc] & 255) << ts; int tp = (VideoController.VCN_TXP3[p3 >>> 24] | VideoController.VCN_TXP2[p2 >>> 24] | VideoController.VCN_TXP1[p1 >>> 24] | VideoController.VCN_TXP0[p0 >>> 24]); //符号なし右シフトで&255を省略 tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 28])]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 24 & 15])]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 20 & 15])]); XEiJ.pnlBM[da + 3] = (((p = SpriteScreen.sprBuffer[sx + 3]) & 15) != 0 || p != 0 && (tp >>> 16 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 3 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 3 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 3 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 16 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 16 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 16 & 15])]); XEiJ.pnlBM[da + 4] = (((p = SpriteScreen.sprBuffer[sx + 4]) & 15) != 0 || p != 0 && (tp >>> 12 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 4 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 4 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 4 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 12 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 12 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 12 & 15])]); XEiJ.pnlBM[da + 5] = (((p = SpriteScreen.sprBuffer[sx + 5]) & 15) != 0 || p != 0 && (tp >>> 8 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 5 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 5 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 5 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 8 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 8 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 8 & 15])]); XEiJ.pnlBM[da + 6] = (((p = SpriteScreen.sprBuffer[sx + 6]) & 15) != 0 || p != 0 && (tp >>> 4 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 6 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 6 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 6 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 4 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 4 & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp >>> 4 & 15])]); XEiJ.pnlBM[da + 7] = (((p = SpriteScreen.sprBuffer[sx + 7]) & 15) != 0 || p != 0 && (tp & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], 0)] : (p = GraphicScreen.graM4[gy1st | gx1st + 7 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 7 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 7 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp & 15] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16TS[tp & 15])]); sx += 8; gx1st += 8; gx2nd += 8; gx3rd += 8; gx4th += 8; da += 8; } //while da<db } //if ts==0 } //drawRaster }, //SE4T_XHPT //================================================================================ //SE4T_XHPG ($0000,$09xx,$1E6F) // 概要 // SE4T スプライト>512ドット16色4プレーン>テキスト // XHPG 1番目のパレットが3以上の奇数のときそれを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜる // 手順 // スプライトパレットの下位4bitが0でないまたは(スプライトパレットが0でないかつテキストパレットが0)のとき // スプライトカラーが0でないとき // スプライトカラー // さもなくば(スプライトカラーが0のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラー(0は黒) // さもなくば(スプライトパレットが0または(スプライトパレットの下位4bitが0かつテキストパレットが0でない)のとき) // 1番目のパレットが0のとき // 2番目のパレットを偶数化したパレットが0でないとき // 2番目のパレットを偶数化したパレットのカラーが0でないとき // 2番目のパレットを偶数化したパレットのカラー // さもなくば(2番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(2番目のパレットを偶数化したパレットが0のとき) // 3番目のパレットを偶数化したパレットが0でないとき // 3番目のパレットを偶数化したパレットのカラーが0でないとき // 3番目のパレットを偶数化したパレットのカラー // さもなくば(3番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // さもなくば(3番目のパレットを偶数化したパレットが0のとき) // 4番目のパレットを偶数化したパレットのカラーが0でないとき // 4番目のパレットを偶数化したパレットのカラー // さもなくば(4番目のパレットを偶数化したパレットのカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが1のとき // グラフィックパレット0のカラーが0でないとき // グラフィックパレット0のカラー // さもなくば(グラフィックパレット0のカラーが0のとき) // テキストカラー(0は黒) // 1番目のパレットが2以上の偶数のとき // 1番目のカラーが0でないとき // 1番目のカラー // さもなくば(1番目のカラーが0のとき) // テキストカラー(0は黒) // さもなくば(1番目のパレットが3以上の奇数のとき) // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラーが0でないとき // 1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラー // さもなくば(1番目のパレットを偶数化したパレットのカラーと2番目のパレットを奇数化したパレットのカラーを混ぜたカラーが0のとき) // テキストカラー(0は黒) // 中間コード1 // (ls4(spp())!=0||(spp()!=0&&txp()==0)?(spc(spp())!=0?spc(spp()):(e1p()==0?((tev(e2p()))!=0?epc(tev(e2p())):((tev(e3p()))!=0?epc(tev(e3p())):epc(tev(e4p())))):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),epc(tod(e2q()))))):(e1p()==0?((tev(e2p()))!=0?(epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp())):((tev(e3p()))!=0?(epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp())):(epc(tev(e4p()))!=0?epc(tev(e4p())):tpc(txp())))):e1p()==1?(epc(0)!=0?epc(0):tpc(txp())):ls1(e1p())==0?(epc(e1p())!=0?epc(e1p()):tpc(txp())):(mix(epc(tev(e1p())),epc(tod(e2q())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):tpc(txp())))) // 中間コード2 // ls4(spp())!=0||spp()!=0&&txp()==0?spc(spp())!=0?spc(spp()):e1p()==0?tev(e2p())!=0?epc(tev(e2p())):tev(e3p())!=0?epc(tev(e3p())):epc(tev(e4p())):e1p()==1?epc(0):ls1(e1p())==0?epc(e1p()):mix(epc(tev(e1p())),epc(tod(e2q()))):e1p()==0?tev(e2p())!=0?epc(tev(e2p()))!=0?epc(tev(e2p())):tpc(txp()):tev(e3p())!=0?epc(tev(e3p()))!=0?epc(tev(e3p())):tpc(txp()):epc(tev(e4p()))!=0?epc(tev(e4p())):tpc(txp()):e1p()==1?epc(0)!=0?epc(0):tpc(txp()):ls1(e1p())==0?epc(e1p())!=0?epc(e1p()):tpc(txp()):mix(epc(tev(e1p())),epc(tod(e2q())))!=0?mix(epc(tev(e1p())),epc(tod(e2q()))):tpc(txp()) // 中間コード3 // ls4(v1=spp())!=0||v1!=0&&txp()==0?(v3=spc(v1))!=0?v3:(v4=e1p())==0?(v5=tev(e2p()))!=0?epc(v5):(v8=tev(e3p()))!=0?epc(v8):epc(tev(e4p())):v4==1?epc(0):ls1(v4)==0?epc(v4):mix(epc(tev(v4)),epc(tod(e2q()))):(v23=e1p())==0?(v24=tev(e2p()))!=0?(v26=epc(v24))!=0?v26:tpc(txp()):(v29=tev(e3p()))!=0?(v31=epc(v29))!=0?v31:tpc(txp()):(v34=epc(tev(e4p())))!=0?v34:tpc(txp()):v23==1?(v39=epc(0))!=0?v39:tpc(txp()):ls1(v23)==0?(v43=epc(v23))!=0?v43:tpc(txp()):(v46=mix(epc(tev(v23)),epc(tod(e2q()))))!=0?v46:tpc(txp()) // 中間コード4 // ls4(p=spp())!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=tev(e2p()))!=0?epc(p):(p=tev(e3p()))!=0?epc(p):epc(tev(e4p())):p==1?epc(0):ls1(p)==0?epc(p):mix(epc(tev(p)),epc(tod(e2q()))):(p=e1p())==0?(p=tev(e2p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=tev(e3p()))!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(tev(e4p())))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):ls1(p)==0?(q=epc(p))!=0?q:tpc(txp()):(q=mix(epc(tev(p)),epc(tod(e2q()))))!=0?q:tpc(txp()) // 中間コード5 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?q:(p=e1p())==0?(p=e2p()&-2)!=0?epc(p):(p=e3p()&-2)!=0?epc(p):epc(e4p()&-2):p==1?epc(0):(p&1)==0?epc(p):mix(epc(p&-2),epc(e2q()|1)):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=e3p()&-2)!=0?(q=epc(p))!=0?q:tpc(txp()):(p=epc(e4p()&-2))!=0?p:tpc(txp()):p==1?(p=epc(0))!=0?p:tpc(txp()):(p&1)==0?(q=epc(p))!=0?q:tpc(txp()):(q=mix(epc(p&-2),epc(e2q()|1)))!=0?q:tpc(txp()) // 中間コード6 // ((p=spp())&15)!=0||p!=0&&txp()==0?(q=spc(p))!=0?cto(q):(p=e1p())==0?(p=e2p()&-2)!=0?epo(p):(p=e3p()&-2)!=0?epo(p):epo(e4p()&-2):p==1?epo(0):(p&1)==0?epo(p):cto(mix(epc(p&-2),epc(e2q()|1))):(p=e1p())==0?(p=e2p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=e3p()&-2)!=0?(q=epc(p))!=0?cto(q):tpo(txp()):(p=epc(e4p()&-2))!=0?cto(p):tpo(txp()):p==1?(p=epc(0))!=0?cto(p):tpo(txp()):(p&1)==0?(q=epc(p))!=0?cto(q):tpo(txp()):(q=mix(epc(p&-2),epc(e2q()|1)))!=0?cto(q):tpo(txp()) SE4T_XHPG { @Override public void drawRaster (int src, int dst, boolean rh) { SpriteScreen.sprStep3 (); int sx = 16; //スプライトx座標 int pn = VideoController.vcnReg2Curr & 3; //1番目のパレットのGVRAMページ番号 int gx1st = CRTC.crtR12GrXCurr[pn]; int gy1st = VideoController.vcnVisible1st + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 2 & 3; //2番目のパレットのGVRAMページ番号 int gx2nd = CRTC.crtR12GrXCurr[pn]; int gy2nd = VideoController.vcnVisible2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int gz2nd = VideoController.vcnHidden2nd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); //ONとみなす pn = VideoController.vcnReg2Curr >> 4 & 3; //3番目のパレットのGVRAMページ番号 int gx3rd = CRTC.crtR12GrXCurr[pn]; int gy3rd = VideoController.vcnVisible3rd + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); pn = VideoController.vcnReg2Curr >> 6 & 3; //4番目のパレットのGVRAMページ番号 int gx4th = CRTC.crtR12GrXCurr[pn]; int gy4th = VideoController.vcnVisible4th + ((CRTC.crtR13GrYZero[pn] + src & 511) << 9); int ty = CRTC.crtR11TxYZero + src & 1023; //ラスタ int tc = (ty & CRTC.crtMask3) << 7 | CRTC.crtR10TxXCurr >> 3; //テキスト桁位置 int ta0 = 0x00e00000 + ((ty & CRTC.crtMaskMinus4) << 7); //ラスタブロックアドレス int ta1 = 0x00020000 + ta0; int ta2 = 0x00040000 + ta0; int ta3 = 0x00060000 + ta0; int ts = CRTC.crtR10TxXCurr & 7; //テキスト桁境界からのずれ int da = dst << XEiJ.PNL_BM_OFFSET_BITS; //ARGB出力インデックス int db = da + XEiJ.pnlScreenWidth; //ARGB出力インデックスの終了位置 if (rh) { int half = XEiJ.pnlScreenWidth >> 4 << 3; sx += half; gx1st += half; gx2nd += half; gx3rd += half; gx4th += half; tc = tc + (half >> 3) & CRTC.crtMask511; da += half; } if (ts == 0) { //テキスト桁境界に合っているとき while (da < db) { int tp = (VideoController.VCN_TXP3[MainMemory.mmrM8[ta3 + tc] & 255] | VideoController.VCN_TXP2[MainMemory.mmrM8[ta2 + tc] & 255] | VideoController.VCN_TXP1[MainMemory.mmrM8[ta1 + tc] & 255] | VideoController.VCN_TXP0[MainMemory.mmrM8[ta0 + tc] & 255]); tc = tc + 1 & CRTC.crtMask511; //次回のテキスト桁位置 int p, q; XEiJ.pnlBM[da] = (((p = SpriteScreen.sprBuffer[sx]) & 15) != 0 || p != 0 && tp >>> 28 == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = GraphicScreen.graM4[gy3rd | gx3rd & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 28] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 28]); XEiJ.pnlBM[da + 1] = (((p = SpriteScreen.sprBuffer[sx + 1]) & 15) != 0 || p != 0 && (tp >>> 24 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 1 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 1 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 1 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : p == 1 ? (p = VideoController.vcnPal16G8[0]) != 0 ? VideoController.vcnPalTbl[p] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (p & 1) == 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15] : (q = VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 1 & 511] | 1])) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 24 & 15]); XEiJ.pnlBM[da + 2] = (((p = SpriteScreen.sprBuffer[sx + 2]) & 15) != 0 || p != 0 && (tp >>> 20 & 15) == 0 ? (q = VideoController.vcnPal16TS[p]) != 0 ? VideoController.vcnPalTbl[q] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPal32G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2] : p == 1 ? VideoController.vcnPal32G8[0] : (p & 1) == 0 ? VideoController.vcnPal32G8[p] : VideoController.vcnPalTbl[ VideoController.vcnMix2 ( VideoController.vcnPal16G8[p & -2], VideoController.vcnPal16G8[GraphicScreen.graM4[gz2nd | gx2nd + 2 & 511] | 1])] : (p = GraphicScreen.graM4[gy1st | gx1st + 2 & 511]) == 0 ? (p = GraphicScreen.graM4[gy2nd | gx2nd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = GraphicScreen.graM4[gy3rd | gx3rd + 2 & 511] & -2) != 0 ? (q = VideoController.vcnPal16G8[p]) != 0 ? VideoController.vcnPalTbl[q] : VideoController.vcnPal32TS[tp >>> 20 & 15] : (p = VideoController.vcnPal16G8[GraphicScreen.graM4[gy4th | gx4th + 2 & 511] & -2]) != 0 ? VideoController.vcnPalTbl[p] :