《Turbo C TOOLS 6.0源程序剖析 Turbo C高级程序设计实例 上》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:
  • 出 版 社:
  • 出版年份:2222
  • ISBN:
  • 页数:375 页
图书介绍:

第一章 Turbo C工具源程序的使用说明 1

函数包介绍 1

函数的分类 1

软件需求 2

硬件需求 2

支持的编译器版本和内存模式 2

警告和使用注意事项 3

异常错误及解决方法 3

提取源代码 3

打印源代码 4

从源代码中取消TAB 4

重建函数库 4

重建示例程序 5

C和汇编模块及宏 5

函数库建造说明 7

利用数包的程序设计 7

编程风格、编译警告和头文件 7

修改Turbo C TOOLS 8

源代码约定 8

插入码函数程序设计示例 8

第二章 域编辑编程扩展 12

域编辑函数的种类 12

数据项和编辑 12

编辑键定义 12

编辑操作和缺省的铵键分配 12

域编辑函数源程序 14

EDBASE 编辑和返回一个用户响应 14

EDBUFFER 对编辑缓冲区执行编辑动作 22

EDCHGKEY 加入或修改EDFIELD和WNFIELD所认可的一个按键 30

EDFIELD 对屏幕上的一个域进行编辑 32

EDINITKY 安装EDFIELD和WNFIELD所接受的缺省按键 34

EDREDUCE 把连续的空白转换成单个空格 36

EDREMKEY 删去EDFIELD和WNFIELD所接受的一个按键 37

EDRETINF 返回当前光标和视屏信息 38

EDRETKEY 报告一个按键的编辑动作 39

EDSETCUR 设置光标的尺寸和位置 40

EDWRAP 向编辑区写入字符时,带有整字换行 41

EDWRRECT 向屏幕写入一长方形图形 42

EDZAPKEY 删去EDFIELD和WNFIELD所接受的按键队列 43

编辑函数程序设计示例 43

KEYCTRL.C键控制函数的样例 44

ENTRYEDT.C是面向窗口多编辑域的程序 45

第三章 文件操作 52

文件管理函数(FL) 52

文件管理函数的种类 52

维护卷标 52

杂类 52

文件操作函数源程序和使用参考 52

FLDOLOCK 对已打开文件一个文件段上锁或解锁,必要时等待 52

FLFLUSH 迫使挂起的文件输出写到磁盘上 54

FLGETDTA 返回磁盘传送地址 55

FLLOCK 对已打开文件的一个文件段上锁或解锁 55

FLNORM 验证一个文件名,把它转化成标准形式 56

FLPROMPT 从标准输入中返回一行,可以使用提示信息 66

FLPUTDTA 设置磁盘传送地址(DTA) 67

FLREMVOL 从给定的磁盘上删除卷标(如果有的话) 67

FLRETVOL 报告给定磁盘驱动器上的卷标 69

FLSETVOL 建立或修改给定磁盘上的卷标 71

文件操作程序设计示例 73

第四章 帮助系统程序设计 75

帮助系统(HL) 75

帮助函数的功能 75

设计帮助窗口 75

编写帮助源文件 75

控制内存分配 77

帮助函数源程序 77

HLCLOSE 释放二叉帮助文件的已存索引 78

HLDISP从帮助文件读取一段帮助信息,显示在屏幕上,供用户浏览 78

HLFRINDX 释放在给定节点以下的所有帮助索引节点 79

HLLOOKUP 从二叉帮助文件中读取一段帮助信息 80

HLPAS2C 转换一个Pascal的字符串为C的格式 88

HLREAD 在视口中显示帮助信息,供用户浏览 89

帮助程序示例 94

第五章 用C进行中断服务子程序的设计 128

概述 128

ISR的一般用法 128

建立ISR 128

驻留程序 128

调用步骤 128

删除 129

按惯例过滤中断 129

从ISR中的特殊退出 129

扩展函数源程序 130

ISCALL 对软件中断调用中断服务例程进行模拟 130

ISCURPRC 返回或设置当前执行的进程 134

ISGETVEC 返回一个中断向量 134

isdispat 中断服务子程序调度程序 135

ISINSTAL 安装一个中断服务例程(ISR) 144

ISPREP 预备一个ISR控制块 145

ISPUTVEC 设置一个中断向量 147

ISREMOVE 去除一个驻留程序 148

ISRESERV 保留ISR所需的动态内存 149

ISRESEXT 中止一个程序但保持驻留 150

ISSENSE 检测一个已安装的中断服务例程(ISR) 151

使用中断子程序的程序设计 152

CTLBRK.C说明control-break处理子程序的实现和使用 156

CRITERR.C说明严重错误处理子程序和使用 157

第六章 内存驻留程序设计的插入码 161

概述 161

插入码实用函数 161

建立一个插入函数 161

调度 161

调用步骤 162

重新调度 162

摘除 162

高级用法 162

使用扩展键盘BIOS 162

暂时使一个插入函数失效 163

选择插入过滤程序 163

防止异步通讯拥塞 163

插入码扩展码源程序 163

IVCTRL 报告本程序中插入控制块的地址 163

IVDETECT 检测已安装的插入函数,即使它被部分覆盖 176

IVDISABL 使一个插入函数失效 181

IVINSTAL 安装一个插入函数 182

IVSENSE 检测一个已安装的插入函数是否是可删除的 192

IVVECS 设置或返回插入过滤程序所使用的中断向量 192

第七章 高级键盘管理程序设计 194

增强键盘 194

键盘函数的功能 194

键盘输入 194

处理超前键入缓冲区 194

处理移位键 194

使用增强键盘 194

使用键控制函数 194

取得键码 195

高级特性:键控制函数 195

调用步骤 195

高级键盘管理函数源程序和使用参考 195

KBEQUIP 检测键盘环境 196

KBEXTEND选用扩展的或一般的BIOS键盘服务 197

KBFLUSH 废弃所有在键盘缓冲区中等待的按键 198

KBGETKEY 等待读入下一个按键 198

KBKCFLSH 通过键控制函数废弃所有的等待按键 199

KBPLACE 在键盘缓冲区中放置一个按键 200

KBPOLL 通过一个键控制函数查看下一个等待按键 202

KBQUERY 从标准IBM控制台读邓用户的响应 203

KBQUEUE 报告键盘缓冲区总容量及剩余容量 206

KBREADY 检查下一个等待按键 207

KBSCANOF 返回一个字符的键码 209

KBSET 设置移位键的当前状态 210

KBSTATUS 报告移位键的当前状态 211

KBSTUFF 强行将一个字符串送入BIOS超前键入缓冲区 212

KBWAIT 等待并通过键控制函数读取下一个按键 214

CMKEY.C 键盘宏程序示例 215

第八章 内存管理高级程序设计 220

内存管理函数 220

内存管理函数源程序 220

MMCTRL 读取DOS内存控制块 220

MMFIRST 报告第一个内存块的地址 221

MMSIZE 报告一个程序的尺寸 222

第九章 选单程序设计 223

选单函数功能概述 223

选单函数的种类 223

建立、显示和释放选单 223

定义标准选项和按键 223

定义Lotus形式的选项 223

使用鼠标器的准备工作 223

读取用户的反应 223

亮条操作 223

高级选单特性 223

按键动作和亮条移动 224

缺省的键分配 224

控制内存分配 225

选单扩展函数源程序和使用参考 225

MNATR 改变菜单在项的属性 225

MNCREATE 建立一个包含单信息的选单结构和窗口 227

MNCREAT0 分配并创建一个菜单结构 227

MNDEFKEY 增加约束菜单的缺省键 228

b_mndefkey 包含MNDEFKEY使用的缺省键表 229

MNDLITMS 释放选项表中所有项的内存 231

MNDLKEYS 释放键表中使用的所有的键的内存 232

MNDSPLAY 在同尺寸视口中显示一个选单 232

MNDSTROY 从屏幕上取消一个选单,废弃其数据结构 233

MNFINDSL 找到给出起始坐标的菜单的第一可选项 234

MNHILIT0 移动或删除菜单的高亮条或项描述 236

MNHILITE 移动或取消选单亮条及选项说明 238

MNITEM 插入、修改或删除一个选项 239

MNITMKEY 向选单加入一个选项,为它分配选择字符 244

MNKEY 加入,修改或取消一个选单的键分配 245

MNLITEM 加入,修改或取消一个Lotus形式的选项 249

MNLITKEY 加入一个LOTUS形式的选项,为它分配选择字符 250

MNLREAD 通过Lotus形式的选单读入一个用户响应 252

MNREAD 从给定的开始行和列使用亮条读取菜单 253

MNMCHITM 匹配一说明条件的菜单项 274

MNMCHKEY 匹配一说明的键 275

MNMOUSE 加入、修改或删除一个选单认可的鼠标器事件 277

MNMSTYLE 设立一个标准选单鼠标器格式 281

MNREAD 读取来自选单的用户响应 284

MNVALMN0 检查BMENU结构的有效性 306

MNVDISP 在视口中显示一个虚拟选单 307

示例程序 308

源程序(MENU.C) 308

源程序(PULLMENU.C) 321

第十章 鼠标器编程 333

鼠标器事件的种类 333

访问鼠标器状态 333

控制鼠标器位置 333

控制鼠标的外观 333

对鼠标器硬件中断的反应 333

其它鼠标器操作 333

处理鼠标器中断 334

调用屏蔽:相关事件组 334

调用步骤 334

鼠标器编程函数源程序函数使用参考 334

MOAVOID 在指定区域中隐藏鼠标 335

MOBUTTON 报告鼠标器按钮的按下/释放历史 336

mocatch 捕获鼠标器按钮的按下与释放 338

MOCHECK 检查最近发生的鼠标器事件 342

MOCURMOV 移动鼠标 348

MOEQUIP 检查鼠标器驱动程序的存在 349

MOGATE 鼠标器驱动程序的人口 350

MOGETMOV 报告自上次查询以来物理鼠标器的移动 351

MOGRAPH 设置鼠标器图形方式光标 351

MOHANDLR 安装或摘除中断处理程序 352

MOHARD 设置鼠标器硬件字符方式光标 355

MOHIDE 隐藏或显示鼠标 356

moinst 无条件安装鼠标器中断处理子程序 357

MOJUMP 设置鼠标器加速阈值 357

MOLITYPEN 使鼠标器光笔模拟有效或失效 358

MOPRECLK 安装或删除MOCHECK所有的内部例程 359

MORANGE 设置鼠标器范围界限 360

MORESET 重置鼠标器驱动程序 361

MOSOFT 设置鼠标器软件字符方式光标 361

MOSPEED 设置鼠标器敏度 362

mOSTAT 报告鼠标器位置和按钮状态 363

Movars 一些MO函数使用的全程变量:b_mocatch, b_momask,b_modispat,b_mohanmask 363

MOUSEHAN.C 鼠标中断处理子程序演示程序 364

第十一章 打印机编程 368

BIOS打印机接口 368

与PRINT程序的接口 368

打印机控制函数源程序 368

PRCANCEL 删除假脱机打印队列中一个或全部文件 368

PRCHAR 通过BIOS向打印机发送一个字符 369

PRERROR 返回解释错误代码的字符串.这些错误代码来自PR(打印机)函数 370

PRGETQ 报告假脱机打印队列中的一个文件名 371

PRINIT 通过BIOS初始化一个打印口 373

PRINSTLD 检查驻留式假脱机打印系统PRINT是否已安装 373

PRSPOOL 将一个文件提交给假脱机打印系统 374

PRSTATUS 通过BIOS报告打印机的状态 375

第十二章 屏幕(视频)编程 376

屏幕操作函数的种类 376

读取屏幕方式信息 376

选择显示设备和方式 376

在显示页之间切换 376

控制/读取光标形状和位置 376

清除和滚动 376

常规的屏幕写入 376

写入一个矩形区域 377

屏幕读取 377

调色板支持 377

对直接视频访问的支持 377

保存和恢复整个显示状态 377

强制快速屏幕访问 378

屏幕(视频)控制函数源程序 378

