《串行通信C程序员指南 第2版》求取 ⇩

前言页1

序言1

1.1 上下文意义3

第1章 ASCII字符集3

第一部分 串行通信基础3

1.2 ASCII字符集的位4

1.1.2 人类上下文意义:字符集4

1.1.1 机器的上下文意义:指令集4

1.2.2 ASCII码表5

1.2.1 “ASCII”的歧义性5

1.3 图形字符7

1.3.1 数字字符8

1.3.2 拉丁字母表9

1.3.3 特殊字符10

1.4 控制字符13

1.3.4 ASCII码排序序列13

1.4.1 物理设备控制字符15

1.4.2 逻辑通信控制字符17

1.4.3 物理通信控制字符18

1.4.4 信息分隔符19

1.4.5 用于代码扩展的控制字符20

1.4.6 控制字符的繁难21

1.4.8 ANSI X3.64:控制代码扩展22

1.4.7 控制字符的图案表示22

1.5 控制序列前导符26

1.4.9 ANSI X3.64 控制代码格式26

1.5.1 用ANSI X3.64编程27

1.6 换行28

1.7.1 与行结束相关的词汇表29

1.7 一个合理的建议29

2.1.1 早期的并行系统30

2.1 电子通信的历史30

第2章 异步通信技术基础30

2.1.2 串行二进制系统31

2.1.3 早期的打印电报32

2.1.4 五位代码33

2.1.5 机器自动编码和解码34

2.1.6 同步化36

2.1.7 为什么要用五位代码?40

2.1.9 串行术语41

2.1.8 ASCII码的传送41

2.2.1 同步与异步串行通信的比较43

2.2 通信线路的用法43

2.3 小结44

3.2 错误检测45

3.1 错误起源45

第3章 错误及错误检测45

3.2.1 冗余位46

3.2.2 块冗余:奇介校验47

3.3.1 模-2算术运算49

3.3 循环冗余校验(CRC)49

3.3.2 普通写法的模-2除法50

3.3.3 模-2除法与硬件51

3.3.4 清除余数寄存器54

3.3.6 CRC和多项式55

3.3.5 典型的CRC电路55

3.3.7 选择生成器多项式(除数)56

3.3.9 对累加器清零的另一种考虑57

3.3.8 获得零余数57

3.4 CRC的各种变形59

3.4.3 一字节数据的CRC60

3.4.2 前导零60

3.4.1 典型CRC60

3.5 小结62

4.2 软件流控制过程63

4.1 流控制63

第4章 信息传输63

4.2.1 逐个字符的流控制过程64

4.2.2 行流控制66

4.3.2 字符协议67

4.3.1 用于硬件设备的流控制协议67

4.3 流控制协议67

4.3.4 文件传送协议69

4.3.3 整行协议69

4.4.1 发送并等待ARQ70

4.4 自动重复请求(ARQ)协议70

4.5.1 分隔信息包的控制字符71

4.5 信息包71

4.4.2 连续ARQ71

4.5.3 数据区段固定长度的信息包72

4.5.2 限定信息包的区段长度72

4.6.2 XMODEM发送73

4.6.1 XMODEM的技术说明73

4.6 XMODEM协议73

4.6.3 XMODEM接收75

4.6.4 XMODEM-CRC77

4.6.5 超时处理78

4.6.6 XMODEM的有关问题79

4.6.7 多文件XMODEM80

4.7 Kermit简介81

4.7.1 Kermit协议83

4.7.2 在Kermit信息包内控制字符的编码85

4.7.4 在Kermit DATA区段中重复计算的编码87

4.7.3 在Kermit DATA区段中数据字节高阶位的编码87

4.7.5 Kermit信息包中的区段88

4.7.6 Kermit信息包的类型89

4.7.8 终止一个传送过程91

4.7.7 一个Kermit通信会话范例91

4.7.9 Kermit的扩充93

4.7.11 加长信息包94

4.7.10 ARQ94

4.8 局部链路协议96

4.7.12 如何选择96

4.9 小结97

5.1.1 调制解调器基础99

5.1 调制解调器99

第5章 调制解调器及其控制99

5.1.2 调制100

5.1.3 通信方式或带宽用法102

5.1.4 频率调制104

5.1.5 带宽限制106

5.1.6 相位调制107

5.1.7 微分相移键控109

5.1.9 握手:建立数据链路110

5.1.8 正交调幅110

