Exemple #1
0
void GetChipLayout( HWND hWindow, LPRECT lpRect, LPINT lpRows, LPINT lpCols, LPINT lpRowIncr, LPINT lpColIncr, LPINT lpStart )
/***********************************************************************/
{
int xChipSize, yChipSize, iWidth, iHeight, xPos, yPos, iColors;
LPPALETTE lpPalette;

if ( !(lpPalette = (LPPALETTE)GetWindowLong(hWindow, GWL_PALETTE)) )
	return;
if ( (iColors = lpPalette->iColors) <= 0 )
	iColors = 1;

GetDrawClientRect(hWindow, lpRect);
InflateRect(lpRect, -3, -3);
iWidth = RectWidth(lpRect);
iHeight = RectHeight(lpRect);

xPos = GetScrollPos(hWindow, SB_HORZ);
yPos = GetScrollPos(hWindow, SB_VERT);

GetChipSize( &xChipSize, &yChipSize );
*lpRows = iHeight / yChipSize;
*lpCols = iWidth / xChipSize;
if ( PaletteVertical() )
	{ // Fill left to right, row at a time
	*lpRowIncr = *lpCols;
	*lpColIncr = 1;
	*lpStart = (yPos * (*lpCols)) + xPos;
	// Too ensure proper scrolling, make the height an exact multiple
	lpRect->bottom = lpRect->top + (*lpRows * yChipSize) - 1;
	}
else
	{ // Fill top to bottom, row at a time
	*lpRowIncr = 1;
	*lpColIncr = *lpRows;
	*lpStart = (xPos * (*lpRows)) + yPos;
	// Too ensure proper scrolling, make the width an exact multiple
	lpRect->right = lpRect->left + (*lpCols * xChipSize) - 1;
	}
}
Exemple #2
0
void SetProgReadCommand(void)
{
    static const unsigned int AT26DF041 = 0x1F4400;
    static const unsigned int AT26DF004 = 0x1F0400;
    static const unsigned int AT26DF081A = 0x1F4501;
    mcode_WREN = WREN;
    mcode_RDSR = RDSR;
    mcode_WRSR = WRSR;
    mcode_ChipErase = CHIP_ERASE;
    mcode_Program = PAGE_PROGRAM;
    mcode_Read    = BULK_FAST_READ;
    mcode_SegmentErase= SE;
    mcode_WRDI=0x04;
    mcode_ProgramCode_4Adr=0xFF;
    mcode_ReadCode=0xFF;

    if(strcmp(Chip_Info.Class,SUPPORT_SST_25xFxx)==0)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = 0x60;
        mcode_Read  = BULK_NORM_READ;

        if(strstr(Chip_Info.TypeName,"B") != NULL ||strstr(Chip_Info.TypeName,"W") != NULL)
            mcode_Program = AAI_2_BYTE ;
        else
            mcode_Program = AAI_1_BYTE ;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_SST_25xFxxA)!=NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = 0x60;
        mcode_Read = BULK_NORM_READ;
        mcode_Program = AAI_1_BYTE ;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_SST_25xFxxB)!=NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = 0x60;
        mcode_Read      = BULK_NORM_READ;
        mcode_Program   = AAI_2_BYTE ;
        mcode_SegmentErase  = 0xD8;
        mcode_WRDI = WRDI;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_SST_25xFxxC) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = 0x60;
        mcode_Read      = BULK_FAST_READ;
        mcode_Program   = PAGE_PROGRAM ;
        mcode_SegmentErase  = 0xD8;
        mcode_WREN = WREN;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_ATMEL_AT25FSxxx) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_NORM_READ;
        mcode_Program   = PP_128BYTE ;
        mcode_SegmentErase  = 0xD8;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_ATMEL_AT25Fxxx) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_NORM_READ;
        mcode_Program   = PP_128BYTE ;
        mcode_SegmentErase  = 0x52;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_ATMEL_AT26xxx) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_FAST_READ;
        mcode_SegmentErase  = 0xD8;
        if(AT26DF041 == Chip_Info.UniqueID)
        {
            mcode_Program = PP_AT26DF041;
        }
        else if(AT26DF004 == Chip_Info.UniqueID)
        {
            mcode_Program = AAI_1_BYTE;
        }
        else
        {
            mcode_Program = PAGE_PROGRAM;
        }
    }
    else if(strstr(Chip_Info.Class,SUPPORT_ESMT_F25Lxx) != NULL)
    {
        const unsigned int F25L04UA=0x8C8C8C;
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_FAST_READ;
        mcode_SegmentErase  = 0xD8;
        if(F25L04UA == Chip_Info.UniqueID)
            mcode_Program = AAI_1_BYTE;
        else
            mcode_Program = AAI_2_BYTE;//PAGE_PROGRAM;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_NUMONYX_Alverstone) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_NORM_READ;
        mcode_Program   = MODE_NUMONYX_PCM ;
        mcode_SegmentErase  = 0xD8;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_EON_EN25QHxx_Large) != NULL
            || strstr(Chip_Info.Class,SUPPORT_MACRONIX_MX25Lxxx_Large) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_4BYTE_FAST_READ;
        mcode_Program   = PP_4ADR_256BYTE ;
        mcode_SegmentErase  = 0xD8;
        mcode_ProgramCode_4Adr = 0x02;
        mcode_ReadCode = 0x0B;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_SPANSION_S25FLxx_Large) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_4BYTE_FAST_READ;
        mcode_Program   = PP_4ADR_256BYTE ;
        mcode_SegmentErase  = 0xD8;
        mcode_ProgramCode_4Adr = 0x12;
        mcode_ReadCode = 0x0C;
        //printf("Read Code=%X\r\n",mcode_ReadCode);
    }
    else if(strstr(Chip_Info.Class,SUPPORT_NUMONYX_N25Qxxx_Large) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_4BYTE_FAST_READ_MICRON;
        mcode_Program   = PP_4ADDR_256BYTE_MICROM ;
        if(strstr(Chip_Info.TypeName,"N25Q512") != NULL)
            mcode_SegmentErase  = 0xD4;
        else
            mcode_SegmentErase  = 0xD8;
        mcode_ProgramCode_4Adr = 0x02;
        mcode_ReadCode = 0x0B;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_MACRONIX_MX25Lxxx_PP32) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Read      = BULK_FAST_READ;
        mcode_Program   = PP_32BYTE ;
        mcode_SegmentErase  = 0xD8;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_WINBOND_W25Pxx_Large) != NULL)
    {
        mcode_RDSR = RDSR;
        mcode_WRSR = WRSR;
        mcode_ChipErase = CHIP_ERASE;
        mcode_Program = PP_4ADR_256BYTE;
        mcode_Read    = BULK_4BYTE_FAST_READ;
        mcode_SegmentErase= SE;
        mcode_ProgramCode_4Adr = 0x02;
        mcode_ReadCode = 0x0C;
    }
    else if(strstr(Chip_Info.Class,SUPPORT_ATMEL_45DBxxxB) != NULL)
    {
        mcode_RDSR = 0xD7;
        mcode_WRSR = 0;
        mcode_Read      = BULK_AT45xx_READ;
        mcode_Program   = PAGE_WRITE;
        mcode_SegmentErase  = 0;
        CHIP_INFO mem_id;
        SetPageSize(&mem_id, 0);
        Chip_Info.ChipSizeInByte=GetChipSize();
        Chip_Info.PageSizeInByte=GetPageSize();
    }
    else if(strstr(Chip_Info.Class,SUPPORT_ATMEL_45DBxxxD) != NULL)
    {
        mcode_RDSR = 0xD7;
        mcode_WRSR = 0;
        mcode_Read      = BULK_AT45xx_READ;
        mcode_Program   = PAGE_WRITE;
        mcode_SegmentErase  = 0;
        CHIP_INFO mem_id;
        SetPageSize(&mem_id, 0);
        Chip_Info.ChipSizeInByte=GetChipSize();
        Chip_Info.PageSizeInByte=GetPageSize();
    }