SCAPAGE 显示(激活)一个显示页 378

SCATTRIB 用指定的显示属性显示一个字符的拷贝 379

SCBLINK 选择前景闪烁或背景亮度 379

SCBORDER 设置当前显示屏幕的边界颜色 380

SCBOX 用图形字符在屏幕上画一个方框 381

SCCHGDEV 切换至彩色或单色显示 384

SCCLRMSG 清除屏幕上的消息 386

SCCURSET 移动当前显示页上的光标 387

SCCURST 返回当前显示页上的光标位置和尺寸 387

SCEQUIP 检测显示硬件环境 388

SCGETVID 记录整个显示状态 397

SCMODE 返回屏幕的显示方式 397

SCMODE4 设置方式4色板和背景颜色 399

SCNEWDEV 选择并设置显示设备,设置字符行数 400

SCPAGE 设置当前显示页 408

SCPAGES 返回显示页的数目 408

SCPAL1 定义一个EGA、VGA、或MCGA色板颜色 410

SCPALETT 定义EGA、VGA或MCGA颜色的整个色板 411

SCPCLR 清除当前显示页 413

SCPGCUR 设置当前页的光标尺寸 414

SCREAD 从屏幕读取一个显示字符及其属性 416

SCRESTPG 恢复一个显示页 417

SCROWS 返回屏幕的字符行数 418

SCSA VEPG保存一个显示页 419

SCSETVID 恢复整个显示状态 420

SCTTYWIN 以TTY方式向矩形区域写入一个字符 422

SCTTYWRT 以TTY方式向屏幕写一个字符 425

SCWRAP 以TTY方式向一个矩形中写入一个字符串,带有整字换行 426

SCWRITE 在屏幕上显示一个字符的多个拷贝 430

VIATRECT 改变屏幕上一个矩形的属性 430

VIDSPMSG 显示一条消息 432

vidirec0 直接从或向视屏适配读取或写入长方形的字符 432

VIHORIZ 在当前显示页上水平滚动正文列 445

VIPTR 将屏幕位置转换成内存地址 447

VIRDRECT 读取屏幕上一个矩形区域中的内容 448

VIRDSECT 将屏幕的一个区域读入内存中更大的矩形区域 449

VISCROLL 垂直滚动当前显示页上的正文行 450

VIWRRECT 向当前显示页上一个矩形区域中写入数据 450

VIWRSECT 显示矩形缓冲区中的一个矩形段 451

第十三章 字符串处理 453

字符串函数的种类 453

对字符串的一部分进行填充 453

查找 453

字符转换 453

处理tab字符 453

字符串处理扩展函数源程序 453

STPEXPAN 将tab字符转换为空格 456

STPJUST 在域中将一个字符串左右对齐或居中 458

STPTABFY 用tab字符替换空格 459

STPXLATE 用翻译表翻译一个字符串 461

STSCHIND 查找字符串中的一个字符,返回它的位置 462

第十四章 实用函数和宏 463

指针和地址 463

内存传送 463

探测指针错误 463

数据压缩 463

ANSI.SYS支持 463

程序环境信息 463

口I/O 464

时钟访问 464

关闭或开放中断 464

扬声器控制 464

算术计算 464

在长字节、字、字节和半字节之间转换 464

设置范围界限 465

数据类型操作 465

各种输出 465

实用函数源程序 465

UTANSI 检测、关闭或重新开放ANSI.SYS 466

UTCHKNIL 报告无效指针赋值,使程序夭折 469

UTCRIT 取得DOS监界段标志的地址 470

UTCTLBRK 设置或返回Ctrl-Break检查的状态 470

UTDOSRDY 报告DOS服务是否可用 471

UTGETCLK 报告自午夜以来BIOS计时脉冲的个数 471

UTINTFLG 打开或关闭硬件中断 472

UTMODEL 报告IMB型号和子型号及BIOS版本 473

UTMOVMEN 不受限制地从内存或向内存任何位置拷贝数据 475

UTNORM 使一个指针具有最小的偏移值 477

UTNULCHK 检测无效的指针赋值 477

