⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vm_w.c

📁 Actions VRAM 驱动源码
💻 C
字号:
/*
********************************************************************************
*                       ACTOS
*                  ((            ))
*
*                (c) Copyright 2002-2003, Actions Co,Ld.
*                        All Right Reserved
*
* File   : *.msa
* By     : Gongee
* Version: 1> v1.00     first version     date
********************************************************************************
* $Id: vm_w.c,v 1.1.1.1 2006/01/11 08:07:22 rowena Exp $
********************************************************************************
*/
#include "vm_nanf.h"
#pragma memory=dataseg(BAD_W)
UD_RW udrw;
char temp0,temp1;
#pragma memory=default

#pragma codeseg(BAC_W)
bool VMWrite(void *pbuf, unsigned int address)
{

    unsigned int oldstgdrv;
    unsigned long temp;

//为了使Vram驱动不调用C库而作修改  05-6-12 15:24
//    udrw.lba = ((unsigned long)address) >> 9;
    temp = ((unsigned long)address) >> 1;
    udrw.lba = temp >> 8;
//为了使Vram驱动不调用C库而作修改  05-6-12 15:24

    udrw.sramaddr = pbuf;
    if((unsigned int)pbuf < 0x4000)
    {
        udrw.srampage = 8;
    }
    else
    {
        udrw.srampage = input8(0x05) & 0x0f;
    }

    oldstgdrv = DRV_GetActiveUD();

    temp0 = oldstgdrv & 0xff;
    temp1 = oldstgdrv >> 8;

    if(temp0 != 0)
    {
        DRV_ActiveUD(0, MODE_SLOW);
    }
    else if(temp1 == MODE_FAST)
    {
        DRV_ActiveUD(0, MODE_SLOW); ;
    }

    UD_SectorWrite(&udrw);
    UD_Update();


    if((temp0 != 0) && (temp0 != 0xff))
    {
        DRV_ActiveUD(temp0, temp1);
    }
    else if((temp0 == 0) && (temp1 == MODE_FAST))
    {
        DRV_ActiveUD(0, MODE_SLOW);
        DRV_ActiveUD(0, MODE_FAST);
    }
    return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -