Esempio n. 1
0
void fill(int addr, unsigned char v, unsigned int count)
{
	__wstart(addr);
  while (count--)
    spi_transfer(v);
  __end();
}
void GDClass::fill(int addr, byte v, unsigned int count)
{
  __wstart(addr);
  while (count--)
    SPI.transfer(v);
  __end();
}
void GDClass::wr16(unsigned int addr, unsigned int v)
{
  __wstart(addr);
  SPI.transfer(lowByte(v));
  SPI.transfer(highByte(v));
  __end();
}
Esempio n. 4
0
void wr16(unsigned int addr, unsigned int v)
{
	  __wstart(addr);
  spi_transfer(low_byte(v));
  spi_transfer(high_byte(v));
  __end();
	
}
Esempio n. 5
0
void copy(unsigned int addr, unsigned char *src, int count)
{
  __wstart(addr);
  while (count--) {
    spi_transfer(*src);
    src++;
  }
  __end();
}
void GDClass::voice(int v, byte wave, unsigned int freq, byte lamp, byte ramp)
{
  __wstart(VOICES + (v << 2));
  SPI.transfer(lowByte(freq));
  SPI.transfer(highByte(freq) | (wave << 7));
  SPI.transfer(lamp);
  SPI.transfer(ramp);
  __end();
}
void GDClass::sprite2x2(int spr, int x, int y, byte image, byte palette, byte rot, byte jk)
{
  __wstart(0x3000 + (spr << 2));
  GD.xsprite(x, y, -16, -16, image + 0, palette, rot, jk);
  GD.xsprite(x, y,   0, -16, image + 1, palette, rot, jk);
  GD.xsprite(x, y, -16,   0, image + 2, palette, rot, jk);
  GD.xsprite(x, y,   0,   0, image + 3, palette, rot, jk);
  __end();
}
void GDClass::sprite(int spr, int x, int y, byte image, byte palette, byte rot, byte jk)
{
  __wstart(RAM_SPR + (spr << 2));
  SPI.transfer(lowByte(x));
  SPI.transfer((palette << 4) | (rot << 1) | (highByte(x) & 1));
  SPI.transfer(lowByte(y));
  SPI.transfer((jk << 7) | (image << 1) | (highByte(y) & 1));
  __end();
}
void GDClass::copy(unsigned int addr, uint_farptr_t src, int count)
{
  __wstart(addr);
  while (count--) {
    SPI.transfer(pgm_read_byte_far(src));
    src++;
  }
  __end();
}
void GDClass::copy(unsigned int addr, PROGMEM prog_uchar *src, int count)
{
  __wstart(addr);
  while (count--) {
    SPI.transfer(pgm_read_byte_near(src));
    src++;
  }
  __end();
}
Esempio n. 11
0
void terminal_putchar(char character, int x, int y) 
{
	
	__wstart((y << 6) + x);
  
	//screen_buffer[x+y] = character;
    spi_transfer(character);
__end();
 
    
}
void GDClass::begin()
{
  delay(250); // give Gameduino time to boot
  pinMode(SS_PIN, OUTPUT);
#ifdef BOARD_maple
  SPI.begin(SPI_4_5MHZ, MSBFIRST, 0);
#else
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV2);
  SPI.setBitOrder(MSBFIRST);
  SPI.setDataMode(SPI_MODE0);
  SPSR = (1 << SPI2X);
#endif
  digitalWrite(SS_PIN, HIGH);

  GD.wr(J1_RESET, 1);           // HALT coprocessor
  __wstart(RAM_SPR);            // Hide all sprites
  for (int i = 0; i < 512; i++)
    GD.xhide();
  __end();
  fill(RAM_PIC, 0, 1024 * 10);  // Zero all character RAM
  fill(RAM_SPRPAL, 0, 2048);    // Sprite palletes black
  fill(RAM_SPRIMG, 0, 64 * 256);   // Clear all sprite data
  fill(VOICES, 0, 256);         // Silence
  fill(PALETTE16A, 0, 128);     // Black 16-, 4-palletes and COMM

  GD.wr16(SCROLL_X, 0);
  GD.wr16(SCROLL_Y, 0);
  GD.wr(JK_MODE, 0);
  GD.wr(SPR_DISABLE, 0);
  GD.wr(SPR_PAGE, 0);
  GD.wr(IOMODE, 0);
  GD.wr16(BG_COLOR, 0);
  GD.wr16(SAMPLE_L, 0);
  GD.wr16(SAMPLE_R, 0);
  GD.wr16(SCREENSHOT_Y, 0);
  GD.wr(MODULATOR, 64);
}
Esempio n. 13
0
//set : |= ou juste = ?
void terminal_init()
{
	//Already done in InitSPI()
	//rFIO0DIR |= (1<<16); //Set cs pin for terminal as output
	//__end();
	
	int i;
	 wr(J1_RESET, 1);           // HALT coprocessor
 __wstart(RAM_SPR);            // Hide all sprites
 for (i = 0; i < 512; i++)
  {
    xhide();
}
  __end(); //release Select Pin
  fill(RAM_PIC, 0, 1024 * 10);  // Zero all character RAM
  fill(RAM_SPRPAL, 0, 2048);    // Sprite palletes black
  fill(RAM_SPRIMG, 0, 64 * 256);   // Clear all sprite data
  fill(VOICES, 0, 256);         // Silence
  fill(PALETTE16A, 0, 128);     // Black 16-, 4-palletes and COMM

  wr16(SCROLL_X, 0);
  wr16(SCROLL_Y, 0);
  wr(JK_MODE, 0);
  wr(SPR_DISABLE, 0);
  wr(SPR_PAGE, 0);
  wr(IOMODE, 0);
  wr16(BG_COLOR, 0);
  wr16(SAMPLE_L, 0);
  wr16(SAMPLE_R, 0);
  wr16(SCREENSHOT_Y, 0);
  wr(MODULATOR, 64);
  
 
  
  init_ascii();
	
}
Esempio n. 14
0
	void wr(unsigned int addr, char v)
	{
			 __wstart(addr);
			spi_transfer(v);
			__end();
	}
void GDClass::wr(unsigned int addr, byte v)
{
  __wstart(addr);
  SPI.transfer(v);
  __end();
}