5.1.11 ECM:回波抵消系统114

5.1.10 带宽增加114

5.1.13 V.32115

5.1.12 网格编码115

5.2 调制解调器控制117

5.1.15 V.FAAT117

5.1.14 V.32bis117

5.3 RS-232标准118

5.3.1 交换电路的法定功能说明120

5.3.2 电信号特征122

5.3.3 接口电路的机械描述123

5.4 实际的RS-232124

5.4.1 调制解调器和RS-232接口125

5.4.2 微机接口129

5.5 灵巧型调制解调器130

5.5.1 调制解调器和流控制131

5.6.1 空(Null)调制解调器134

5.6 RS-232的非标准用法134

5.6.2 连接非调制解调器设备135

5.7 小结136

6.1.1 软件异步输出138

6.1 软件异步I/O138

第6章 UART:一个概念上的模型138

6.1.2 软件异步输入139

6.2.1 串行数据时钟142

6.2 UART的介绍142

6.2.2 UART发送器143

6.2.4 错误检测145

6.2.3 UART接收器145

6.2.5 接收器同步147

6.3.1 奇偶校验150

6.3 数据格式150

6.3.2 数据位个数151

6.4 RS-232接口152

6.3.4 “送BREAK”位152

6.3.3 停止位个数152

6.4.2 RS-232输入153

6.4.1 RS-232输出寄存器153

6.4.5 RS-232输出控制寄存器154

6.4.4 RS-232状态寄存器154

6.4.3 握手信号154

6.5 UART中断155

6.4.6 RS-232反相逻辑155

6.5.2 中断向量的确定156

6.5.1 生成中断156

6.6.1 过速/欠载157

6.6 FIFO式UART157

6.7.1 中断饱和158

6.7 中断等待158

6.10 小结159

6.9 一个理想FIFO的UART159

6.8 块结束问题159

7.1 National 8250/16450160

第7章 实际的UART160

7.2 8250硬件基础161

7.3.1 8250内部寄存器寻址162

7.3 8250内部结构162

7.2.1 8250时钟和同步162

7.3.2 8250寄存器用法概要164

7.3.3 8250上的中断169

7.3.4 中断服务例行程序170

7.4 National 16550 UART171

7.4.1 16550中断标识寄存器172

7.4.4 FIFO中断模式操作173

7.4.3 FIFO控制寄存器173

7.4.2 线路状态寄存器173

7.5 Zilog Z80SIO串行输入/输出控制器174

7.4.7 查询操作中16550的使用174

7.4.5 接收FIFO174

7.4.6 发送中断操作174

7.6.2 FIFO175

7.6.1 寄存器寻址175

7.6 Z80SIO与8250比较175

7.7 Z80SIO硬件基础176

7.6.5 XZ80SIO附加特征176

7.6.3 DELTA状态位锁存176

7.6.4 向量中断176

7.7.2 控制/状态口寻址178

7.7.1 数据寄存器178

7.7.3 Z80SIO中断180

7.7.4 其余寄存器概述184

7.8 小结186

第8章 baseline灵巧型调制解调器187

8.1 灵巧型调制解调器的灵巧之处何在?188

8.3.1 命令状态189

8.3 调制解调器状态189

8.2 Hayes Smart调制解调器的简史189

8.4.1 命令语法190

8.4 命令语法和调制解调器响应190

8.3.2 拨号状态190

8.3.3 握手状态190

8.3.4 在线状态190

8.3.5 在线命令状态190

8.3.6 哑终端方式190

8.4.2 命令执行时间191

8.5 软挂起:在线命令状态192

8.4.3 按键退出192

8.6 对命令的响应193

8.5.1 在线转义的危险193

8.7.1 自动波特率调整194

8.7 硬件问题194

8.7.3 非易失性存储器195

8.7.2 速率和数据格式195

8.7.4 调制解调器的RS-232接口196

8.7.7 配置开关197

8.7.6 后面板197

8.7.5 前面板197

9.2 调制解调器命令200

9.1 存根命令200

第9章 ??调制解调器命令200

9.3.1 用户接口命令组201

9.3 方式命令201

9.3.2 基本拨号和应答命令组204

9.3.3 拨号修改标志组205

9.3.4 拨号变量命令组208

9.3.5 其他命令组210

9.3.7 电话硬件控制命令组213

9.3.6 Profile管理命令组213

9.3.8 RS-232命令组215

9.3.9 连接性选择命令组216

9.4 数字变量命令217

9.4.1 S寄存器字符变量218

9.4.2 计数/定时用S寄存器变量219

10.1.2 背景226

10.1.1 调制解调器协议226

第10章 协议调制解调器226

10.1 调制解调器协议和协议调制解调器226

10.1.3 调制解调器协议的简短回顾227

10.1.5 OSI七层网络模型228

10.1.4 网络模型228

10.2.2 体系结构230

10.2.1 同步还是异步?230

10.2 究竟什么是一个链路协议?230

10.2.4 数据等待时间231

10.2.3 数据透明性231

10.2.6 BREAK处理233

10.2.5 协议效率233

10.3.2 信息234

10.3.1 标题234

10.3 MNP协议234

10.4.6 协议效率235

10.4.5 帧校验序列235

10.3.3 帧校验序列235

10.3.4 BREAK处理235

10.4 MNP异步协议:1类和2类MNP235

10.4.1 信息包引导符235

10.4.2 标题字段235

10.4.3 信息字段235

10.4.4 信息包终结符序列235

10.5.1 信息包引导符/终结符序列236

10.5 MNP同步协议:3类和4类MNP236

10.6 LAPM(V.42)237

10.5.4 协议效率237

10.5.2 标题字段237

10.5.3 帧校验序列237

10.6.5 BREAK处理238

10.6.4 信息字段238

10.6.1 信息包引导符/终结符序列238

10.6.2 地址字段238

10.6.3 控制字段238

10.7 压缩理论239

10.7.1 重复240

10.7.2 统计重复:哈夫曼编码241

10.7.3 历史重复:Lempel-Ziv242

10.8 流控制247

10.7.6 V.42bis和5类MNP之间的比较247

10.8.1 流控制与数据压缩248

10.10 Q协议启动250

10.9 协议调制解调及其命令250

10.12 S48:特性协商251

10.11 S46:协议及压缩规程选择251

10.14 K:流控制252

10.13 S36:协商退却(Fallback)252

10.16 Wn和S95:扩展响应253

10.15 线路速度控制253

第11章 传真机256

11.1 T:30:传真通信协议258

11.2 HDLC信息包259

11.3 传真字段261

11.5.1 轮询262

11.5 同步线路控制262

11.4 成串信息包262

11.6.1 阶段A:呼叫建立263

11.6 传真的五个阶段263

11.5.2 X位(X-Bit)263

11.6.2 阶段B:识别和协商264

11.6.4 阶段D:页后过程265

11.6.3 阶段C:数据(“报文”)传输265

11.7.1 实例描述一:单页传真266

11.7 传真过程的实例描述266

11.6.5 阶段E:呼叫释放266

11.7.3 实例描述三:不同规格的多页传真268

11.7.2 实例描述二:规格相同的多页传真268

11.7.4 实例描述四:轮询方式单页传真271

11.7.5 实例描述五:在G3训练期间降低速度273

11.7.6 实例描述六:在G3训练期间提高速度274

11.8.2 新的FCF275

11.8.1 向后兼容性和可扩展性275

11.8 DIS/DCS位映象275

11.8.3 最小性能集合276

11.8.4 DIS/DCS信息包的逐位解释279

11.9 T.4.:传真图像协议282

11.10 分辨率283

11.10.1 1992年的T.4建议284

11.11.1 页面尺寸285

11.11 文件尺寸285

11.12.1 一维编码(改进型哈夫曼编码)289

11.12 传真编码289

11.12.2 二维编码(READ编码)294

11.12.3 线终码297

11.12.3 编码方式综述297

11.12.4 页编码299

11.13 差错300

11.13.1 纠错301

11.14 EIA传真调制解调器302

11.15 EIA 578(Class1)304

11.15.1 Clas-1服务305

11.15.2 命令综述306

11.16 会话实例309

12.1.1 SIOLOCAL.H文件314

12.1 Microsoft C编译器314

第二部分 用C语言编写异步通信程序314

第12章 设计一个基本的串行I/O库314

12.2 串行I/P库317

12.2.1 函数库的层次结构--分级319

12.2.2 用于屏蔽状态寄存器的常量321

12.2.3 U16x.LIB322

12.2.4 2级库:BUOS.LIB325

12.2.5 3级库:SIO.LIB326

12.3 终端模拟程序的第一个版本TERM0327

12.3.1 控制台I/O328

