上篇 NDP Fortran—386用户手册 2
第0章 2
0.1 NDP Fortran-386简介 2
0.2 软件的安装 3
第一章 NDP Fortran编译器的运行 5
1.0 概述 5
1.1 手册的设计与更新原则 5
1.2 系统的硬件需求 5
1.3 系统的软件需求 6
1.4 2.0版软件及文档组成 6
1.5 安装过程 7
1.6 测试已安装的编译器 8
1.7 编译驱动程序:f77 10
1.8 环境变量和编译驱动程序 10
1.9 编译程序使用概述 13
1.10 使用Phar Lap汇编程序 18
1.11 使用Phar Lap连接程序 19
1.12 Phar Lap的DOS扩展程序RUN386 20
1.13 不带协处理器时的编译 22
第二章 使用编译驱动程序——f77 23
2.0 f77概述 23
2.1 f77的描述 23
2.2 f77的语法 24
2.3 编译驱动程序的选项和开关 24
2.4 通用选项和开关 25
2.5 编译控制开关 27
2.6 算术协处理器控制开关 27
2.7 代码生成器的控制 27
2.8 优化开关 28
2.9 关闭缺省的优化开关 28
2.10 Fortran选项 28
2.11 Options语句 29
第三章 使用Mini—Make 30
3.1 激活Mini—Make 30
第四章 NDP Fortran的扩展 35
4.1 NDP Fortran规范 35
4.2 不规范的和有问题的程序 38
4.3 NDP Fortran的内存需求 38
4.4 NDP Fortran运行库 38
4.5 80386操作特征 38
4.6 NDP操作环境特征 38
第五章 优化 40
5.1 介绍 40
5.2 通用的优化处理 41
5.3 速度优化 44
5.4 FORTRAN应用程序的优化 45
5.5 用基准程序测试1167 57
第六章 与NDP编译程序的接口 67
6.1 引言 67
6.2 NDP语言之间的接口 68
6.3 NDP语言与汇编语言之间的接口 88
6.4 与实模式例程的接口 138
第七章 向NDP Fortran移植程序 172
7.0 引言 172
7.1 与其他MicroWay NDP编译程序的兼容性 172
7.2 有关字长的问题 172
7.3 有关字节顺序的问题 172
7.4 对齐的要求 173
7.5 浮点数的范围和精度 173
7.6 汇编语言接口 173
7.7 表达式的求值顺序 173
7.8 编译优化的非法假定 174
7.9 隐含的寄存器用法 174
7.10 内容分配假定 174
7.11 —MO和—OLM 174
7.12 源程序级调试器的有关问题 174
7.13 编译程序的内存大问题 175
第八章 错误信息和恢复 177
8.0 介绍 177
8.1 第一遍扫描错 177
8.2 第二遍扫描错 177
8.3 运行错误 177
第九章 内部函数和系统过程 178
9.1 介绍 178
9.2 内部函数 178
9.3 系统子程序 198
第十章 支持数学协处理器 200
10.0 概述 200
10.1 编译器的浮点选项——开关n 200
10.2 数值异常——主动与被动处理(仅限DOS) 201
10.3 协处理器结构 204
10.4 IEEE数值系统介绍 207
10.5 内部NDP异常处理函数(仅限DOS) 216
10.6 定制和编写自己的NDP异常处理器(仅限DOS) 219
10.7 舍入、精度,及无穷大控制 242
10.8 promote-no-float开关(-n6) 244
第十一章 NDP Fortran扩展图形库GREX 245
11.1 引言 245
11.2 设计的考虑 245
11.3 库的内容 246
11.4 库的内容 247
11.5 图形例程详解 250
address 251
aspect_ratio 251
clear 251
define_color 252
draw 252
filled_ellipse 252
filled_rectangle 253
flood_fill 253
get_active_page 254
get_clip_limits 254
get_color 254
get_device_limits 255
get_dash 255
get_display_page 255
get_pixel 255
graphic_text 256
graphic_mode 256
horizontal_line 257
magnfy_text 257
move 258
move_cursor 259
open_ellipse 259
polyfill 261
restore_window 262
save_window 263
set_active_page 264
set_clip_limits 264
set_color 265
set_dash 265
set_display_page 267
set_palette 267
set_pixel 267
set_xor 268
size_window 268
super_vga 269
text_mode 270
vertical_text 270
vga_palette 271
video_configuration 271
_where 272
11.6 文本例详解 273
clear_text 274
cr 274
display_text_page 275
dn_cursor 275
get_active_attribute 275
get_active_text_page 276
get_cursor 276
get_video_mode 276
hide_cursor 277
home_ 277
inkey$ 277
if 278
locate 279
note 280
pause 280
pauseb 280
place_string_at 281
read_attr 282
read_char 282
restroe_text_window 283
rt_cursor 284
save_text_window 284
scroll_active_page_down 285
scroll_active page_up 286
set25line 287
set43line 287
set_active_attribute 287
set_active_text_page 288
set_cursor_type 288
set_video_mode 289
up_cursor 289
write_char 289
write_char_attr 290
write_one_char 291
write_string 292
11.7 端口、块中断例程详解 293
blk_bm 293
blk_mb 293
get_addr 294
inp 294
inpw 294
int386 295
mapdev 295
outp 296
outpw 296
11.8 DOS时间与日期函数 297
date 297
dosdat 297
dostim 297
sec_100 298
seconds 298
time 298
11.9 演示程序fdemo.f和screenin.f 298
11.10 图形函数的交叉引用 298
第十二章 跟踪与调试 301
12.1 引言 301
12.2 调试过程 302
12.3 内存保护错误 302
12.4 编制一个快速的user_debug例程 303
下篇 参考手册 306
第0章 306
0.1 NDP Fortran-386简介 306
0.2 软件的安装 307
第一章 NDP FORTRAN—386的组成 309
1.1 字符组成 309
1.2 字串常量 310
1.3 符号名和关键字 311
1.4 语句和行 313
1.5 语句标号 316
1.6 语句顺序 316
1.7 程序结构 317
1.8 编译的复杂性 326
第二章 数据类型 327
2.1 整型 327
2.2 实型 328
2.3 复数型 328
2.4 逻辑型 329
2.5 字节型 329
2.6 字符型 329
第三章 常量、变量、数组和子串 331
3.1 常量 331
3.2 变量 331
3.3 数组 331
3.4 子串 334
第四章 表达式 335
4.1 算术表达式 335
4.2 字符表达式 335
4.3 关系表达式 337
4.4 逻辑表达式 338
第五章 结构语句 340
5.1 BLOCK DATA语句 340
5.2 ENTRY语句 340
5.3 FUNCTION语句 341
5.4 PROGRAM语句 341
5.5 SUBROUTINE语句 342
第六章 定义语句 343
6.1 COMMON语句 343
6.2 DIMENSION语句 344
6.3 EQUIVALENCE语句 344
6.4 EXTERNAL语句 344
6.5 IMPLICIT语句 345
6.6 IMPLICIT NONE语句 346
6.7 IMPLICIT UNDEFINED语句 346
6.8 INTRINSIC语句 346
6.9 NAMELIST语句 346
6.10 PARAMETER语句 347
6.11 RECORD语句 347
6.12 SAVE语句 347
6.13 STRUCTURE语句 347
6.14 UNION语句 348
6.15 VIRTUAL语句 349
6.16 VALATILE语句 349
第七章 数据类型说明语句 350
7.1 AUTOMATIC语句 350
7.2 BYTE语句 351
7.3 CHARACTER语句 351
7.4 COMPLEX语句 352
7.5 DOUBLE COMPLEX语句 352
7.6 DOUBLE PRECISION语句 352
7.7 INTEGER语句 353
7.8 LOGICAL语句 353
7.9 REAL语句 354
7.10 STATIC语句 354
第八章 DATA语句 358
第九章 赋值语句 358
9.1 赋值语句 358
9.2 ASSIGN语句 359
第十章 控制语句 360
10.1 CALL语句 360
10.2 CONTINUE语句 360
10.3 DO循环 361
10.4 END语句 363
10.5 GOTO语句 363
10.6 if语句 364
10.7 PAUSE语句 366
10.8 RETURN语句 367
10.9 STOP语句 368
第十一章 输入/输出语句 369
11.1 引言 369
11.2 术语定义 371
11.3 数据传送语句语法 373
11.4 ACCEPT语句 376
11.5 ENCODE语句 377
11.6 DECODE语句 377
11.7 PRINT语句 377
11.8 READ语句 378
11.9 TYPE语句 381
11.10 WRITE语句 382
11.11 辅助I/O语句 385
11.12 文件定位语句 391
第十二章 格式化输入/输出 393
12.1 直接格式化 393
12.2 直接表式格式 405
附录A 编译错误信息 409
附录B 运行错误信息 413
附录C ASCII字符集 416
附录D 虚拟存储器 418