// Test MMX support void CChildView::TestMMX() { bool bMMX, bSSE; TestFeatures(&bMMX, &bSSE); if ( bMMX ) m_bMMX = TRUE; }
/* Read byte from active segment at address addr. */ TByte TStk500::ReadByte(TAddr addr) { TByte val = 0xff; if (segment == SEG_FUSE) { switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_RD)) val = ReadFuseLowBits(); else Info (1, "Cannot read low fuse bits on this device. " "Returning 0xff\n"); break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) val = ReadFuseHighBits(); else Info (1, "Cannot read high fuse bits on this device. " "Returning 0xff\n"); break; case AVR_CAL_ADDR: if (TestFeatures(AVR_CAL_RD)) val = ReadCalFuseBits(0); else Info (1, "Cannot read calibration byte on this device. " "Returning 0xff\n"); break; case AVR_LOCK_ADDR: val = ReadLockBits(); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) val = ReadFuseExtBits(); else Info (1, "Cannot read extended fuse bits on this device. " "Returning 0xff\n"); break; } } else { /* FIXME: TRoth/2002-05-29: This is still broken. If flash or eeprom changes after the calling ReadMem(), you won't ever see the change. */ // Xbow: the original STK500 version reads all 128K of Atmega memory // before checking. This takes ~15sec on the mib510. This version reads // a 256 byte page. If a new 256 byte page is needed then it retreives // it from the mib510 if (read_buffer[segment] == NULL) { page = addr >> 8; //page number read_buffer[segment] = new TByte[GetSegmentSize()]; //create buffer for data ReadMemPage(addr & 0xfff00); //read the page } int new_page = addr >> 8; if (new_page != page){ page = new_page; ReadMemPage(addr & 0xfff00); } val = read_buffer[segment][addr]; }