UTOFF 返回一个地址的偏移部分 478

UTPEEKB 从任意地址读取一个字节 479

UTPEEKN 从任意地址读取多个字节的数据 479

UTPEEKW 从任意地址读取一个字 479

UTPLONG 将一个指针转换为指向20位物理地址的指针 480

UTPOKEB 在任意地址存放一个字节的数据 480

UTPOKEN 在任意地址存放多个字节的数据 480

UTPOKEW 在任意位置写入一个字的数据 481

UTSAFCPY 以确保不跨越段界的方式拷贝数据 481

UTSEG 返回任意地址的段部分 482

UTSLEEP 暂停处理直至经过几个计时脉冲之后 482

UTSPKR 打开或关闭扬声器 483

UTSQZSCN 压缩一个屏幕图象 484

UTTIM2TK 将时间转换为计时脉冲计数 489

UTTK2TIM 将计时脉冲计数转换为24小时制时间 489

UTTOFAR 用段和偏移构造一个双字指针 490

UTTOFARU 用一个段和偏移构造一个泛双字指针 491

UTUNSQZ 还原一个压缩屏幕图象 491

实用程序函数设计示例 493

第十五章 窗口系统高级程序设计 498

窗口功能概述 498

窗口函数的种类 498

建立和释放窗口结构 498

显示和删除窗口 498

虚拟窗口 498

窗口输出 498

窗口输入 499

滚动和清除 499

控制属性 499

控制光标 499

控制窗口任选项 499

使用Turbo C的字符窗口 500

为WNREAD进行窗口输入做准备 500

使用高级窗口特性 500

显示和更新窗口 500

虚拟窗口 500

不可删除的窗口 500

控制内存分配 500

窗口扩展函数源程序 501

WNATRBLK 修改窗口中一个矩形块的属性 501

WNATRSTR 改变窗口中一片连续位置的属性 502

WNATTR 改变当前窗口的属性 504

WNCHGEVN 加入或修改WNREAD认可的一个用户响应 504

WNCREATE 建立一个窗口结构 505

WNCOVER 如果被一给定的长方形区域遮盖,则标为低层窗口 506

WNCREAT0 分配和创建一窗口结构 507

WNCURMOV 移动当前窗口的光标 509

WNCUPRPOS 返回当前窗口的光标位置 510

WNCURSOR 激活一个窗口光标 511

WNDSPLAY 在同尺寸视口中显示一个窗口 512

WNCURTRK 移动窗口的光标,如果必要的活调整数据区源 513

WNDSTROY 废弃一个窗口结构 515

WNERROR 记录窗口或选单的系统错误 516

WNFIELD 对窗口中的一个域进行编辑 516

WNFORGEI 从屏幕位置脱离窗口,但并不清除屏幕 518

WNGETIMG 读取屏幕长方形区域的图象 519

WNGETOPI 读取窗口信息项或状态 521

WNHIDE 删除窗口但仍与视频显示设备和显示页联连 524

undisp 暂时删除(不显示)屏幕上由一长方形区域遮盖的窗口 527

cocovr 标志非覆盖的窗口 528

upcovr 检查高层窗口是否覆盖长方形区域 529

redisp 重新显示指定窗口以上的被暂时隐藏删除的窗口 530

WNHORIZ 水平滚动当前窗口 531

WNINITEV 为WNREAD安装缺省的窗口事件 532

WNCMOVE 移动窗口的光标 535

WNSETWIN 设置编译器native文本窗口的尺寸 536

WNCHKDM 检查编译器的native文本窗口的尺寸和大小 537

WNGETATR 得到当前native文本窗口的属性 537

WNSETATR 设置当前native文本窗口的属性 538

WNNEEDUP 标志一窗口为无用,如果可能进行更新 538

WNNUPBLK 标志一窗口为无用,如果可能更新一部分 539

WNORIGIN 在视口中称动窗口 540

WNOVRLAP 报告两个长方形区域是否覆盖 542

WNPGADD 增加窗口到在一设备一或显示页上显示的窗口的链表上 542

WNPGREM 从显示在一设备或显示页上的窗口链表上删除 543

