Ejemplo n.º 1
0
static void mira(void)
{
  if((tkcom[0]&0x20&&is209)||is211)
  {
    int x;
    if(tkcom[0]&0x40)        // Name tables are ROM-only
    {
      for(x=0;x<4;x++)
         setntamem(CHRptr[0]+(((names[x])&CHRmask1[0])<<10),0,x);
    }
    else                        // Name tables can be RAM or ROM.
    {
      for(x=0;x<4;x++)
      {
        if((tkcom[1]&0x80)==(names[x]&0x80))        // RAM selected.
          setntamem(NTARAM+((names[x]&0x1)<<10),1,x);
        else
          setntamem(CHRptr[0]+(((names[x])&CHRmask1[0])<<10),0,x);
      }
    }
  }
  else
  {
    switch(tkcom[1]&3)
    {
      case 0: setmirror(MI_V); break;
      case 1: setmirror(MI_H); break;
      case 2: setmirror(MI_0); break;
      case 3: setmirror(MI_1); break;
    }
  }
}
Ejemplo n.º 2
0
static void FASTAPASS(2) DoNTARAMROM(int w, uint8 V)
{
  NTAPage[w]=V;
  if(V>=0xE0)
    setntamem(NTARAM+((V&1)<<10), 1, w);
  else
  {
    V&=CHRmask1[0];
    setntamem(CHRptr[0]+(V<<10), 0, w);
  }
}
Ejemplo n.º 3
0
static void FASTAPASS(2) DoNTARAMROM(int w, uint8 V)
{
        NTAPage[w]=V;
        //if(V>=0xE0)
	// setntamem(NTARAM+((V&1)<<10), 1, w);

	//printf("%d, %02x\n",w,V);
	//printf("%02x, %02x\n",((gorko>>(6+(w>>1)))&1),V);
	if(V>=0xE0)
	 setntamem(NTARAM+((V&1)<<10), 1, w);
	else 
	{
	 V&=CHRmask1[0];
	 setntamem(CHRptr[0]+(V<<10), 0, w);
	}
}
Ejemplo n.º 4
0
static void Sync(void) {
	// bit 7 controls green LED
	// bit 6 controls red LED
	int nt  = (reg & 0x20) ? 8192 : 0; // bit 5 controls 8k nametable page
	int chr = (reg & 0x10) ? 1 : 0; // bit 4 selects 8k CHR page
	int prg = (reg & 0x0F); // bits 0-3 select 32k PRG page

	nt += (16 * 1024);
	for (int n=0; n<4; ++n)
	{
		setntamem(CHRRAM + nt + (1024 * n),1,n);
	}
	setchr8r(0x10, chr);

	uint32 prg_chip = flash ? 0x10 : 0;
	setprg32r(prg_chip,0x8000,prg);
}