12.4 TERM0329

12.5.1 0级模块:IBMPC.C.331

12.5 连接TERM0331

12.6 小结332

13.1 1级函数333

第13章 程序的可移植性333

13.1.1 结构中的函数指针334

13.1.2 含有指向UART读/写函数的指针的结构sio335

13.1.3 修改后的RART.LIB函数336

13.2 SIO数据类型337

13.1.4 内存映象系统各的指针337

13.2.1 管理多个SIO338

13.3 修改1级函数339

13.4.1 进一步讨论函数指针341

13.4 修改2级函数341

13.3.1 寄存器存储类型register341

13.4.2 BUOS.LIB中修改后的2级函数342

13.4.3 声明和初始化SIO343

13.6.1 延时346

13.6 定时函数的类型346

13.5 为内存映象UART提供的SIO结构346

13.5.1 定时函数346

13.7.1 系统节拍器347

13.7 系统定时器和时间保持器347

13.6.2 超时功能347

13.8 设计一个虚拟的定时系统348

13.7.2 系统节拍器的软件接口348

13.8.1 IBM PC机的定时程序349

13.8.2 0级定时函数delay350

13.8.3 “等待字符”函数351

13.9 为定时参数定义常量352

13.10 UART清除器353

13.10.1 测试定时函数的程序354

13.11 小结355

14.1 设计目标356

第14章 波特率和数据格式函数356

14.1.2 一般假设357

14.1.1 用户准则357

14.1.3 虚拟寄存器358

14.2 IBM PC机的数据格式361

14.2.1 16X50的虚拟寄存器数组362

14.2.2 位操作的通用结构(vergbits_)363

14.2.3 IBM PC机上的数据格式364

14.2.4 通过SIO指针访问虚拟寄存器365

14.2.5 为停止位和数据长度声明的结构366

14.2.6 多寄存器操作367

14.2.7 最终版的vsetbits函数369

14.2.9 3级数据络式函数371

14.2.8 16X50的1级函数(_vestbits)371

14.3 波特率函数373

14.2.10 结构定义的位置373

14.3.1 vbaud_数据结构374

14.3.2 IBM PC的波特率数据结构375

14.3.3 设置波特率的2级函数376

14.3.4 用于16X50的1级波特率函数(_vsetbr)377

14.3.5 设置波特率的3级函数378

14.4.1 用于16X50的设置和恢复函数:s_config和s_restore379

14.4 配置和恢复379

14.4.2 用于数据格式、波特率和检错的字符串数组381

14.5 TERM2382

14.6 小结387

15.1.1 RS-232 UART输出388

15.1 RS-232输出控制388

第15章 RS-232输入控制388

15.1.2 TERM3397

15.2.1 VIN232_结构400

15.2 RS-232输入控制400

15.2.3 VIN232_结构的说明401

15.2.2 RS-232输入常量401

15.2.4 第2级RS-232输入函数(VSTAT232)402

15.2.5 新的SIO结构成员403

15.2.6 RS-232输入状态的第1级函数404

15.2.7 第3级RS-232输入函数405

15.2.8 SIO说明和初始化406

15.2.9 TERM的若干改动407

15.3 小结408

16.1.1 虚拟流控制409

16.1 流控制409

第16章 流控制和SIO管理409

16.2 商品管理413

16.2.1 打开串行I/O设备415

16.2.2 第3级open函数418

16.2.3 第3级关闭函数420

16.3 发送器和接收器函数421

16.3.1 第3级中的其他函数423

16.4 TERM的修订版424

16.5 小结425

第17章 格式输出426

17.1 格式输出427

17.1.1 soctl_结构的说明和初始化429

17.2 输出控制函数430

17.1.2 SIO结构的新结构成员430

17.2.1 速度考虑433

17.2.3 “原始”模式435

17.2.2 s_fputc概述435

17.2.4 字节的转换和删除436

17.2.6 行结束转换437

17.2.5 控制字符删除437

17.2.7 被发送字节的处理438

17.3.1 逐个字符的字符串输出440

17.3 格式I/0的第3级函数440

17.3.2 操作soctl_结构成员的函数441

17.3.3 输出控制结构的临时存储444

17.4 TERM4446

17.4.2 改进建议449

17.4.1 传送文件的其他设计方法449

17.5 小结450

18.1.1 sictl_结构451

18.1 格式输入函数451

第18章 格式输入451

