目录 1
《MS-DOS百科全书》概述 1
第一篇 MS-DOS操作系统的开发 7
MS-DOS的发展史 7
Microsoft公司和BASIC语言 7
从纸带到磁盘 8
M-DOS操作系统 9
CP/M操作系统 9
8086微处理器 10
86-DOS操作系统 10
IBM公司 11
转折点 12
MS-DOS的形成 13
MS-DOS版本1 13
新功能 14
性能 15
易用性 15
市场 16
更名操作系统 17
开发者和MS-DOS 17
MS-DOS版本2 18
文件系统 19
其它的详细变更处和新的MS-DOS 20
可安装的设备驱动程序 20
假脱机打印程序 20
2.1版和2.5版本 21
IBM的关注 21
IBM以外的情况 22
各客户的不同版本 22
软件问题 22
MS-DOS版本3 23
3.0版本 24
3.1版本 25
解决网络上的问题 25
MS-DOS的未来 26
3.2版本 26
第二篇 MS-DOS环境下的编程 27
MS-DOS的结构 27
第一章 MS-DOS入门 27
1.1 MS-DOS系统的组成 28
1.1.1 操作系统装入程序 28
1.1.2 MS-DOS BIOS 28
1.1.3 MS-DOS内核 28
1.1.4 用户接口 30
1.1.5 服务程序 30
1.1.6 MS-DOS的版本 30
1.2.1 所需的硬件 32
1.2 MS-DOS的工作条件 32
1.3 小结 34
第二章 MS-DOS的构成要素 35
2.1 主要构成要素 35
2.1.1 MS-DOS BIOS 35
2.1.2 MS-DOS内核 36
2.1.3 MS-DOS外壳 37
2.2 MS-DOS的装入过程 40
2.2.1 ROMBIOS、POST、引导 41
2.2.2 MS-DOS系统的初始化(SYSINIT) 43
2.2.3 外壳的启动 46
3.1.1 块设备的物理设备格式 53
第三章 MS-DOS的外部存储设备 53
3.1 MS-DOS的磁盘结构 53
3.1.2 分区的格式 57
3.1.3 文件系统的格式 59
3.2 其他的MS-DOS存储设备 68
MS-DOS环境下的编程 69
第四章 应用程序的结构 69
4.1 .EXE程序 69
4.1.1 向.EXE程序传递控制 69
4.1.2 .EXE程序的结束 75
4.1.3 .EXE文件的结构 78
4.1.4 .EXE程序的读入 82
4.1.5 .EXE程序结构的控制 83
4.1.6 Microsoft的存储模式说明 93
4.1.7 .EXE文件标题的修改 95
4.1.8 使用DEBUG修补.EXE程序 96
4.1.9 .EXE程序的要点 97
4.2 .COM程序 97
4.2.1 向.COM程序传递控制 97
4.2.2 .COM程序的结束 98
4.2.3 .COM程序的编制 98
4.2.5 .COM程序的要点 101
4.3 不同点的概要 101
4.2.4 使用DEBUG实用程序修补.COM程序 101
第五章 字符设备的输入输出 102
5.1 发展过程 102
5.2 字符设备的输入输出 103
5.3 MS-DOS基本字符设备 103
5.3.1 标准设备 104
5.3.2 RAM状态和COOKED状态 105
5.3.3 键盘 106
5.3.4 显示器 109
5.3.5 串行通信端口 111
5.3.6 并行端口和打印机 113
5.4 IOCTL 114
5.4.1 IOCTL程序举例 115
6.1 通信程序的目的 117
第六章 中断驱动通信 117
6.2 简单MS-DOS功能的使用 118
6.3 内装式硬件 119
6.3.1 调制解调器 119
6.3.2 串行端口 120
6.3.3 8250 UART的结构 121
6.4 设备驱动程序 128
6.5 两种实现方法 128
6.5.1 典型的方法:由单个程序实现 128
6.5.2 由通信用设备驱动程序实现 128
6.6.1 设备驱动程序:COMDVR.ASM 129
6.6 设备驱动程序程序包 129
6.5.3 两种方法的比较 129
6.6.2 简单的调制解调机理 154
6.6.3 驱动程序状态实用程序:CDVUTL.C 156
6.7 典型的方法 163
6.7.1 硬件ISR模块 163
6.7.2 异常处理模块 171
6.7.3 图象显示器模块 173
6.7.4 高性能终端信真程序CTERM.C 178
第七章 文件与记录的管理 196
7.1 历史发展过程 196
7.2 句柄功能的使用方法 196
7.2.1 错误处理与句柄功能 198
7.2.2 文件的生成 199
7.2.3 打开已存文件 201
7.2.4 文件的关闭 203
7.2.5 用句柄读和写 203
7.2.6 文件指针的移动 205
7.2.7 其它句柄功能 206
7.3 FCB功能的使用方法 210
7.3.1 FCB的结构 210
7.3.2 FCB功能与PSP 213
7.3.3 文件名分析 214
7.3.4 错误处理与FCB功能 214
7.3.6 文件打开 215
7.3.5 文件生成 215
7.3.7 文件关闭 216
7.3.8 利用FCB对文件的读和写 216
7.3.9 利用FCB对文件的其他操作 219
7.4 小结 221
第八章 磁盘目录与卷标 223
8.1 MS-DOS目录的逻辑结构 223
8.1.1 目录检索 223
8.1.2 目录项增补与删除 223
8.1.3 当前目录 224
8.2 目录的格式 224
8.2.1 目录入口的格式 225
8.4 对MS-DOS目录功能的支持 226
8.3 卷标 226
8.4.1 目录检索 229
8.4.2 目录入口信息的取得 229
8.4.3 改变目录项的内容 229
8.4.4 目录的生成与删除 230
8.4.5 指定当前目录 230
8.4.6 程序举例:文件检索 230
8.4.7 程序举例:改变卷标 233
第九章 内存管理 238
9.1 常规内存 238
9.1.1 MS-DOS对常规内存管理的支持 239
9.1.2 内存管理功能的使用方法 240
9.2 扩展内存 244
9.2.1 扩展内存管理程序EMM 245
9.3 扩充内存 252
9.4 小结 255
第十章 MS-DOS EXEC功能 256
10.1 EXEC功能的操作 256
10.2 使用EXEC功能装入程序的方法 257
10.2.1 内存的释放(子程序的执行) 257
10.2.2 参数的准备 257
10.2.3 子程序的执行 260
10.2.4 子程序返回码的检查 261
10.2.5 用EXEC功能执行COMMAND.COM 261
10.2.6 父程序和子程序举例 262
10.3.1 内存的释放(覆盖的执行) 267
10.3 使用EXEC功能装入覆盖的方法 267
10.3.2 覆盖参数的准备 268
10.4.4 覆盖实则 268
定制MS-DOS系统 274
第十一章 驻留结束程序 274
11.1 驻留结束实用程序的结构 274
11.1.1 键盘输入 275
11.1.2 ROM BIOS中断处理 275
11.1.3 硬件中断处理 276
11.1.4 MS-DOS的功能处理 276
11.2 用于TSR的MS-DOS支持 277
11.2.1 驻留结束功能 277
10.3.3 覆盖的装入和执行 278
11.2.2 中断向量的设置和获取 278
11.2.3 PSP地址的设置和获取 278
11.2.4 扩充错误码的设置和获取 278
11.2.5 DTA地址的设置和获取 279
11.2.6 INT28H(空载中断) 279
11.3 对MS-DOS状态的了解 279
11.3.1 MS-DOS的内部堆栈 279
11.3.2 致命的错误标志 279
11.3.3 InDOS标志 281
11.4 多重中断 281
11.5.1 HELLO.ASM 282
11.5 TSR程序的举例 282
11.5.2 SNAP.ASM 284
第十二章 例外(异常)处理程序 306
12.1 概述 306
12.2 Ctrl-C处理程序 307
12.2.1 Ctrl-C处理程序的编写 307
12.2.2 Ctrl-C处理中的注意事项 310
12.3 致命错误处理程序 310
12.3.1 致命错误处理程序的构成 312
12.3.2 致命错误的处理 313
12.3.3 致命错误处理程序的建立 314
12.4 由硬件产生的例外(异常)中断 317
12.4.1 除法运算错误(INT 00H) 318
12.4.2 单步中断(INT 01H) 318
12.4.3 非屏蔽中断(NMI)(INT 02H) 318
12.4.4 断点中断的发生(INT 03H) 319
12.4.5 溢出中断的发生(INT 04H) 319
12.4.6 用BOUMD指令检测超限(INT 05H) 319
12.4.7 执行未定义的指令(INT 06H) 319
12.5 扩充错误信息 319
12.5.1 功能59H与以前的功能调用 324
12.5.2 功能59H与新的功能调用 325
第十三章 硬件中断处理程序 328
13.2 可屏蔽中断的特性 330
13.1.2 中断服务程序 330
13.1 硬件中断的种类 330
13.1.1 8086系列的中断优先顺序 330
13.2.1 不可预测性 331
13.2.2 立即处理的必要性 331
13.3 可屏蔽中断的控制 331
13.3.1 8259A可编程中断控制器 332
13.3.2 IRQ的级别 333
13.4 硬件中断的编程 335
13.4.1 置换处理程序举例 337
13.4.2 辅助处理程序 341
13.5 小结 343
14.1 为过滤程序提供的系统功能 344
第十四章 MS-DOS过滤程序的编写法 344
14.2 过滤程序的动作 345
14.3 过滤程序的构造 345
14.4 作为过滤程序子进程的使用方法 355
第十五章 可安装的设备驱动程序 360
15.1 常驻驱动程序与可安装的驱动程序 361
15.1.1 字符设备驱动程序 361
15.1.2 块设备驱动程序 362
15.2 MS-DOS设备驱动程序的结构 362
15.2.1 设备标题 362
15.2.2 策略例程(strat) 364
15.2.3 中断例程(Intr) 365
15.3 典型的输入输出请求的处理 377
15.4 设备驱动程序的描述 378
15.4.1 字符设备驱动程序举例:TEMPLATE 379
15.4.2 块设备驱动程序举例:TINYDISK 385
OS/2和Windows 393
第十六章 向MS OS/2应用程序的移植 393
16.1 有关硬件的问题 393
16.1.1 与保护模式的兼容性 393
16.1.2 系列API 393
16.1.3 线性存储器和分段存储器 394
1 6.1.4 CPU的速度 394
16.2 关于操作系统的问题 395
16.2.1 文件名 395
16.1.6 BIOS 395
16.1.7 特殊处理 395
16.1.5 程序的时间测算 395
16.2.2 MS-DOS功能调用 396
16.2.3 查找 398
16.2.4 错误代码 398
16.2.5 关于多任务 398
16.2.6 其他提示 399
16.3 小结 399
第十七章 Windows 400
17.1 程序的分类 400
17.2.1 窗口的元素 401
17.2 Windows的显示 401
17.2.2 对话框 404
17.3 MS-DOS窗口 405
17.4 其他Windows的程序 406
17.5 Windows的结构 406
17.5.1 Windows模块 407
17.5.2 库与程序 408
17.6 内存管理 409
17.7 Windows程序的结构 410
17.7.1 Microsoft Windows软件开发工具包 410
17.7.2 Wnidows程序的构成要素 410
17.7.3 Wnidows程序的创建 416
17.7.4 程序的初始化 417
17.7.5 Windows的消息系统 419
17.7.6 Windows的多任务 425
17.8 图形设备接口(GDI) 425
17.8.1 设备描述表(DC) 426
17.8.2 不依赖设备的编程 426
17.8.3 设备描述表的属性 426
17.8.4 映象模式 427
17.8.5 绘画函数 428
17.8.6 画笔的光栅操作 429
17.8.7 位块的传送 430
17.9.2 Windows的剪辑板 431
17.9.1 在事例之间共享局部数据 431
17.8.8 文本与字模 431
17.9 数据共享与数据交换 431
17.8.9 图元文件(Meta File) 431
17.9.3 动态数据交换(DDE) 432
17.10 国际化 432
编程工具 433
第十八章 在MS-DOS环境下调试程序 433
18.1 样板程序 433
18.2 调试用工具和技巧 437
18.2.1 点检和观察 438
18.2.2 测试工具 440
18.2.3 软件调试监控程序 461
18.2.4 硬件调试支持设备 519
18.3 小结 520
第十九章 目标模块 521
19.1 目标模块的使用方法 521
19.1.1 目标模块的内容 522
19.1.2 在目标模块中使用的术语 523
19.2 目标模块的结构 525
19.2.1 目标记录的类型 526
19.2.2 目标记录的顺序 526
19.2.3 典型的目标模块 527
19.2.4 目标记录间的访问 529
19.4 80H THEADR——处理系统标题记录 530
19.3 Microsoft 8086目标记录格式 530
19.4.1 记录格式 531
19.4.2 在目标模块中的位置 531
19.4.3 THEADR记录举例 531
19.5 88H COMENT——注释记录 531
19.5.1 记录格式 531
19.5.2 在目标模块中的位置 533
19.5.3 COMENT记录举例 533
19.6 8AH MODENE——模块结束记录 534
19.6.1 记录格式 534
19.6.3 MODEND记录举例 535
19.7 8CH EXTDEF——外部名定义记录 535
19.6.2 在目标模块中的位置 535
19.7.1 记录格式 536
19.7.2 在目录模块中的位置 536
19.7.3 EXTDEF记录举例 536
19.8 8EH TYPDEF——类型定义记录 537
19.8.1 记录格式 537
19.8.2 在目标模块中的位置 539
19.8.3 TYPDEF记录举例 539
19.9 90H PUBDEF——公用名定义记录 540
19.9.1 记录格式 540
19.9.2 在目标模块中的位置 541
19.9.3 PUBDEF记录举例 541
19.10.1 记录格式 542
19.10 94H LINNUM——行序号记录 542
19.10.3 LINNUM记录举例 543
19.11 96H LNAMES——符号一览表记录 543
19.10.2 在目标模块中的位置 543
19.11.1 记录格式 544
19.11.2 在目标模块中的位置 544
19.11.3 LNAMES记录举例 544
19.12 98H SEGDEF——段定义记录 545
19.12.1 记录格式 545
19.12.2 在目标模块中的位置 547
19.12.3 SEGDEF记录举例 547
19.13.2 在目标模块中的位置 548
19.13.3 GRPDEF记录举例 548
19.13 9AH GRPDEF——组定义记录 548
19.13.1 记录格式 548
19.14 9CH FIXUPP——安装记录 549
19.14.1 记录格式 549
19.14.2 在目标模块中的位置 553
19.14.3 FIXUPP记录举例 553
19.15 0A0H LEDATA——逻辑列举数据记录 559
19.15.1 记录格式 559
19.16 0A2H LIDATA——逻辑重复数据记录 560
19.16.1 记录格式 560
19.15.2 在目标模块中的位置 560
19.15.3 LEDATA 记录举例 560
19.16.2 在目标模块中的位置 561
19.16.3 LIDATA记录举例 561
19.17 0B0H COMDEF——共用名定义记录 562
19.17.1 记录格式 562
19.17.2 在目标模块中的位置 563
19.17.3 COMDEF记录举例 564
第二十章 Microsoft的目标连接程序LinKer 565
20.1 目标文件、目标库和LIB实用程序 565
20.2.1 可执行文件的构成 566
20.2.2 重定位和连接 566
20.2 LINK的处理 566
20.3 目标模块的顺序 567
20.3.1 可执行文件中的段顺序 568
20.3.2 解决访问的顺序 568
20.3.3 可执行文件的名称 568
20.4 段顺序和段组合类型 570
20.4.1 段的类 570
20.4.2 段的配置 570
20.4.3 段组 571
20.5 LINK的处理内容 572
20.5.1 第一遍扫描 572
20.5.2 第二遍扫描 573
20.6 用LINK提高内存使用效率 574
20.6.3 未初始化的数据段 576
20.6.4 覆盖 577
20.6.5 DGROUP 579
20.7 小结 581
前言 583
第三篇 用户命令 583
ANSI.SYS 588
APPEND 594
ASSIGN 595
ATTRIB 596
BACKUP 597
BATCH 603
AUTOEXEC.BAT……… 605
ECHO 607
FOR 608
GOTO 610
IF 611
PAUSE 612
REM 613
SHIFT 614
BREAK 615
CHDIR/CD 616
CHKDSK 617
COMMAND 622
CLS 622
COMP 624
CONFIG.SYS ……… 626
BREAK 627
BUFFERS 628
COUNTRY 629
DEVICE 630
DRIVPARM 632
FCBS 633
FILES 634
LASTDRIVE ……… 635
SHELL 636
STACKS 637
COPY 637
CTTY 640
DATE 641
DEL/ERASE 642
DIR 643
DESKCOMP 646
DISKCOPY 649
DRIVER.SYS ……… 652
EDLIN 654
〈行号〉 656
A 657
C 658
D 659
E 660
I 661
L 662
P 663
M 663
Q 664
R 665
S 666
T 668
EXIT 669
W 669
FC 670
FDISK 673
20.6.1 TSR中段的顺序 674
20.6.2 利用组共享段寄存器 675
FIND 677
FORMAT 679
GAFTABL 684
GRAPHICS 685
JOIN 687
KEYB 688
LABEL 690
MKDIR/MD 692
MODE(设置设备) 693
MODE(设置打印机) ……… 694
MODE(设置显示方式)……… 695
MODE(设置串行口)……… 697
MODE(重定向打印机)……… 698
MORE 699
PATH 700
PRINT 702
PROMPT 705
RAMDRIVE.SYS … 707
RECOVER 709
RENAME/REN …… 711
REPLACE 712
RESTORE 715
RMDIR/RD 718
SELECT 719
SET 723
SHARE 725
SORT 726
SUBST 728
SYS 729
TINE 731
TREE 732
TYPE 734
VDISK.SYS 735
VER 738
VIRIFY 738
VOL 739
XCOPY 740
第四篇 编程设计实用工具软件 745
前言 745
CREF 746
EXE2BIB 749
EXEMOD 751
EXEPACK 754
LIB 756
LINK 761
MAKE 770
MAPSYM 774
AMSM 776
DEBUG 786
A 789
C 791
D 792
E 793
F 794
G 795
H 796
I 797
L 797
M 798
N 799
O 800
P 801
Q 802
R 802
S 804
T 805
U 806
W 807
SYMDEB 808
A 815
BC 817
BD 818
BE 819
BL 820
BP 820
C 822
D 823
DA 824
DB 825
DD 826
DL 827
DS 828
DT 829
DW 830
E 831
EA 832
EB 832
ED 833
EL 834
ES 835
ET 836
EW 837
F 838
G 839
H 840
I 841
K 842
L 843
M 844
N 845
O 846
P 846
R 848
Q 848
S 850
S+ 851
S- 852
S 852
T 853
U 854
V 855
W 857
X 858
XO 859
Z 860
< 861
> 862
= 863
{ 864
} 864
~ 865
\ 865
? 866
! 868
* 868
Code View 869
第五篇 系统调用 883
前言 883
版本间的差异 883
各条目的形式 884
功能分类目录 887
Interrupt 20H(32) 890
Interrupt 21H(33) 891
Function 00H(0) 891
Function 01H(1) 892
Function 02H(2) 893
Function 03H(3) 895
Function 04H(4) 896
Function 05H(5) 897
Function 06H(6) 898
Function 07H(7) 900
Function 08H(8) 901
Function 09H(9) 903
Function 0AH(10) 904
Function 0BH(11) 906
Function 0CH(12) 907
Function 0DH(13) 908
Function 0EH(14) 909
Function 0FH(15) 911
Function 10H(16) 913
Function 11H(17) 914
Function 12H(18) 916
Function 13H(19) 918
Function 14H(20) 919
Function 15H(21) 921
Function 16H(22) 923
Function 17H(23) 925
Function 19H(25) 927
Function 1AH(26) 928
Function 1BH(27) 929
Function 1CH(28) 930
Function 21H(33) 933
Function 22H(34) 935
Function 23H(35) 936
Function 24H(36) 938
Function 25H(37) 939
Function 26H(38) 941
Function 27H(39) 942
Function 28H(40) 944
Function 29H(41) 946
Function 2AH(42) 948
Function 2BH(43) 949
Function 2CH(44) 951
Function 2DH(45) 952
Function 2EH(46) 953
Function 2FH(47) 954
Function 30H(48) 955
Function 31H(49) 956
Function 33H(51) 958
Function 34H(52) 959
Function 35H(53) 960
Function 36H(54) 961
Function 37H(55) 963
Function 38H(56) 965
Function 39H(57) 966
Function 3AH(58) 968
Function 3BH(59) 969
Function 3CH(60) 971
Function 3DH(61) 973
Function 3EH(62) 976
Function 3FH(63) 977
Function 40H(64) 979
Function 41H(65) 981
Function 42H(66) 982
Function 43H(67) 984
Function 44H(68) 986
Subfunction 00H 987
Subfunction 01H 989
Subfunction 02H,03H 990
Subfunction 04H,05H 992
Subfunction 06H,07H 994
Subfunction 08H 996
Subfunction 09H 998
Subfunction 0AH 999
Subfunction 0BH 1001
Subfunction 0CH 1002
Subfunction 0DH 1004
Minor Code 40H 1006
Minor Code 60H 1009
Minor Code 41H,61H 1012
Minor Code 42H,62H 1013
Subfunction 0EH,0FH 1015
Function 45H(69) 1016
Function 46H(70) 1018
Function 47H(71) 1019
Function 48H(72) 1021
Function 49H(73) 1023
Function 4AH(74) 1024
Function 4BH(75) 1026
Function 4CH(76) 1031
Function 4DH(77) 1032
Function 4EH(78) 1034
Function 4FH(79) 1036
Function 54H(84) 1038
Function 56H(86) 1039
Function 57H(87) 1041
Function 58H(88) 1043
Function 59H(89) 1045
Function 5AH(90) 1049
Function 5BH(91) 1051
Function 5CH(92) 1052
Function 5EH(94) 1055
Subfunction 00H 1055
Subfunction 02H,03H 1056
Function 5FH(95) 1057
Subfunction 02H 1057
Subfunction 03H 1059
Subfunction 04H 1061
Function 62H(98) 1063
Function 63H(99) 1064
Interrupt 22H(34) 1065
Interrupt 23H(35) 1066
Interrupt 24H(36) 1067
Interrupt 25H(37) 1069
Interrupt 26H(38) 1071
Interrupt 27H(39) 1073
Interrupt 2FH(47) 1074
附录 1077
附录A MS-DOS 3.3版本 1077
3.3版本中用户级的变化 1077
3.3版本中编程时的注意事项 1090
附录B 严重错误代码 1100
附录C 扩充错误代码 1101
AX——扩充错误代码 1101
CH——错误产生位置 1102
处置过程 1102
BH——错误种类 1102
BL——错误的处置 1102
附录D ASCII字符集和IBM扩充字符集 1103
附录E EBCDIC字符集 1105
附录F ANSI.SYS键代码和扩充键代码 1107
附录G FCB结构 1109
附录H PSP结构 1112
附录I 8086/8088/80286/80386指令系统 1113
8086/8088指令系统 1113
80286指令系统 1115
80386指令系统 1117
附录J 一般MS-DOS文件扩展名 1119
附录K New EXE文件头格式 1121
以前的可执行文件头 1121
新的可执行文件头 1121
附录L Intel十六进制目标文件格式 1130
附录M 8086/8088软件兼容性 1136
附录N 目标模块转储实用工具程序 1137
附录O IBM PC BIOS调用 1140
INT10H 1140
Function 00H 1140
Function 05H 1141
Function 04H 1141
Function 03H 1141
Function 02H 1141
Function 01H 1141
Function 06H 1142
Function 07H 1142
Function 08H 1142
Function 09H 1142
Function 0AH 1143
Function 0BH 1143
Function 0CH 1143
Function 0DH 1143
Function 0EH 1143
INT11H 1144
Function 13H 1144
Function 0FH 1144
INT12H 1145
INT13H 1145
Function 00H 1145
Function 01H 1145
Function 02H 1146
Function 03H 1146
Function 04H 1146
Function 05H 1146
Function 0CH 1147
Function 0BH 1147
Function 0AH 1147
Function 09H 1147
Function 08H 1147
Function 0DH 1148
Function 10H 1148
Function 11H 1148
Function 14H 1148
Function 15H 1148
Function 16H 1148
Function 17H 1149
INT14H 1149
Function 00H 1149
Function 03H 1150
Function 02H 1150
Function 01H 1150
INT15H 1151
Function 00H 1151
Function 01H 1151
Function 02H 1151
Function 03H 1151
INT16H 1152
Function 00H 1152
Function 01H 1152
Function 02H 1152
INT18H 1153
INT1AH 1153
INT19H 1153
Function 01H 1153
Function 02H 1153
Function 00H 1153
INT17H 1153
Function 00H 1154
Function 01H 1154
Function 02H 1154
Function 03H 1154
Function 04H 1154
Function 05H 1155
Function 06H 1155
Function 07H 1155