Exemplo n.º 1
0
void PIC::SUBWF(){
    qDebug() << "SUBWF";

    qDebug() << regModel->reg[bank][f];
    qDebug() << W;

    erg = regModel->reg[bank][f] - W;

    if(erg < 0){
        erg = 256 + erg;
        CBit(!true);
    }else{CBit(!false);}


    ChkDCBitWF(erg);
    //ChkCBit(erg);
    ChkZBit(erg);

    if(d==0){
        W = erg;
        qDebug() << W;
    }
    else if(d==1){
        regModel->reg[bank][f] = erg;
        qDebug() << regModel->reg[bank][f];
    }

    PC();
}
Exemplo n.º 2
0
void PIC::RRF(){
    qDebug() << "RRF";

    int carryset = regModel->reg[bank][f] & 0x80;
    int carryget = regModel->reg[bank][STATUS]&0x1;
    int erg = regModel->reg[bank][f];


    erg = erg / 2;
    if(carryget==1){
    erg=erg+128;
    }else if(carryget==0){
        erg = erg;
    }
    if(carryset==1){
    CBit(true);}
    else if(carryset==0){
    CBit(false);}

    if(d == 0){
        W = erg;
    }else if(d == 1){
        regModel->reg[bank][f] = erg;
    }

    PC();

}
Exemplo n.º 3
0
int PIC::ChkCBit(int){

    if(erg >=256 )
    {
        CBit(true);
        //return erg=0;
    }
    else CBit(false);

}
Exemplo n.º 4
0
void PIC::SUBLW(){
    qDebug() << "SUBLW1";

    erg =k - W;
    if(erg < 0){
        erg = 256 + erg;
        CBit(false);
    }else{CBit(true);}
    W=erg;
    ChkZBit(erg);
    PC();
}
Exemplo n.º 5
0
void PIC::XORLW(){
    qDebug() << "XORLW";

    erg = W ^ k;
    if(erg >=256){
        erg =  erg - 256;
        CBit(true);
    }else{CBit(false);}
    W=erg;

    ChkZBit(erg);
    PC();
}
Exemplo n.º 6
0
void PIC::ADDLW(){
    qDebug() << "ADDLW";

    //int erg = regModel->reg[bank][W] + k;
    qDebug() << W <<"W";
    qDebug() << k <<"k";
    erg = W + k;
    if(erg >=256){
        erg =  erg - 256;
        CBit(true);

    }else{CBit(false);}
    qDebug() << erg << "erg";

    //ChkCBit(erg);
    ChkDCBitLW(erg);
    ChkZBit(erg);

    W=erg;
    PC();
}
Exemplo n.º 7
0
void PIC::RLF(){
    qDebug() << "RLF";
    //Multiplizieren

    int carryset = regModel->reg[bank][f] & 0x80;
    int carryget = regModel->reg[bank][STATUS]&0x1;
    qDebug() << regModel->reg[bank][f] << "f";
    regModel->reg[bank][f] = regModel->reg[bank][f]*2;
    qDebug() << regModel->reg[bank][f] << "f";
    if(carryget==1){
    regModel->reg[bank][f]=regModel->reg[bank][f]+1;
    }else if(carryget==0){
        regModel->reg[bank][f]=regModel->reg[bank][f];
    }
    if(carryset==1){
    CBit(true);}
    else if(carryset==0){
    CBit(false);}
    PC();


}
Exemplo n.º 8
0
COLOUR GScreenDC::Colour(COLOUR c, int Bits)
{
	COLOUR Prev = Colour();

	if (Bits < 1) Bits = GetBits();
	c = CBit(24, c, Bits);
	
	rgb_color Rgb;
	Rgb.red = R24(c);
	Rgb.green = G24(c);
	Rgb.blue = B24(c);
	d->View->SetHighColor(Rgb);
	
	return Prev;
}
Exemplo n.º 9
0
CBit CBitPointer::operator[](int p_nBitIndex)
{
	return CBit(m_puAddress, m_nBitOffset + p_nBitIndex);
}
Exemplo n.º 10
0
CBit CBitPointer::operator*()
{
	return CBit(m_puAddress, m_nBitOffset);
}
Exemplo n.º 11
0
COLOUR GScreenDC::Colour()
{
	rgb_color Rgb = d->View->HighColor();
	return CBit(GetBits(), Rgb24(Rgb.red, Rgb.green, Rgb.blue), 24);
}