18.1.3 SIO结构的新结构成员453

18.1.2 sictl_结构的说明和初始化453

18.2 s_fgetc概述454

18.2.1 原始处理457

18.2.5 “回读”机制458

18.2.4 行结束符的转换458

18.2.2 控制逻辑458

18.2.3 超时操作458

18.2.6 有关速度的进一步讨论459

18.3 格式输入的第3级函数460

18.2.7 回送460

18.3.1 输入控制结构的临时存储461

18.4.1 s_fgets函数462

18.4 带来方便的第3级输入函数462

18.5 TERM5463

18.5.1 数据转储函数dnload的设计465

18.5.3 读取函数1:cbuff468

18.5.2 数据获取函数的设计468

18.5.4 读取函数2:locbuff472

18.6 小结474

19.2 中断475

19.1 中断的基础概念475

第19章 中断I/O导论475

19.3 IBM PC机的中断结构476

19.2.1 中断和异步I/O476

19.3.1 8259外围中断控制器(PIC)477

19.4.1 SIO的新结构成员和常量478

19.4 系统中断函数478

19.4.2 主中断处理程序480

19.4.3 整体系统结构482

19.4.4 __sys_introff函数485

19.5.1 URAT中断管理程序486

19.5 UART中断函数486

19.5.2 SIO中断管理程序s_iadmin487

19.5.3 UART中断的再向量化488

19.5.4 摘要489

19.6.1 对s_spen的改动490

19.6 对第3级函数的改动490

19.6.2 对s_close的改动492

19.7 小结493

第20章 中断子处理程序494

20.1.2 串行化出错子处理程序497

20.1.1 SIO中的串行化出错497

20.1 串行化出错中断497

20.1.3 串行化出错的高层接口498

20.1.4 串行化出错的中断控制499

20.2 RS-232状态中断500

20.2.1 RS-232中断子处理程序501

20.2.2 RS-232中断控制502

20.3 检测I6550503

20.3.1 s_config函数的修改504

20.4.1 接收器中断缓冲区的设计505

20.4 接收器中断505

20.4.2 接收器中断子处理程序506

20.4.3 接收器中断到SIO的接口508

20.4.4 接收器中断控制509

20.5.1 发送器中断缓冲区的设计511

20.5 发送器中断511

20.5.2 发送器中断子处理程序512

20.5.3 发送器中断控制515

20.6 发送器中断到SIO的接口518

20.6.1 成块写接口518

20.7 TERM6522

第21章 灵巧型调制解调器程序设计524

21.1 基本设计标准524

21.1.1 用户接口524

21.1.2 RS-232控制525

21.1.3 兼容性525

21.1.4 通用性525

21.2 调制解调器的结构和常量525

21.3 调制解调器命令528

21.3.1 命令和响应的结构成员528

21.3.2 发送调制解调器命令:m_cmd529

21.4 获取调制解调器的应答530

21.4.1 取应答函数:s_fgetln530

21.4.2 取应答函数:m_getstr532

21.5 对调制解调器函数533

21.5.1 验证应答函数:m_ismessage534

21.6 高层调制解调器函数536

21.6.1 发送命令,读取应答的函数:m_cmd_str536

21.6.2 发送命令,验证其有效性:m_cmd_OK537

21.6.3 强制调制解调器转入命令状态:m_gocmd538

21.7.1 重置函数所需的调制解调器结构成员539

21.7.2 重置调制解调器的函数:m_reset539

21.7 重置函数539

21.7.3 识别调制解调器:m_whoru543

21.7.4 用于识别所需的结构成员543

21.8 对基线调制解调器进行配置545

21.8.1 配置:m_config和m_unconfig546

21.9 协议调制解调器548

21.9.1 波特率转换549

21.9.2 回归到无协议情况549

21.9.3 CONNECT消息550

21.9.4 配置550

21.9.5 协议配置的结构成员551

21.9.6 配置协议调制解调器:m_oarsernsg552

21.9.7 分析调制解调器应答的函数:m_parsernsg554

21.9.8 有关m_parsemsg的说明556

21.10 拨号和回答函数557

21.10.1 返回呼叫-进行应答:m_wait4dcd557

21.10.2 自动拨号函数:m_dial559

21.10.3 重拨上一次的号码:m_redial561

21.10.4 回答电话:m_answer561

21.10.5 终止连接的函数:m_hup562

