第0章 C语言编程提高基础 1
0.1 Turbo C和Borland C++系列的存储模式 1
0.1.1 8086的段式内存管理和地址计算 1
前言页 1
0.1.2 指针 2
0.1.3 地址修饰符 4
0.1.4 六种存储模式 5
0.2.1 C语言和汇编语言的接口方式 8
0.2.2 .OBJ方式接口要解决的问题 8
0.2 C语言和汇编语言的混合编程方法之一--.OBJ连接方式 8
0.2.3 参数传递顺序及方式 9
0.2.4 处理ASM子程序调用后的返回值 10
0.2.5 C程序调用ASM子程序和变量的完整实例 11
0.2.6 实现ASM对C的调用 13
0.2.7 ASM程序调用C函数的完整实例 14
0.3 C语言和汇编语言的混合编程方法之二--嵌入汇编方式 16
0.4 在C程序中直接使用寄存器伪变量 18
第1章 输入/输出类程序设计 22
1.1 输入/输出要解决的主要问题 22
1.2 文本方式输入窗口的设计 24
1.2.1 输入窗口的建立、打开和关闭 25
1.2.2 输入窗口的编辑操作 38
1.2.3 文本方式输入窗口的设计实例 46
1.3 图形方式输入窗口的设计 50
1.3.1 图形方式输入窗口的数据结构 50
1.3.2 输入窗口的建立、打开和关闭 51
1.3.3 输入窗口的编辑操作 67
1.3.4 输入窗口设计实例 75
1.4 图形方式下消息窗口的设计 78
1.4.1 消息窗口的建立、打开和关闭 79
1.4.2 消息窗口的查看 82
1.4.3 消息窗口设计实例 85
第2章 汉字、图形、图象类程序设计 88
2.1 汉字、图形、图象类程序设计的主要问题 88
2.2 EGA/VGA的图形方式原理 90
2.2.1 EGA/VGA的显示模式 90
2.2.2 EGA/VGA的视频缓冲区数据格式 92
2.2.3 EGA/VGA的寄存器 96
2.3 汉字系统的基本原理 99
2.3.1 汉字代码 99
2.3.2 汉字库 100
2.4 汉字显示原理及西文方式下汉字的显示 101
2.3.3 汉字操作系统 101
2.5 图形模式下文本的显示及中西文混合字符串的显示技巧 108
2.5.1 EGA/VGA图形模式下文本的显示 108
2.5.2 图形方式下中西文混合字符串的显示 111
2.6 矢量字形原理及其显示和变换算法 114
2.6.1 西文BGI矢量字体 114
2.6.2 矢量汉字 119
2.7 基本图形指令及复杂图形基础 120
2.7.1 初始化图形系统 120
2.7.4 画点 121
2.7.3 注册图形系统 121
2.7.2 退出图形系统 121
2.7.5 画直线 123
2.7.6 画矩形 124
2.7.7 画多边形 124
2.7.8 圆、椭圆及扇形画法 125
2.7.9 数学曲线的绘制 127
2.8 统计图形的制作 128
2.8.1 直方图 128
2.8.2 饼图 135
2.8.3 折线图 138
2.8.4 统计图形的一个实例程序 140
2.9 图形变换及其实现 143
2.9.1 基本图形的变换原理 143
2.9.2 基本图形变换的实现 147
2.9.3 图形变换的一个实例程序 149
2.10 几种常用图象算法 159
2.10.1 基本的图象处理C函数 159
2.10.2 图象平移 160
2.10.3 图象颠倒 162
2.10.4 图象镜象 164
2.10.5 图象旋转 166
2.10.6 图象、汉字的轮廓与阴影 171
2.11 灰度图象转换为黑白二值图象 174
2.12 彩色图象转换为黑白二值图象 176
第3章 菜单系统 186
3.1 菜单的基本类型及其实现方法 186
3.2 简易式菜单设计 186
3.2.1 显示菜单 187
3.2.2 接受用户选择 189
3.2.3 Base_Menu()函数 191
3.2.4 一个完整的菜单实例 192
3.3.1 显示菜单内容 194
3.3 通用弹出式菜单 194
3.3.2 接受用户选择 198
3.3.3 Pop_Menu()函数 199
3.3.4 一个完整的实例 202
3.4 对话框设计 207
3.4.1 建立对话框 207
3.4.2 显示对话框 208
3.4.3 接受用户输入 210
3.4.4 Dialog_Box()函数 211
3.4.5 一个完整的实例 214
3.5 通用下拉式菜单的设计 217
3.5.1 MENU.DES文件分析模块 218
3.5.2 菜单选择处理模块 220
第4章 I/O设备编程 226
4.1 I/O设备编程的主要问题 226
4.2 键盘中断及其编程 227
4.2.1 键盘中断的基本原理 227
4.2.2 键盘编程 228
4.3 视频操作 231
4.3.1 光标控制 231
4.3.2 文本方式的直接写屏 233
4.3.3 图形方式下的直接视频操作 235
4.3.4 调色板 237
4.3.5 几种显示器技巧 242
4.4 直接控制打印机 252
4.4.1 初始化打印机 252
4.4.2 打印机的机械控制 255
4.4.3 文本方式的打印输出 260
4.4.4 图形方式的打印输出 262
4.5 鼠标器Mouse控制 278
4.5.1 Mouse基础 278
4.5.2 Mouse中断int 33H 278
4.5.3 Mouse工具箱 284
4.6 串行通信及其编程 300
4.6.1 串行通信的数据传送格式 300
4.6.2 串行通信的握手信号 300
4.6.3 串行口编程 301
4.6.4 串行口文件传送 307
4.7 8253/8254定时器及其编程 313
4.7.1 8253/8254定时器原理 313
4.7.2 8253/8254实时控制操作编程 315
4.7.3 8253/8254编程的一个实例 316
5.1.3 库字段的描述 326
5.1.2 库文件的标识信息 326
第5章 文件系统 326
5.1 数据库文件.DBF的访问 326
5.1.1 .DBF文件的存储结构 326
5.1.4 数据库的存储部分 327
5.1.5 备注字段附加文件的结构 327
5.1.6 数据库的基本操作 327
5.1.7 索引文件结构 339
5.2 .PCX格式图象文件的访问 341
5.2.1 16色.PCX文件的还原 341
5.2.2 256色.PCX文件的还原 348
5.3.2 点位图信息 352
5.3 .BMP点位图文件的访问 352
5.3.1 .BMP文件的文件头 352
5.3.3 位图阵列 355
5.3.4 16色.BMP图象文件的访问 357
5.3.5 256色.BMP图象文件的访问 363
5.4 .ICO资源文件的访问 367
5.5 .CUR资源文件访问 371
第6章 扩展、扩页存储器使用与编程 376
6.1 PC机系统存储器、扩展存储器及扩页存储器的划分 376
6.2 使用扩展存储器的基本途径 380
6.3 CPU类型的识别 381
6.4 利用int15H访问扩展内存 384
6.5 利用XMS访问扩展存储器 391
6.5.1 XMS管理扩展存储器的基本方法 391
6.5.2 XMS功能调用 391
6.5.3 XMS的C调用库及编程实例 396
6.6 EMS技术及其编程 405
6.6.1 EMS技术的基本原理 405
6.6.2 检测EMS内存是否可用 406
6.6.3 EMS驱动程序的常用功能调用 407
6.6.4 使用EMS的实例函数 411
6.7 V86方式透视 415
6.7.1 什么是V86方式 415
6.7.2 V86方式的进入与退出 416
6.7.3 V86任务的寻址方式及内存分配 417
6.7.4 Windows内存管理策略 417
参考文献 421
附录A 实用函数速查表 421
附录B 实用程序盘的说明 429