|
常规内存函数
申请函数:malloc(),farmalloc(),calloc(),farcalloc(),realloc(),farealloc()
函数名: malloc
功 能: 内存分配函数
用 法: void *malloc(unsigned size);
函数名: farmalloc
功 能: 从远堆中分配存储块
用 法: void far *farmalloc(unsigned long size);
函数名: calloc
功 能: 分配主存储器
用 法: void *calloc(size_t nelem, size_t elsize);
函数名: farcalloc
功 能: 从远堆栈中申请空间
用 法: void far *farcalloc( unsigned long units, unsigned ling unitsz );
函数名: realloc
功 能: 重新分配主存
用 法: void *realloc(void *ptr, unsigned newsize);
函数名: farrealloc
功 能: 调整远堆中的分配块
用 法: void far *farrealloc( void far *block, unsigned long newsize );
使用函数:memcpy(),memset(),memmove(),movedata()
函数名: memcpy
功 能: 从源source中拷贝n个字节到目标destin中
用 法: void *memcpy(void *destin,void *source,unsigned n);
函数名: memset
功 能: 设置s中的所有字节为ch, s数组的大小由n给定
用 法: void *memset(void *s, char ch, unsigned n);
函数名: memmove
功 能: 移动一块字节
用 法: void *memmove(void *destin,void *source,unsigned n);
函数名: movedata
功 能: 拷贝字节
用 法: void movedata(int segsrc, int offsrc, int segdest, int offdest, unsigned numbytes);
释放函数:free(),farfree()
函数名: free
功 能: 释放已分配的块
用 法: void free(void *ptr);
函数名: farfree
功 能: 从远堆中释放一块
用 法: void farfree(void);
指针操作函数:MK_FP(),FP_OFF(),FP_SEG()
函数名: MK_FP
功 能: 设置一个远指针
用 法: void far *MK_FP(unsigned seg, unsigned off);
函数名: FP_OFF
功 能: 获取远地址偏移量
用 法: unsigned FP_OFF(void far *farptr);
函数名: FP_SEG
功 能: 获取远地址段值
用 法: unsigned FP_SEG(void far *farptr);
XMS功能调用索引表:
功能号 功能 版本
功能00H功能01H功能02H功能03H功能04H功能05H功能06H功能07H功能08H功能09H功能0AH功能0BH功能0CH功能0DH功能0EH功能0FH功能10H功能11H 取XMS版本号请求高内存区HMA释放高内存区HMA全程启用A20全程停用A20局部启用A20局部停用A20查询A20状态查询自由扩展内存分配扩展内存块释放扩展内存块移动扩展内存块锁住扩展内存块扩展内存块解锁取EMB句柄信息重新分配扩展内存块请求上位存储块UMB释放上位存储块UMB XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0
EMS功能调用索引:
功能号 功能
功能40H功能41H功能42H功能43H功能44H功能45H功能46H功能47H功能48H功能4BH功能4CH功能4DH 取得EMS程序状态取得物理映射页面的段地址获取逻辑页页数信息分配句柄和内存内存映射释放句柄和内存获取EMM的版本号保存指定句柄映射关系恢复指定句柄映射关系获取EMM的句柄数获取指定句柄所分配的逻辑页页数取所有句柄分配情况
键盘扫描码表:
键名 扫描码 键名 扫描码 键名 扫描码
Esc 1 A 30 F1 59
! or 1 2 S 31 F2 60
@ or 2 3 D 32 F3 61
# or 3 4 F 33 F4 62
$ or 4 5 G 34 F5 63
% or 5 6 H 35 F6 64
^ or 6 7 J 36 F7 65
& or 7 8 K 37 F8 66
* or 8 9 L 38 F9 67
( or 9 10 : or ; 39 F10 68
) or 0 11 “ or ‘ 40 F11 133
- 12 ~ or ` 41 F12 134
= 13 Left shift 42 Numlock 69
Bksp 14 \\ 43 Scroll lock 70
Tab 15 Z 44 Home or 7 71
Q 16 X 45 Up or 8 72
W 17 C 46 Pgup or 9 73
E 18 V 47 Gray - 74
R 19 B 48 Left or 4 75
T 20 N 49 Center or 5 76
Y 21 M 50 Right or 6 77
U 22 < or , 51 Gray + 78
I 23 > or . 52 End or 1 79
O 24 ? or / 53 Down or 2 80
P 25 Right shift 54 Pgdn or 3 81
{ or [ 26 Prt sc or * 55 Ins or 0 82
} or ] 27 Alt 56 Del or . 83
enter 28 Space bar 57
ctrl 29 Caps lock 58
键盘ASCII码表
ASCII字符集 (0 - 127)
代码 字符 代码 字符 代码 字符 代码 字符
0 32 [空格] 64 @ 96 `
1 33 ! 65 A 97 a
2 34 \" 66 B 98 b
3 35 # 67 C 99 c
4 36 $ 68 D 100 d
5 37 % 69 E 101 e
6 38 & 70 F 102 f
7 39 \' 71 G 103 g
8 ** 40 ( 72 H 104 h
9 ** 41 ) 73 I 105 i
10 ** 42 * 74 J 106 j
11 43 + 75 K 107 k
12 44 , 76 L 108 l
13 ** 45 - 77 M 109 m
14 46 . 78 N 110 n
15 47 / 79 O 111 o
16 48 0 80 P 112 p
17 49 1 81 Q 113 q
18 50 2 82 R 114 r
19 51 3 83 S 115 s
20 52 4 84 T 116 t
21 53 5 85 U 117 u
22 54 6 86 V 118 v
23 55 7 87 W 119 w
24 56 8 88 X 120 x
25 57 9 89 Y 121 y
26 58 : 90 Z 122 z
27 59 ; 91 [ 123 {
28 60 < 92 \\ 124 |
29 61 = 93 ] 125 }
30 ? 62 > 94 ^ 126 ~
31 63 ? 95 _ 127 &127;
** 数值 8.9.10 和 13 可以分别转换为退格符、制表符、换行符和回车符。这些字符都没有图形表示,但是对于不同的应用程序,这些字符可能会影响文本的显示效果。
ASCII字符集 (128 - 255)
代码 字符 代码 字符 代码 字符 代码 字符
128 € 160 [空格] 192 À 224 à
129 ? 161 ¡ 193 Á 225 á
130 ? 162 ¢ 194 Â 226 â
131 ? 163 £ 195 Ã 227 ã
132 ? 164 ¤ 196 Ä 228 ä
133 … 165 ¥ 197 Å 229 å
134 ? 166 ¦ 198 Æ 230 æ
135 ? 167 § 199 Ç 231 ç
136 ? 168 ¨ 200 È 231 ç
137 ‰ 169 © 201 É 232 è
138 ? 170 ª 202 Ê 233 é
139 ? 171 « 203 Ë 234 ê
140 ? 172 204 Ì 235 ë
141 ? 173 205 Í 236 ì
142 ? 174 (R) 206 Î 237 í
143 ? 175 ¯ 207 Ï 238 î
144 ? 176 ° 208 Ð 239 ï
145 ‘ 177 ± 209 Ñ 240 ð
146 ’ 178 ² 210 Ò 241 ñ
147 “ 179 ³ 211 Ó 242 ò
148 ” 180 ´ 212 Ô 243 ó
149 ? 181 µ 213 Õ 244 ô
150 – 182 214 Ö 245 õ
151 — 183 · 215 × 246 ö
152 ? 184 ¸ 216 Ø 247 ÷
153 ™ 185 ¹ 217 Ù 248 ø
154 ? 186 º 218 Ú 249 ù
155 ? 187 » 219 Û 250 ú
156 ? 188 ¼ 220 Ü 251 û
157 ? 189 ½ 221 Ý 252 ü
158 ? 190 ¾ 222 Þ 253 ý
159 ? 191 ¿ 223 ß 254 þ
方块表示在当前平台下不支持。
中断改写中断服务程序函数
(1)取得中断向量入口的函数getvect(intr-num),它读取中断名为intr-num的向量。
函数名: getvect
功 能: 取得中断向量入口
用 法: void interrupt(*getvect(int intr_num));
(2)设置中断向量入口的函数servect(intr-num,*isr),它将intr-num的向量指置为指向新中断服务程序地址的远指针。
函数名: setvect
功 能: 设置中断向量入口
用 法: void setvect(int intr_num, void interrupt(*isr)());
(3)通用的8086软中断接口函数int86(intr-num,inregs,outregs),它执行一个由参数intr-num所指定的8086软中断,并且在执行前,把inregs中的寄存器值拷到各个寄存器中,返回时把寄存器的值拷到outregs中。
函数名: int86
功 能: 通用8086软中断接口
用 法: int int86( int intr_num, union REGS *inregs, union REGS *outregs );
TSR函数
1.退出并驻留内存函数keep(status,int size),它将当前函数驻留在空间为size个节(每节16个字节)的内存,其余部分被释放,出口状态保存在status中。
函数名: keep
功 能: 退出并继续驻留
用 法: void keep(int status, int size);
2.释放先前分配的DOS内存块函数freemem(seg),它将段地址为seg的内存块释放。在TSR中用于释放环境块。
函数名: freemem
功 能: 释放先前分配的DOS内存块
用 法: int freemem(unsigned seg);
3.设置远指针的宏MK_FP(seg,offs),seg为段地址,offs为偏移量。在TSR中用于访问内存中的特殊单元。
函数名: MK_FP
功 能: 设置一个远指针
用 法: void far *MK_FP(unsigned seg, unsigned off); |
|