21.10.6 考察数据载波检测(DCD):m_warndcd563

21.10.7 调制解调器函数的字符串数组564

21.11 TERM6565

21.11.1 TERM6的一个解释568

21.12 小结569

第22章 XMODEM文件传送570

22.1 文件传送的设计考虑570

22.2 异常处理571

22.3 XMODEM传送578

22.4 XMODEM接收590

22.5 校验和出错检测函数599

22.6 结论601

23.1 多项式与CRC函数603

23.1.1 用硬件和软件实现多项式除数603

第23章 循环冗余校验CRC计算603

23.1.2 模拟CRC硬件:crchware606

23.1.3 用查表法计算CRC608

23.2 为x_snd和x_rcv提供的CRCbiov611

23.2.1 发送CRC的函数:x_sndcrc611

23.2.1 接收CRC:x_reverc612

23.3 CRC-16的计算613

23.3.1 CRC函数的CRC测试程序:CRC.C616

23.4 小结617

第24章 Group3传真图象的编码和解码618

24.1 创建一个测试位图619

24.2 T.4 编码621

24.2.1 RUN2T4:把行程编码转换为修订的哈夫曼编码624

24.3 T.4解码630

24.3.1 T4DECODE:对修订的哈夫曼编码进行解码631

24.3.2 T4TORUN:修正的哈夫曼行程编码635

24.3.3 行程编码转换为位图图象636

1.期刊641

2.书籍641

参考书目641

3.标准及参考文献643

美国国家标准协会的文件643

电子/远程通信工程协会的文件644

CCITT644

附录A 附带函数646

BIGBUFF646

HAKTC647

PUTBIN648

RFOPEN648

STR_ATIO649

WFOPEN649

B.1 汇编代码651

B.1.1 汇编程序体:CPGSC.ASM651

附录B 汇编程序接口和内存模式651

B.2 主ISR:COM1ISR.ASM653

B.3 宏:CQGSC.MAC655

附录C IBMPC.C657

C.1 SIO初始化程序:COM1SIO.C659

附录D 头文件667

ASCII.H667

BUOS.H668

CRC.H668

IBMPC.H669

LEVELO.H670

MISE.H670

KEY.H670

MODEM.H671

SIOCTL.H673

SIODEF.H675

SIOLOCAL/H683

T4.H683

UART.H684

U16X50.H684

TERM.H684

XMOD.H687

附录E TERM7690

附录F 传真编码和解码表695

附录G 函数索引706

1995《串行通信C程序员指南 第2版》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)Joe Campbell著;徐国定等译 1995 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

Delphi程序员指南(1997 PDF版)
Delphi程序员指南
1997 北京:科学出版社;西蒙与舒斯特国际出版公司
串行通信C程序员指南  (第二版)(1995 PDF版)
串行通信C程序员指南 (第二版)
1995
面向对象的程序设计  Turbo C++程序员指南(1991.04 PDF版)
面向对象的程序设计 Turbo C++程序员指南
1991.04 海洋出版社
Novell Netware程序员指南 用C编写Netware应用程序( PDF版)
Novell Netware程序员指南 用C编写Netware应用程序
北京希望电脑公司
C/C++程序员Java编程( PDF版)
C/C++程序员Java编程
北京市:清华大学出版社
Netbios c 程序员指南( PDF版)
Netbios c 程序员指南
程序员编程指南  2(1991 PDF版)
程序员编程指南 2
1991 中国科学院希望高级电脑技术公司
程序员指南  下(1991 PDF版)
程序员指南 下
1991 北京:海洋出版社
C程序设计(1995 PDF版)
C程序设计
1995 北京:清华大学出版社
C/C++程序初学者指南(1996 PDF版)
C/C++程序初学者指南
1996 北京:电子工业出版社
Microsoft Visual C++ 6.0程序员指南(1998 PDF版)
Microsoft Visual C++ 6.0程序员指南
1998 北京希望电脑公司
精通串行通信(1995 PDF版)
精通串行通信
1995 北京:电子工业出版社
Microsoft C++程序设计指南(1993 PDF版)
Microsoft C++程序设计指南
1993 北京:清华大学出版社
C++通信实用程序(1995 PDF版)
C++通信实用程序
1995 北京:电子工业出版社
TURBO C高级程序员编程指南 V2.0版(1992 PDF版)
TURBO C高级程序员编程指南 V2.0版
1992 中国科学院希望高级电脑技术公司