WNPIMBLK 输出窗口的一部分到屏幕 544

WNPOLL 查询属于特定集的键盘或鼠标事件一次 546

WNPRINTF向当前窗口写入一个格式化的字符串 548

WNPUTBOR 沿着长方形区域显示一边界 549

WNPUTSEN 显示窗口的sensor表 552

WNQUERY 返回经窗口得到的来自用户的字符串 555

WNRDBUF 读取当前窗口中一片连续位置的内容 558

WNREAD 允许用户在虚拟窗口中浏览 560

POLL_EVENT 查询窗口的鼠标或键盘事件一次 566

WNREDRAW 重现显示在当前显示页上的全部窗口 571

WNREMEVN 删去WNREAD接受的一个用户响应 573

WNREMOVE 从屏幕上取消一个窗口 575

WNRESPRV 恢复窗口先前的屏幕内容 575

WNRETEVN 从窗口列表中返回一窗口事件记录 576

WNRETINF 返回窗口当前光标和尺寸的信息 578

WNREVUPD 用显示的数据更新已保存的窗口图象 579

WNSCRBLK 在窗口中以任意方向滚动一个矩形区域 582

WNSCRLBR 向窗口加入一个滚动箭头 584

WNSCROLL 垂直滚动当前窗口 589

WNSELECT 选择用于I/O的窗口 589

WNSETBUF 为WNPRINTF分配内部缓冲区 590

WNSETCUR 设置当前窗口的状态、尺寸和位置 591

WNSETOPT 设置窗口控制项 592

WNSHOBLK 在视口间隙中显示一个窗口数据块 597

WNUNHIDE 重新显示隐藏的窗口 603

WNUPDATE 将挂起的输出写入窗口 606

WNVALEV0 验证窗口事件 607

WNVALNO0 验证窗口节点 607

WNVALWI0 验证BIWNDOW结构 608

WNVDISP 在视口中显示一个虚拟窗口 608

WNWRAP 以TTY方式向当前窗口写入一个字符串,常有整字换行 612

WNWRBUF 向当前视口中的一片连续位置写入字符 614

WNWRRECT 写入窗口的一个矩形区域 616

WNWRSTR 以TTY方式向当前窗口写入一个字符串 618

WNWRSTRN 以TIY方式向窗口写入一个字符串,带有任选项 619

WNWRTIY 以TTY方式向当前窗口写入一个字符 623

WNWRTTYX 写一字符到一TTY方式的窗口 623

WNZAPEVN 删除WNREAD认可的窗口事件表 624

WNZAPSEN 释放窗口的sensor列表 625

附录A 使用的汇编头文件 626

COMP T2S.MAC 626

COMP T2M.MAC 626

COMP T2C.MAC 627

COMP T2L.MAC 627

COPM T2H.MAC 628

BEGINASM.MAC编译依赖的符号和宏 628

附录B 创建功能强大的函数库批命令 634

创建库文件的LIB程序的响应文件(LIBRESP) 636

附录C 函数包使用的头文件 639

BEDIT.H 域编辑函数的头文件 639

BFILES.H 文件和目录函数的头文件 642

BGENWIN.H 禁止提供编译器本地文本窗口支持的头文件 644

BHELP.H 帮助函数的头文件 644

BINTERV.H 插入函数的头文件 649

BINTRUPT.H 中断服务函数的头文件 653

BKEYBRD.H BIOS键盘函数的头文件 656

BKEYS.H 定义键码的头文件 659

BLAISE.H 所有函数的头文件 676

BMEM.H 内存管理函数的头文件 676

BMENU.H 菜单函数的头文件 677

BMOUSE.H 鼠标函数的头文件 684

BNATVWN.H 支持编译器本地文本窗口的头文件 688

BPRINT.H 支持打印机管理的头文件 688

BSCREENS.H 屏幕函数的头文件 689

BSTRINGS.H 字符串函数的文件 694

BUTIL.H 实用函数的头文件 694

BVIDEO.H 直接存取视屏硬件函数的头文件 702

BWINDOW.H 窗口函数的头文件 703