//	printf("Erase Code=%X\r\n",mcode_ChipErase);
//    printf("Read Code=%X\r\n",mcode_ReadCode);
//    printf("mcode_ProgramCode_4Adr=%X\r\n",mcode_ProgramCode_4Adr);
}
Exemple #3
0
LOCAL BOOL Palette_HandleScroll( HWND hWindow, BOOL fVScroll, UINT code, int pos)
/************************************************************************/
{
int Value, Position, MinPos, MaxPos, xChipSize, yChipSize;
int Type, iRows, iCols, iRowIncr, iColIncr, iStart;
RECT ClientRect;
LPPALETTE lpPalette;

// get pointer to palette information
lpPalette = (LPPALETTE)GetWindowLong(hWindow, GWL_PALETTE);
if (!lpPalette || !lpPalette->iColors)
	return(FALSE);

if ( fVScroll )
	{
	if ( !PaletteVertical() )
		return( FALSE );
	Type = SB_VERT;
	}
else
	{
	if ( PaletteVertical() )
		return( FALSE );
	Type = SB_HORZ;
	}

Value = Position = GetScrollPos(hWindow, Type);
GetScrollRange(hWindow, Type, &MinPos, &MaxPos);
GetChipLayout(hWindow, &ClientRect, &iRows, &iCols, &iRowIncr, &iColIncr, &iStart);

switch (code)
	{
	case SB_LINEUP:
		Value -= 1;
		break;
	case SB_LINEDOWN:
		Value += 1;
		break;
	case SB_PAGEUP:
		if (Type == SB_VERT)
				Value -= (iRows-1);
		else	Value -= (iCols-1);
		Value = bound(Value, MinPos, MaxPos);
		break;
	case SB_PAGEDOWN:
		if (Type == SB_VERT)
				Value += (iRows-1);
		else	Value += (iCols-1);
		Value = bound(Value, MinPos, MaxPos);
		break;
	case SB_THUMBPOSITION:
	case SB_THUMBTRACK:
		Value = pos;
		break;
	}

if ( Value == Position || Value < MinPos || Value > MaxPos)
	return(FALSE);

SetScrollPos(hWindow, Type, Value, YES);
GetChipSize(&xChipSize, &yChipSize);
Value -= Position;
Value = -Value;
ClientRect.bottom++; ClientRect.right++;
if (Type == SB_VERT)
   {
//   xChipSize--;
   Value = (Value * xChipSize);
   }
else
   {
//   yChipSize--;
   Value = (Value * yChipSize);
   }
if (Type == SB_VERT)
	ScrollWindow( hWindow, 0, Value, &ClientRect, &ClientRect );
else
	ScrollWindow( hWindow, Value, 0, &ClientRect, &ClientRect );
return(TRUE);
}