Advertisement
Guest User

Untitled

a guest
Sep 6th, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. void GZU_Write(int Addr,byte Value)
  2. {
  3.  byte *GZU_Ptr=GZU[scr_Page_Acces]+(Addr&0x3fff)*4;
  4.  byte mask;
  5.  
  6.  int a0,a1,a2,c0,c1,c2;
  7. // char md;
  8.  
  9.  a0=*(GZU_Ptr+0);
  10.  a1=*(GZU_Ptr+1);
  11.  a2=*(GZU_Ptr+2);
  12.  
  13.  LineUpdateFlag[(Addr&0x3fff)>>6]=1;
  14.  
  15.  if (NCREG & COLORMD) { //Color mode
  16.    *(GZU_Ptr+0)=(*(GZU_Ptr+0) & ~Value) | ((NCREG & 2)?Value:0);
  17.    *(GZU_Ptr+1)=(*(GZU_Ptr+1) & ~Value) | ((NCREG & 4)?Value:0);
  18.    *(GZU_Ptr+2)=(*(GZU_Ptr+2) & ~Value) | ((NCREG & 8)?Value:0);
  19.  
  20.  } else { //Plane mode
  21.    // WBIT !!!!!!!!!!!!!!!!!!!!!!!
  22.    mask=(NCREG&WBIT)?Value:0;
  23.  
  24.    if (!(NCREG & ~WSEL0)) {
  25.      *(GZU_Ptr+0)=(*(GZU_Ptr+0) & ~Value) | mask;
  26.    }
  27.    if (!(NCREG & ~WSEL1)) {
  28.      *(GZU_Ptr+1)=(*(GZU_Ptr+1) & ~Value) | mask;
  29.    }
  30.    if (!(NCREG & ~WSEL2)) {
  31.      *(GZU_Ptr+2)=(*(GZU_Ptr+2) & ~Value) | mask;
  32.    }
  33.  }
  34.  
  35.  c0=*(GZU_Ptr+0);
  36.  c1=*(GZU_Ptr+1);
  37.  c2=*(GZU_Ptr+2);
  38. }
  39.  
  40. byte GZU_Read(int Addr)
  41. {
  42.  unsigned char *GZU_Ptr=GZU[scr_Page_Acces]+(Addr&0x3fff)*4;
  43.  unsigned char Value=0;
  44.  unsigned char C0;
  45.  unsigned char C1;
  46.  unsigned char C2;
  47.  
  48.  C0=*GZU_Ptr++;
  49.  C1=*GZU_Ptr++;
  50.  C2=*GZU_Ptr++;
  51.  
  52.  if (NCREG & COLORMD) { //Color mode
  53.  
  54.   if (!(NCREG & RSEL0)) C0^=0xff;
  55.   if (!(NCREG & RSEL1)) C1^=0xff;
  56.   if (!(NCREG & RSEL2)) C2^=0xff;
  57.   Value=(C0&C1&C2)^0xff;
  58.  
  59.  } else { //Plane mode
  60.  
  61.   if (NCREG & RSEL0) Value|=C0;
  62.   if (NCREG & RSEL1) Value|=C1;
  63.   if (NCREG & RSEL2) Value|=C2;
  64.  
  65.  }
  66.  
  67.  return Value;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement