📄 vm_w.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 + -