Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void GZU_Write(int Addr,byte Value)
- {
- byte *GZU_Ptr=GZU[scr_Page_Acces]+(Addr&0x3fff)*4;
- byte mask;
- int a0,a1,a2,c0,c1,c2;
- // char md;
- a0=*(GZU_Ptr+0);
- a1=*(GZU_Ptr+1);
- a2=*(GZU_Ptr+2);
- LineUpdateFlag[(Addr&0x3fff)>>6]=1;
- if (NCREG & COLORMD) { //Color mode
- *(GZU_Ptr+0)=(*(GZU_Ptr+0) & ~Value) | ((NCREG & 2)?Value:0);
- *(GZU_Ptr+1)=(*(GZU_Ptr+1) & ~Value) | ((NCREG & 4)?Value:0);
- *(GZU_Ptr+2)=(*(GZU_Ptr+2) & ~Value) | ((NCREG & 8)?Value:0);
- } else { //Plane mode
- // WBIT !!!!!!!!!!!!!!!!!!!!!!!
- mask=(NCREG&WBIT)?Value:0;
- if (!(NCREG & ~WSEL0)) {
- *(GZU_Ptr+0)=(*(GZU_Ptr+0) & ~Value) | mask;
- }
- if (!(NCREG & ~WSEL1)) {
- *(GZU_Ptr+1)=(*(GZU_Ptr+1) & ~Value) | mask;
- }
- if (!(NCREG & ~WSEL2)) {
- *(GZU_Ptr+2)=(*(GZU_Ptr+2) & ~Value) | mask;
- }
- }
- c0=*(GZU_Ptr+0);
- c1=*(GZU_Ptr+1);
- c2=*(GZU_Ptr+2);
- }
- byte GZU_Read(int Addr)
- {
- unsigned char *GZU_Ptr=GZU[scr_Page_Acces]+(Addr&0x3fff)*4;
- unsigned char Value=0;
- unsigned char C0;
- unsigned char C1;
- unsigned char C2;
- C0=*GZU_Ptr++;
- C1=*GZU_Ptr++;
- C2=*GZU_Ptr++;
- if (NCREG & COLORMD) { //Color mode
- if (!(NCREG & RSEL0)) C0^=0xff;
- if (!(NCREG & RSEL1)) C1^=0xff;
- if (!(NCREG & RSEL2)) C2^=0xff;
- Value=(C0&C1&C2)^0xff;
- } else { //Plane mode
- if (NCREG & RSEL0) Value|=C0;
- if (NCREG & RSEL1) Value|=C1;
- if (NCREG & RSEL2) Value|=C2;
- }
- return Value;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement