📄 loademm.c
字号:
/*-----------------------------------------------------------
函数 _LoadEMM : 利用INT15H将文件直接装入扩充存储器
-----------------------------------------------------------*/
#include <hanenv.h>
long _Cdecl _LoadEMM(file,size)
FILE *file; /* 欲装入扩充存储器的文件 */
long size; /* 文件长度 */
{
long handle =_CurrentEMM;
long addr;
unsigned i,num;
/*-- 如果剩余扩充存储器尺寸小于文件长度则返回 ----------*/
if(_GetEMMsize()-(int)((_CurrentEMM-1200000L)/1024L)<size/1024+1)
return 0L;
/*-- 设置各项参数 --------------------------------------*/
_CurrentEMM += size;
size = size/1024+1; /* 扩充存储器长度以K为单位 */
_Init_GDT();
addr = FP_SEG(_HanFont);
addr = (addr<<4)+FP_OFF(_HanFont);
_SetSourAddr(addr,1024);
addr = handle;
/*-- 将文件读到内存并装入扩充存储器 --------------------*/
for(i=0;i<size;i++)
{
num=fread(_HanFont,sizeof(char),1024,file);
_SetDestAddr(addr,num);
_MoveDataEMM(num);
addr += 1024;
}
/*-- 返回EMM自由空间的首地址 --------------------------*/
return handle;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -