[an error occurred while processing this directive]
Software  >  OpenVMS Systems > Documentation > 82final > hanzi > vmshanzi_user_htm

HP OpenVMS Systems Documentation

Content starts here

 

 

 

 

OpenVMS/Hanzi
�û��ֲ�

 

BA322-90016

 

2005 �� 5 ��

 

���û��ֲ����� OpenVMS/Hanzi �����Ļ���������Լ����

 

 

 

�޶�/����:

���û��ֲ�ȡ�� OpenVMS/Hanzi V1.5 AXP �� OpenVMS/Hanzi �û��ֲᡣ

�����汾:

OpenVMS/Hanzi I64 Version 8.2

OpenVMS/Hanzi Alpha Version 7.3-2

 

 

 

 

Hewlett-Packard Company

Palo Alto, California

 

© Copyright 2005 Hewlett-Packard Development Company, L.P.

���ܼ���������������� HP �������Ч����֤������ӵ�С�ʹ�û��Ʊ����������ݹ�Ӧ�̵ı�׼��ҵ����֤�Ĺ涨����������Ӧ���� FAR 12.211 �� 12.212���йء���ҵ�������������������������ĵ����롰��ҵ���\�����ݡ�����Ĺ涨��

���ĵ��е���Ϣ���и��ģ�ˡ������֪ͨ���� HP ��Ʒ�������ṩ����ʾ�Ե����������г��������ڴ� HP ��Ʒ�������ר�õ�����������е��κ����ݾ������ɶ���ĵ�����HP �Ա����еļ�����༭�����Լ�ȱ©�����κ����Ρ�

Intel �� Itanium �� Intel Corporation �����ӹ�˾���������������һ�������̱��ע���̱ꡣ

Printed in Singapore��

 

���� viii

�� 1 �� ���

�� 2 �� DEC �����ַ���

2.1 ���� 2-1

2.2 DEC ������ 2-2

2.2.1 ����ṹ 2-3

2.2.2 ������� 2-4

�� 3 �� �����ַ��ն��������֧��

3.1 �༭�����ַ� 3-1

3.2 ��У�鹦�� 3-1

3.3 �û������ַ�֧�� 3-2

3.3.1 Ӳ��Ҫ�� 3-2

3.3.2 LAT/Master 3-2

3.3.3 ֧�� ODL ����Ҫ��ϵͳ���� 3-3

3.3.4 ÿһ�豸���� 3-3

3.3.4.1 �ն˷������˿����� 3-4

3.3.4.2 �� HANZIGEN �����ն˶˿� 3-5

3.3.4.3 ���� VT382 �ն� 3-5

3.3.4.4 ���ô�ӡ�� 3-5

3.3.5 ����װ������� 3-6

�� 4 �� DCL ����͹��ó���

4.1 ����׼�� 4-1

4.1.1 ���ú����ն� 4-1

4.1.2 ���ú��ִ�ӡ�� 4-1

4.2 DCL ���� 4-1

4.2.1 ��������еı�Ԫ 4-1

4.2.2 SHOW ��ʹ�ú��� 4-2

4.2.3 APPEND��BACKUP��CONVERT��COPY��CREATE ��TYPE ��
ʹ�ú��� 4-2

4.2.4 ASSIGN��DEASSIGN �� DEFINE ��ʹ�ú��� 4-2

4.2.5 DIRECTORY ��ʹ�ú��� 4-3

4.2.6 MESSAGE ��ʹ�ú��� 4-3

4.2.7 OpenVMS HELP ��ʹ�ú��� 4-3

4.2.8 READ �� WRITE ��ʹ�ú��� 4-3

4.2.9 REPLY ��ʹ�ú��� 4-4

4.2.10 SET ��ʹ�ú��� 4-4

4.2.11 SEARCH ��ʹ�ú��� 4-4

4.2.12 ���ַ��� 4-5

4.2.13 ��������еı�� 4-5

4.3 ͨ�� PostScript ��ӡ��ϵͳ 4-5

�� 5 �� HANZIGEN ����

5.1 ���� 5-1

5.2 �������� 5-1

5.3 �����Ҫ 5-1

5.3.1 SET ���� 5-1

5.3.1.1 �����ʽ 5-2

5.3.1.2 SET �������� 5-3

5.3.2 SHOW ���� 5-4

5.3.2.1 �����ʽ 5-4

5.4 �������� 5-5

5.5 ��Խһ�м������� 5-6

5.6 ע����֧�� 5-6

�� 6 �� �ַ��������� (CMGR) ���ó���

6.1 ���� 6-1

6.2 CMGR ��һ������ 6-1

6.3 ʹ�� CMGR 6-1

�� 7 �� SORT �� MERGE ����

7.1 ���� 7-1

7.2 ������������ 7-1

7.3 �����ʽ 7-2

7.3.1 /KEY �޶��� 7-2

7.3.2 /SPECIFICATION �޶��� 7-3

7.4 SORT ���� 7-3

7.5 MERGE ���� 7-5

7.6 /SPECIFICATION ���� 7-5

7.7 �ɵ���SORT �� MERGE ���г����еĺ���֧�� 7-6

�� 8 �� HMAIL ����

8.1 ���� 8-1

8.2 ��ʼ HMAIL �Ի��� 8-1

8.3 HMAIL ���� 8-1

8.3.1 ���ָ����� 8-1

8.3.2 ���������� 8-2

8.3.3 ��������� 8-2

8.3.4 �����ַ���ƥ�� 8-2

8.3.5 �����������е��ļ�������ʾ 8-3

8.3.6 ���� HTPU ��ΪĬ�ϱ༭���� 8-6

8.4 �����Ҫ 8-6

�� 9 �� HTPU �� HEVE ����

9.1 ���� 9-1

9.2 ʹ�� HTPU �� HEVE 9-1

9.3 HTPU ���� 9-3

9.4 HEVE ���� 9-3

�� 10 �� HDUMP ����

�� 11 �� �������ں�ʱ��֧��

11.1 ���� 11-1

11.2 ����׼�� 11-1

11.3 Ԥ���庺�������ʽ 11-1

11.4 Ԥ���庺�����Ա� 11-2

11.5 ѡ������ʱ�人�������ʽ 11-3

11.6 �û����庺�������ʽ 11-3

11.7 ѡ������ʱ�人�������ʽ 11-4

11.8 ���� 11-4

11.8.1 HMAIL 11-4

11.8.2 DIR ���� 11-5

11.8.3 RTL ����/ʱ��������г��� 11-6

�� 12 �� ����������

12.1 �û��������� 12-1

12.1.1 �ַ���Ԫ�û����� 12-1

12.1.2 DECwindows Motif �û����� 12-2

12.2 ���������� 12-2

12.2.1 EXAMINE ���� 12-2

12.2.2 DEPOSIT ���� 12-2

��¼ B �������ֵı������

B.1 HSYSHR B-1

B.1.1 ʹ�ÿɵ��� HSYSHR ���г�������� B-1

B.2 HSMGSHR B-7

B.3 SORT �� MERGE �ɵ������г��� B-7

B.3.1 ״̬�� B-9

B.3.2 �ɵ������г���Ľӿ� B-9

B.3.3 ʹ�ÿɵ��� SORT �� MERGE ���г�������� B-10

B.3.3.1 ʹ��ƴ���������е��� SORT ���г���ij��� B-10

B.3.3.2 ʹ�ö����������е��� SORT ���г���ij��� B-11

B.3.3.3 ���� MERGE �����ij��� B-13

B.4 �ɵ��� HTPU ���г��� B-15

B.4.1 HTPU �ɵ������г��� B-16

B.4.2 �������� B-17

 

ͼ

2-1 DEC �����ַ��� 2-1

2-2 �����ַ���˫�ֽڱ�ʾ�� 2-3

2-3 ������� 2-4

2-4 DEC GB-2312 �����ַ��� 2-5

2-5 ���� GB �ַ��� 2-5

 

 

��

2-1 DEC GB-2312 �ַ��� 2-2

2-2 ���� GB �ַ��� 2-2

5-1 /SYSTEM �� /PERMANENT �޶��ʵ����Ƹ�Ҫ 5-4

9-1 HEVE Ԥ����༭�����书�� 9-2

11-1 Ԥ����������ڸ�ʽ 11-2

11-2 Ԥ�������ʱ���ʽ 11-2

11-3 �������Ա� 11-3

 

 

 

����

����

���û��ֲ�Ķ���Ϊ���� OpenVMS/Hanzi ϵͳ���û���

�ֲ�ṹ

���ֲ���� 11 �¼� 2 ����¼��

  • �� 1 �½��ܱ�������
  • �� 2 ���������������õ� DEC �����ַ�����
  • 3, 4, 6, 7, 8, 9 �� 10 ���ṩ����ʹ������dz����ʹ�ñ�����,���±����ڶ������������һ˵������ DCL ������ó���
  • �� 5 ���ص����� HANZIGEN ���ó���
  • �� 11 ���ṩ�йع������ں�ʱ��ĺ���֧���û����ϡ�
  • �� 12 ���ṩ�йص��������ó���ĺ���֧���û����ϡ�

�ֲ������ 2 ����¼����ʹ�������о�����û�����̽�֡�

  • ��¼ A �г� 7������,��������ڱ��������ʹ�ú����ַ���
  • ��¼ B�����йر�ϵͳ�Ϻ��ִ�������ʱ��������,������HSYSHR��HSMGSHR��HTPU��SORT �� MERGE,ͬʱ��Ҳ�г���SORT �� MERGE �Ŀɵ��ó���,�Լ��������� ��

����

���ֲ�ʹ�����³���:

OpenVMS, VMS

���� OpenVMS �� VMS ��ָ OpenVMS ����ϵͳ��

OpenVMS/Hanzi

���� OpenVMS/Hanzi ��ָ���� OpenVMS Alpha �ͺ��� OpenVMS I64 ����ϵͳ�������л����񹲺͹���

OpenVMS/Hanzi I64

���� OpenVMS/Hanzi I64 ��ָ���� OpenVMS I64 ����ϵͳ�������л����񹲺͹���

OpenVMS/Hanzi Alpha

���� OpenVMS/Hanzi Alpha ��ָ���� OpenVMS Alpha ����ϵͳ�������л����񹲺͹���

Hanzi

���粻ͬ�ĵط���ʹ���Ų�ͬ�ĺ����ַ���: �л����񹲺͹����¼���ʹ�ü��庺��, ��ۼ�̨��ʹ�÷��庺��, �ձ�ʹ�� Kanji, ��������ʹ�� Hanja��Ϊ����⸴�ӵ�������������, ���ֲ������ "Hanzi"һ����˵����ָ�ļ��庺�������л����񹲺͹����ұ�׼��Ϣ�����ú��ֱ����ַ������� (GB2312-80)������ļ��庺�֡�

<RETURN>

�س���

�����ӻ��ʽ��, ������������, �����û������ÿһ�е�ĩβ������һ�������Ļس����û��������䡣

������

��������,���������ж����Է��ű�ʾ, �� <PF2> ��CTRL/Z �ȡ�

<CTRL>

CTRL/x ��ʾ�û������ڰ�ס���Ϊ<CTRL> ����ͬʱ����һ����������,CTRL/C��CTRL/Y ��CTRL/O��

.

.

.

����ʡ�Ժű�ʾ��չʾϵͳ��Ӧ��ijһ����ʱҪ�Ի��߲�չʾ�û�������������ݡ�

...

����ʡ�Ժű�ʾ�����븽�Ӳ�����ֵ�����ϡ�

( )

�ڸ�ʽ������, ���ѡ������ѡ��, ����뽫�����ڸ�ʽ�����С�

[ ]

�ڸ�ʽ������, �������������ŵ���Ŀ���ɴ���ѡ���κ�һ����������ѡ��(Ȼ��,�ڸ�ֵ�����Ӵ�˵�����﷨��,���Ų�����ѡ�ġ�

{ }

�ڸ�ʽ����ʱ, ��������ס�����ѡ����; ���������ѡ����ѡ��һ�

�����

  • OpenVMS ���׼�
  • ���ַ��������� (CMGR) �û��ֲᡷ
  • ��HEVE �û��ֲᡷ
  • ��HTPU �� HEVE �û� �ο��ֲᡷ
  • ��OpenVMS/Hanzi RTL Chinese Processing (HSY$) Manual��
  • ��OpenVMS/Hanzi RTL Chinese Screen Management (SMG$) Manual��

 

 

 

�� 1 ��

���

OpenVMS/Hanzi �����е� OpenVMS �������������Ӻ����ַ���������������,�û����ڸ��� OpenVMS/Hanzi �����´��� ASCII �� DEC �����롣

OpenVMS/Hanzi ֧����˫�ֽڰ���λ��ʽ��ʾ����������,�����л����񹲺͹����ұ�׼��Ϣ�����ú��ֱ����ַ�������(GB-2312-80)���й� DEC �����ַ���������,����ı��ֲ�� 2 �¡�

�� OpenVMS/Hanzi ��, �󲿷ֵ� OpenVMS DCL���֧�ֺ����ַ����й���Щ�������ϸ����,����ĵ� 3, 4, 6, 7, 8, 9��10��11 �� 12 �¡��û�Ҳ���ڶ��ֱ������д�ɵij���ʹ�ú��֡���¼ A ���ж����������򹩲ο���

OpenVMS/Hanzi �ṩ�������ܹ����������ַ��Ĺ��ó���, ����:

  • �ַ��������� (CMGR),���������������û�����ĺ����ַ���

HANZIGEN ���ó�������ò���ʾ�����ն����͡���Ҳ���ṩ���ƣ����û�Ϊ���ó���ѡ�����ԡ�

  • HDUMP���ó������ʮ���ơ�ʮ�����ƻ�˽��Ƹ�ʽ, �Լ� ASCII �ַ��ͺ���ת������ʾ�ļ������̾���Ŵ��������ݡ�
  • HMAIL �Ǻ����ʵݹ��ó���,��֧�ֺ����ļ���������������
  • SORT �� MERGE �Ǻ�������ͺϲ����ó���,�����Ѻ����ַ��� �û������ַ��Բ�ͬ��������������ͺϲ���
  • HTPU �Ǻ����ַ����ı��������ó���HEVE���ִ���������ͼ���Ĺ��ó���

 

 

 

�� 2 ��

DEC �����ַ���

�������� DEC �����ַ����Ľṹ��

2.1 ����

DEC �����ַ����ǰ������ֺͷǺ����ַ��Ļ����ַ���, �� GB-2312-801 ���ݡ�

DEC �����ַ�����Ϊ������ -- DEC GB-2312�ַ��������� GB �ַ���, ���� 7,445 ���ַ��� 8,836���ַ�λ��

���� GB �ַ�����һ����������, �� 8,836 ���ַ�λ���û������Լ�������,���Ժ������ַ���֮�á�

ͼ 2-1 չʾ DEC �����ַ����Ľṹ��

ͼ2-1 DEC �����ַ���

 

 

�� 2-1 �� 2-2 �г� DEC �����ַ����ڸ�����Ķ��塣

��2-1 DEC GB-2312 �ַ���

����

����

GB-2312

�˴����ַ�λ�ǰ��� GB-2312-80 ��׼���õض����,�û����ܱ任��

DEC �����ַ�λ

�˴����ַ�λר�� DEC ʹ�ö�������

 

��2-2 ���� GB �ַ���

����

����

�û�����

�û����ڴ˴����ַ�λ���� CMGR ���ó������Լ����ַ���

�û�����

(����)

�û����ڴ˴����ַ�λ���� CMGR �Լ� /RESERVED �޶��ʶ����Լ����ַ���

 

ע��

������ GB �ַ����ж�����ַ��ɰ���װ�뺺�ִ�ӡ����

2.2 DEC ������

DEC ��������˫�ֽڱ�ʾһ��ͼ���ַ���Ϊ���������һ��� ASCII ��, һ���ַ��ĵ�һ�ֽڵ������Чλ��������Ϊ 1,���ڶ��ֽڵ������Чλ������� 1 (���ַ����� DEC GB-2312 �ַ������� 0�����ַ��������� GB �ַ�������

ͼ 2-2 չʾһ�������� DEC GB-2312 �ַ��������� GB �ַ����еı�ʾ������

 

 

ͼ2-2 �����ַ���˫�ֽڱ�ʾ��

 

2.2.1 ����ṹ

DEC ��������� GB-2312-80 ��׼��DEC GB-2312 �ַ��������� GB �ַ����Ĵ����������Ϊ 94 ����(��), ����� 1 �� 94��ÿ�����ַ�Ϊ 94 ��λ,���Ҳ�� 1 �� 94��

DEC ������ĵ�һ�ֽھ������������,���ڶ��ֽ�����������λ�š�����,�ڶ��ֽڵ������Чλ�������������� DEC GB-2312�ַ����������� GB �ַ�����

������������˵���� DEC GB-2312 �ַ��������� GB �ַ�����һ�������ַ���˫�ֽں��������λ�ŵ��໥��ϵ��ͨ��,���ż�λ����ʮ���Ƶ�,��˫�ֽں���������ʮ�����Ʊ�ʾ��

����:

1.�� DEC GB-2312 �ַ�����,

���� (ʮ����) = ��һ�ֽ� (ʮ������) - A0 (ʮ������) ��

λ�� (ʮ����) = �ڶ��ֽ� (ʮ������) - A0 (ʮ������)

����, �� 16 = B0 �� A0 ��

01 = A1 �� A0

���� 16��λ�� 1 �͵��� DEC ������ B0A1��

 

2.������ GB �ַ�����,

���� (ʮ����) = ��һ�ֽ� (ʮ������) �� A0 (ʮ������) ��

λ�� (ʮ����) = �ڶ��ֽ� (ʮ������) �� 20 (ʮ������)

����, �� 16 = B0 �� A0 ��

01 = 21 �� 20

���� 16��λ�� 1 �͵��� DEC ������ B021��

2.2.2 �������

ͼ 2-3 չʾ˫�ֽ���ռ�Ļ��ּ� DEC �����ַ�����λ�á�

ͼ2-3 �������

 

 

ע��

б������Ϊ ASCII ������ķֲ�λ�á�DEC ������δ������б������,Ŀ����ʹ DEC �������� ASCII��������ݡ�

 

 

ͼ2-4 DEC GB-2312 �����ַ���

 

 

ͼ2-5 ���� GB �ַ���

 

 

ͼ 2-4 ��ͼ 2-5 չʾ DEC GB-2312 �ַ��������� GB�ַ�����ν�һ������Ϊ����

 

�� 3 ��

�����ַ��ն��������֧��

OpenVMS/Hanzi ֧�����к����ַ����ն�������������:

  • ���ֺ�Ӣ���ַ��������ʱ�ɽ��б༭
  • ���к��ֺ�Ӣ���ַ�����У��
  • ��ʾ�û������ַ�

3.1 �༭�����ַ�

OpenVMS/Hanzi ��֧�������� OpenVMS ֧�ֵ��б༭����,�������ƶ���ɾ�������롢�ؼ��Լ����ƻء��й�������֧������,����� OpenVMS ���ס�

�ն���Ļ����ʾ�ĺ����ַ�ռ�ݵ�λ�ö���һ�С����, OpenVMS/Hanzi �ṩ���ֲ���̬���б༭:

  1. ASCII �ַ�̬

�ڴ�̬��,�ں����ն���ɾ����һ��ɾ��һ�С�����ƶ���һ���ƹ�һ�С�

����� OpenVMS �ṩ��Ψһ�༭̬��

  1. �����ַ�̬

�ڴ�̬��,ɾ����һ��ɾ��һ���ַ�������ƶ���һ���ƹ�һ�������ַ�����ɾ���ּ� (CTRL/J) ��ɾ��һ��Ӣ���ֻ�һ�������ַ���

���������û����ȫ�����������ַ�̫���޷���ʾ(����, ��ĩβֻ��һ����ʾ��Ԫ ����,����������һ�������ַ�)���������ĺ��ֻᱻ�ݴ�����Ϊ��һ�ζ���Ҫ����������롣

HANZIGEN ���ó��������������ֱ༭̬֮�����ת�����й�ת��̬������, ����ĵ� 5 �¡�HANZIGEN ���ó��򡷡�

3.2 ��У�鹦��

�����Ը���Ӧ�ó���ָ���Ĺ���У���������ݡ�

Ӧ�ó����ָ��һ���ñ�Ƿֳ�һ�����ϵ��������������ֶΡ���� DEC GB-2312 �ַ����еĺ����ַ����ڱ�Ƕ���Ľ��� (Ҳ����˵, ������ֳ������� ���벻ͬ������),���ͱ���Ϊ��Ч�ַ���

�����Կ��� HANZIGEN �ضϡ�����Ӧ�ó���һ�ζ�һ���ֽ�����ʱ,

��Ҳ���Զ��ضϡ�

3.3 �û������ַ�֧��

OpenVMS/Hanzi ��Ϊ�û��ṩ CMGR ���ó��� (����ĵ� 6 �¡��ַ��������� (CMGR) ���ó���)�����û������ַ� (UDC)����Щ�ַ��������������� OpenVMS/Hanzi ֧�ֵĺ��ֱ�׼�����ַ���

Ϊ��Ҫ���ն˻��ӡ������ʾ��Щ�ַ�, OpenVMS/Hanzi֧�������ն���������İ���װ�� (ODL) Э�顣֧�� ODL Э����ն˺ʹ�ӡ�����Զ�ж�� UDC ������������ʾ UDC��

3.3.1 Ӳ��Ҫ��

ODL ��Ӳ��Ҫ������:

  1. ֧�� ODL Э��ĺ����ն˻��ִ�ӡ������:
  2. �ն�:

VT382-C

  • ��ӡ��:

LA88-C

LA380-C

  1. ��֧�� ODL Э��� LAT �������ն˷�������

3.3.2 LAT/Master

LAT/Master ���� LAT ������֧�� ODL ����Ҫ������,������ OpenVMS/Hanzi �����е��������ն˷����������е�������

Ϊ��ʹ ODL �� LAT �����ϲ���, ��������°汾��DECserver ��������װ���Ӧ�ķ�������Ԫ:

  • DECserver 200 ���� 3.0 �汾 (�����)
  • DECserver 300 ���� 1.0 �汾 (�����)
  • DECserver 500 ���� 2.1 �汾 (�����)
  • DECserver 700 ���� 1.0 �汾 (�����)
  • DECserver 90L ���� 1.0 �汾 (�����)
  • DECserver 90TL ���� 1.0 �汾 (�����)

Ҫ���� LAT ����, ��ȷ������װ��������װ����ȷ��DECserver �����汾�Լ���ϵͳ���� OpenVMS��

Ҫ�˽������װ�������ϰ�װ DECserver �����Ͱѷ�����ӳ������װ�������, ������� DECserver �ṩ���й����ס�

3.3.3 ֧�� ODL ����Ҫ��ϵͳ����

ODL ����Ҫ��ϵͳ����α�豸 FHA0: �� FONT_HANDLER��

ϵͳ������������������:

$ RUN SYS$SYSTEM:SYSGEN

SYSGEN> CONNECT FHA0: /NOADAPTER /MAXUNIT=1

SYSGEN> EXIT

$ RUN /DETACH -

/AST_LIMIT=100 -

/PRIORITY=8 -

/PRIVILEGES=(CMKRNL,PHY_IO) -

/PROCESS_NAME="FONT_HANDLER" -

/RESOURCE_WAIT -

/NOSWAPPING -

/UIC=[1,20] -

HSY$SYSTEM:FONTHANDL.EXE

OpenVMS/Hanzi �ϵ� SYSGEN ����Ϊ������������װ���װ��һ��α�豸������������һ��α�豸 FHA0:��RUN �����һ��ϵͳ���� FONT_HANDLER Ϊ�ն˼���ӡ���İ���װ���������

ע��, ��Щ�����ѱ༭�� OpenVMS/Hanzi ϵͳ��������� SYS$STARTUP:HSY$STARTUP.COM ��, ������������, OpenVMS/Hanzi ϵͳ�� ODL ��������ȷ�ġ�

 

3.3.4 ÿһ�豸����

����豸���ն˷�����������,�����ǡ���������ն˷������˿ڡ�

����ֱ�����ӻ���һ���ն˷����������ӵ��豸,ϵͳ�е�ÿ���ն˶˿ڱ���� ODL���и������á�ͨ��,�ն˶˿ڶ� ODL ��Ĭ��ֵΪ���� ODL��HANZIGEN ���ó��������Ը����ն� (������ HANZIGEN �����ն˶˿�һ��) ���� ODL���ն˻��ӡ��ҲҪ�����ã��Ա������ն˻��ӡ���� ODL ������

3.3.4.1 �ն˷������˿�����

DECserver ������, Ϊ ODL ֧�������¶˿����� ON-DEMAND [LOADING]�����ʹ���û�����ÿ���뺺���ն˻��ִ�ӡ�������ӵķ��������������� ODL ������Ҫ��һ������˿��������� ODL, ���� Local ̬������������:

Local> {SET|DEFINE} PORT [n] ON-DEMAND [LOADING]

{ENABLED|DISABLED}

����, Ҫ�Զ˿� 3 ���õ����� ODL ����(������Щ���ô洢���������ݿ���), �򷢳�:

Local> DEFINE PORT 3 ON-DEMAND LOADING ENABLED

ע��

Ҫ�� DECserver 500���������õ�����,����Ҫ��װ��������ִ���ն˷��������ó��� (TSC)��

ҪУ���Ƿ������� ON-DEMAND [LOADING] ����, ���� Local ̬���� LIST PORT CHARACTERISTICS ����:

Local> LIST PORT CHARACTERISTICS

Port 3: Server: HGD111

Character Size: 8 Input Speed: 9600

Flow Control: XON Output Speed: 9600

Parity: None Modem Control: Disabled

Access: Local Local Switch: None

Backwards Switch: None Name:

Break: Local Session Limit: 4

Forwards Switch: None Type: Soft

Preferred Service: None

Authorized Groups: 0

Enabled Characteristics:

Autobaud, Autoprompt, Broadcast, Input Flow

Control, Loss Notification,Massage Codes, Output

Flow Control, On-Demand Loading, Verification

Local>

3.3.4.2 �� HANZIGEN �����ն˶˿�

�� OpenVMS/Hanzi ��, ʹ�� HANZIGEN ���ն˶˿������� ODL���й�ʹ�� HANZIGEN �����������ͳ��� ODL ������, ����ĵ� 5 �¡�HANZIGEN ���ó���һ�¡��޶��� "/FONT" �� "/NOFONT" �� HANZIGEN ������������������װ�롣����Ĭ���dz�������װ�롣��������Ե�ǰ�ն�

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN> SET /FONT

Ҫ���õ����� ODL (������һ��ϵͳ������ǰһֱ��Ч), ʹ����������:

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN> SET /FONT /PERMANENT

3.3.4.3 ���� VT382 �ն�

�ں����ն������� ODL, ��Ҫ�������в���:

  • �� ODL �����豸��

�� <F3> ���Խ��� "����Ŀ¼",Ȼ��ѡ�� "�ն�" ���ò����� "�ն�����" ��Ŀ�������� ODL��

  • ����ն���һ���������˿�����, ���� "Local>"��ʾ��������ǰ�˿��ϵ� ON-DEMAND [LOADING]���ԡ��й�����, ������ն˷������˿�����һ�ڡ�

Local> SET PORT ON-DEMAND LOADING ENABLED

  • ע����� OpenVMS/Hanzi, ʹ�� HANZIGEN ���������ն˶˿��ϵ� ODL���й�����, ������� HANZIGEN �����ն˶˿�һ�ڡ�

Ŀǰ, ֻ�� VT382 �����ն˾��д�������װ���������

3.3.4.4 ���ô�ӡ��

����һ���Ի������г��ĺ��ִ�ӡ�������� ODL, ��Ҫ�������в���:

  • ����Ӧ�Ĵ�ӡ���ֲ�����, ����װ�����ô�ӡ����
  • �����ӡ����һ���������˿�������, ���� "Local>" ��ʾ�������ö˿��ϵ� ON-DEMAND [LOADING] �������й�����,������ն˷������˿�����һ�ڡ�
  • ע����� OpenVMS/Hanzi, ʹ�� HANZIGEN �������ն˶˿��ϵ� ODL���й�����, ������� HANZIGEN �����ն˶˿�һ�ڡ�

HANZIGEN> SET/DEVICE_TYPE=LA380/FONT/PERMANENT LTA100:

  • �糣���ô�ӡ���˿ںͶ��С������ӡ����һ���ն˷������˿�����,���ڳ�ʼ����ӡ����ǰӦ����Զ�̴�ӡ���еij�ʱֵ (LAT$SYMTIMEOUT �߼���)���û�Ӧ�� SYS$MANAGER:LAT$SYSTARTUP.COM �ж���� LAT$SYMTIMEOUT �߼����� LAT$SYMTIMEOUT ��Ĭ��ֵ�� 10 ���ӡ������ʱ�ַ�����춴�ӡ��, ������һ���� ��� LAT$SYMTIMEOUT ֵ���ⳬʱ����������� LAT$SYMTIMEOUT ����Ϊ 15 ���ӡ�

$ DEFINE/SYSTEM/EXECUTIVE LAT$SYMTIMEOUT "00:15:00"

3.3.5 ����װ�������

Ӧ��ע��, ODL ֻ���ն˴��� NODMA �� NOPASTHRU ̬ʱ�������á��û��������������������ն��Ƿ�����Ҫ���̬:

$ SHOW TERMINAL

����ն˲��Ǵ�����Ҫ���̬,���ʹ����������������:

  • �ѵ�ǰ�ն�����Ϊ NODMA ̬

$ SET TERMINAL/NODMA

  • �ѵ�ǰ�ն�����Ϊ NOPASTHRU ̬

$ SET TERMINAL/NOPASTHRU

 

 

 

�� 4 ��

DCL ����͹��ó���

�����г������ն˼����ִ�ӡ��������豸����,�������� DCL ������ó��������Ӧ�ú����ַ���

4.1 ����׼��

4.1.1 ���ú����ն�

�� OpenVMS/Hanzi �Ĵ󲿷ֹ��ó�����, ������ HANZIGEN ���ó���Ѻ����ն˳�ʼ����ǡ������������:

HANZIGEN> SET /DEVICE_TYPE=VT382

4.1.2 ���ú��ִ�ӡ��

�û�Ӧʹ�� HANZIGEN ���ó�������ʼ�����ִ�ӡ��,�Ա�������������:

HANZIGEN> SET/DEVICE_TYPE=LA380/FONT/PERMANENT LAT100:

4.2 DCL ����

����˵���� DCL ���������ʹ�ú����ַ���

4.2.1 ��������еı�Ԫ

�����ڱ�Ԫ��ʹ���к����ַ����ַ���������:

$ TYPE SAMPLE.COM

$ SHOW SYMBOL P1

$ SHOW SYMBOL P2

$ SHOW SYMBOL P3

$ EXIT

$

$ @SAMPLE ����1 ����2 ����3

P1="����1"

P2="����2"

P3="����3"

$

4.2.2 SHOW ��ʹ�ú���

������ʹ������ SHOW ����, �Ժ�����ʾϵͳ����:

  • $ SHOW USER
  • $ SHOW QUEUE
  • $ SHOW SYSTEM
  • $ SHOW MEMORY
  • $ SHOW DEVICE
  • $ SHOW PROCESS
  • $ SHOW LOGICAL
  • $ SHOW TRANSLATION

�� OpenVMS ������Ϣ����, �û�����Ӧ�� HANZIGEN ���ó�����ѡ��Ӣ�Ļ�����Ϣ, Ψ SHOW LOGICAL �� SHOW TRANSLATION ���⡣

4.2.3 APPEND��BACKUP��CONVERT��COPY��CREATE ��TYPE ��ʹ�ú���

�û������ļ���ʹ�ú�������, ������APPEND��BACKUP��CONVERT��COPY��CREATE �� TYPE�����а������֡�����:

$ CREATE HANZI.DAT

����÷��ɨ��ѩ

$

$ TYPE HANZI.DAT

����÷��ɨ��ѩ

$

4.2.4 ASSIGN��DEASSIGN �� DEFINE ��ʹ�ú���

�������߼��������Ч�ַ�����ʹ�ú���, Ҳ���� ASSIGN��DEASSIGN��DEFINE ������ʹ�ú��֡�

������ SHOW LOGICAL �� SHOW TRANSLATION ������ʾ�� ASSIGN �� DEFINE �Ժ����ַ�������߼���, ���ʷ����� F$LOGICAL ���ת�����֡�����:

$ DEFINE �߼��� ��Ч��

$ SHOW LOGICAL �߼���

�߼���="��Ч��" (PROCESS)

$ _����=F$LOGICAL("�߼���")

$ SHOW SYMBOL _����

_���� = "����"

$

4.2.5 DIRECTORY ��ʹ�ú���

�� DIRECTORY ������֧���������Ե�ϵͳ��Ϣ������ HANZIGEN ���ó���ѡ��Ӣ�Ļ�����Ϣ��

4.2.6 MESSAGE ��ʹ�ú���

��������Ϣ�ļ��е���ʩ�ֶμ��ı���ʹ�ú���,�����ֲ������� ident �ֶΡ�

4.2.7 OpenVMS HELP ��ʹ�ú���

����ʹ�� HELP ����� HANZIGEN ���ó��������� OpenVMS HELP ��ʩ, �Ժ��ֻ�Ӣ����ʾ�й� OpenVMS �������Ŀ�����ϡ�

ע��, ����ʹ����������ֱ����ʾӢ������ (��ʹ��������豸���ó� HANZI_MSG):

$ HELP @HELPLIB

����, ʹ�������������ʾ OpenVMS/Hanzi �ض�������Ŀ:

$ HELP @HSYHLP

4.2.8 READ �� WRITE ��ʹ�ú���

���������ַ������ݿ��Թ������������ı���һ���֡�����:

$ TYPE HANZI.DAT

��������� 1

$ OPEN/READ INPUT HANZI.DAT

$ OPEN/WRITE OUTPUT HANZI1.DAT

$ READ INPUT REC

$ WRITE OUTPUT REC

$ WRITE OUTPUT "��������� 2"

$ CLOSE INPUT

$ CLOSE OUTPUT

$ TYPE HANZI1.DAT

��������� 1

��������� 2

$

4.2.9 REPLY ��ʹ�ú���

��������Ϣ�ı���ʹ�ú��֡�����:

$ REPLY/TERMINAL=TT "REPLY �л�Ϻ���ʹ��"

Reply received from user SYSTEM at _RTA3:12:34:56.78

REPLY �л�Ϻ���ʹ��

$

4.2.10 SET ��ʹ�ú���

����ʹ�ú���ָ����ʾ���������������ļ��Ķ�����ʹ�ú���,�����ֲ��������޶��ʻ��š�

4.2.11 SEARCH ��ʹ�ú���

�����ڱ��������ַ�����ʹ�ú��֡�����:

$ TYPE HANZI.DAT

ɽ����С

��������

$

$ SEARCH/HIGHLIGHT=UNDERLINE HANZI.DAT С

ɽ����С

$

4.2.12 ���ַ���

������Ӧ��һ��Ӣ����ĸ (���� _ �� $) ��ʼ���ڶ����Լ����ŵ��ַ����ú��֡�Ҫ��ֵ���ַ��������ʹ�ú��֡�����

$ _����="��������"

$ SHOW SYMBOL _����

_����="��������"

4.2.13 ��������еı��

����������������ú�����Ϊ�����, ������ GOTO ����ת�Ƶ�һ�����ֱ�š�

4.3 ͨ�� PostScript ��ӡ��ϵͳ

ͨ�� PostScript ��ӡ��ϵͳ (WWPPS) �ṩ�� Alpha �� I64 ƽ̨�ϴ��ı��ļ��ĸ�������ӡ�����ܹ�ͬʱ��ӡ�������ֽںͶ��ֽ������ַ��Ĵ��ı��ļ���

Ҫ����������ó����������� DCL ��ʾ��ʹ���������

$ RUN SYS$SYSTEM:WWPPS

������ó�����ӦΪ������ʾ��

$ WWPPS>

���⣬������ͨ�����������ⲿ�����������ã�

$ WWPPS := = $SYS$SYSTEM:WWPPS

������һ����ӡ���ı��ļ������ӣ�

$ RUN SYS$SYSTEM:WWPPS

WWPPS>PRINT/QUEUE=hp$printer/LOCALE=zh_cn_dechanzi hanzi-text_file.txt

���߼�Ϊ��

$ WWPPS PRINT/QUEUE=hp$printer/LOCALE=zh_cn_dechanzi hanzi-text_file.txt

���� WWPPS ���Ե���ϸ����������ġ�OpenVMS �û��ֲᡷ��

 

 

 

�� 5 ��

HANZIGEN ����

�������� HANZIGEN ���ó���Ĺ��ܡ�

5.1 ����

HANZIGEN ���ó������ü�չʾ�����ն����͡����������������ն˼���ӡ���İ���װ�롣

HANZIGEN �� SET �� SHOW ������ DCL ������, �� HANZIGEN ��SET �� SHOW ��������뺺���ն��йص����ԡ�

5.2 ��������

������������������ HANZIGEN:

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN>

5.3 �����Ҫ

 

SET

���ú����ն�����,���������������ն˼���ӡ���İ���װ�롣

SHOW

չʾ�����ն����ԡ�

HELP

�г� HANZIGEN ���

EXIT

��ֹ HANZIGEN ������ DCL �����

 

5.3.1 SET ����

SET �������ú����ն����ͼ���������װ�롣�����ն����Ϳ�����VT82��VT382��LA84�� LA86��LA88��LA280 �� LA380��Ҫ���ú����ն�Ϊ ASCII ����, ����ָ�� VT100 �� VT300_seriesΪ�豸���͡������ṩӢ�ĺͺ�������/������Ϣ�Ĺ��ó���,����ʹ�� SET ����ͨ�� /OUTPUT��ѡ��ѡ��������ԡ�

5.3.1.1 �����ʽ

SET �������ʽΪ:

SET [�豸��[ : ]] [/DEVICE_TYPE= �豸����]

[/INPUT= ��������

[/OUTPUT= ������� ]

[/[NO]FONT]

[/PERMANENT]

[/SYSTEM]

����

�豸��

ָ�����Ӻ����ն˵��豸�������豸����

/DEVICE_TYPE= �豸����

ָ�� HANZIGEN ֧�ֵ���Ч�豸����:

VT82 ��ʶΪ VT82�����ն��豸��

VT100 ��ʶΪ VT100�ն��豸�����޶�

�ʿ������� VT100 �ն���������

VT82��

VT382 ��ʶΪ VT382-CB�����ն��豸��

VT300_series ��ʶΪVT300 ϵ���ն��豸��

���޶��ʿ������� VT300 ϵ���ն�

�������� VT382��

LA84 ��ʶΪ LA84-C���ִ�ӡ�豸��

LA86 ��ʶΪ LA86-C���ִ�ӡ�豸��

LA88 ��ʶΪ LA88-C���ִ�ӡ�豸��

LA280 ��ʶΪ LA280-CB���ִ�ӡ�豸��

LA380 ��ʶΪ LA380-CB���ִ�ӡ�豸��

/INPUT=��������

�����ն�Ϊ���ֻ� ASCII�նˡ� �������͵���ЧֵΪ:

HANZI �ն������뺺��,���к����ն˵�

�������ԡ�

ASCII �ն�Ϊ��׼�� ASCII �նˡ�

VT82��VT382��LA84��LA86��LA88��LA280�� LA380 ��Ĭ����������Ϊ HANZI��

/OUTPUT=�������

�����ն�����ʾ���ֻ� ASCII ��Ϣ��������͵���Ч����ֵΪ:

HANZI_MSG ��ʾ������Ϣ��

ASCII_MSG ��ʾ ASCII ��Ϣ��

LA84��LA86��LA88��LA280��LA380��VT82 ��VT382 ��Ĭ���������Ϊ HANZI_MSG��

/[NO]FONT

��������װ�롣����װ���ϵͳ�������ݿ�����û���������, ������Щ���δ��͵� LA84-C��LA86-C��LA88-C��LA280-CB �� LA380-CB ���ִ�ӡ���� VT382 �����նˡ�/[NO]FONT �޶���ֻ�� LA84��LA86��LA88��LA280��LA380 �� VT382 �豸����һͬʹ�á�Ĭ���� /NOFONT��

/PERMANENT

ָ����������Ϊ�����ԡ������Ҫ�����������豸�����Լ����豸, ����Ҫʹ������޶��ʡ�/PERMANENT ������ /OUTPUT һ��ʹ�á�����޶���Ҫ���û��� PHY_IO �� LOG_IO ��Ȩ��

/SYSTEM

ָ����������ΪϵͳĬ�ϡ�/SYSTEM ֻ������ /DEVICE_TYPE �� /OUTPUT һ��ʹ�á�����޶���Ҫ���û��� PHY_IO ��Ȩ��

5.3.1.2 SET ��������

�±�����һϵ�ж� /PERMANENT �� /SYSTEM �޶��������Ƶ������޶��ʡ�

 

��5-1 /SYSTEM �� /PERMANENT �޶��ʵ����Ƹ�Ҫ

 

/SYSTEM

/PERMANENT

/DEVICE_TYPE

���ɲ���

�ɲ���

/INPUT

�ɲ���

�ɲ���

/OUTPUT

���ɲ���

���ɲ���

/[NO]FONT

�ɲ���

�ɲ���

 

5.3.2 SHOW ����

SHOW ����չʾ�����ն˼���ӡ������,��ʾ��ʽ��ÿ���豸ռһ�У����Ҿ������ֶ�:

  • ��ǰ SYS$INPUT �豸������
  • �豸����
  • ��������������װ��
  • �������� (HANZI �� ASCII)
  • ������� (HANZI_MSG �� ASCII_MSG)

�� HANZIGEN �����, VT82 �� VT382

���豸���ͽ�չʾΪ HANZI_VDU, �� LA84-C��LA86-C��LA88-C��LA280-CB �� LA380-CB���豸������Ϊ HANZI_PRT��

����, �� DCL SHOW ������, ���� HANZIGEN ����ΪVT82 ��VT382 �ն˵��豸���� VT80 �� VT300, ���� HANZIGEN ����Ϊ LA84��LA86��LA88��LA280 �� LA380 �ն˵��豸������ LA84��

5.3.2.1 �����ʽ

SHOW �������ʽΪ:

SHOW [�豸��[:]][/ALL][/PERMANENT][/SYSTEM]

����

 

 

 

 

�豸��

ָ�� HANZIGEN ����ʾ�������豸����

/ALL

��ʾ�����ն��豸������������޶���Ҫ���û��� PHY_IO �� SHARE ��Ȩ�����ڷǵ�ǰ�豸����Щ�豸, ���������ʾ���� "Unknown" (�����������)��

/PERMANENT

��ʾ�ն˵���������������޶���Ҫ���û��� PHY_IO �� LOG_IO ��Ȩ��

/SYSTEM

��ʾϵͳĬ�ϵ�����������޶���Ҫ���û��� PHY_IO��Ȩ��

ע��, �� DCL SHOW ������, �� HANZIGEN ����Ϊ�����ն˵��ն��豸��Ϊ VT80��

5.4 ��������

  1. չʾ����Ϊ�����ն˵������ն��豸��������

HANZIGEN>SHOW

Device Name Type On Demand Input Output

_RTA2: HANZI_VDU DISABLE ASCII HANZI_MSG

HANZIGEN>SHOW/ALL

Device Name Type On Demand Input Output

_OPA0: LA36 DISABLE ASCII Unknown

_RTA1: VT300_Series DISABLE HANZI Unknown

_RTA2: HANZI_VDU DISABLE ASCII HANZI_MSG

_LTA5006: VT200_Series DISABLE HANZI Unknown

_LTA5007: HANZI_VDU DISABLE ASCII Unknown

_LTA5008: HANZI_VDU DISABLE ASCII Unknown

 

Total : 6 Terminals

 

  1. ������ʾ������Ϣ�� VT382 �նˡ�

$ RUN HSY$SYSTEM:HANZIGEN

HANZIGEN> SHOW

Device name Type On Demand Input Output

_TTA0: VT200_series DISABLE ASCII ASCII_MSG

HANZIGEN> SET /DEVICE_TYPE=VT382

HANZIGEN> SHOW

Device name Type On Demand Input Output

_TTA0: HANZI_VDU DISABLE HANZI HANZI_MSG

 

  1. ���ò�չʾ����������װ��� LA380-C ���ִ�ӡ����

HANZIGEN> SET TXA1: /DEVICE_TYPE=LA380 /PERMANENT /FONT

HANZIGEN> SHOW TXA1:

Device name Type On Demand Input Output

_TXA1: HANZI_PTR ENABLE HANZI Unknown

 

  1. �����ն�Ϊ ASCII ������չʾ֮��

HANZIGEN> SHOW TXA2:

Device name Type On Demand Input Output

_TAX2: HANZI_VDU DISABLE HANZI Unknown

HANZIGEN> SET TXA2: /DEVICE_TYPE=VT100 /PERMANENT

HANZIGEN> SHOW TXA2:

Device name Type On Demand Input Output

_TXA2: VT100 DISABLE ASCII Unknown

5.5 ��Խһ�м�������

�� DCL ����һ��,���ɰ�һ������ּ������롣�������� HANZIGEN ��������ַ� "-" ����һ��֮β������:

HANZIGEN> SET TTA0: /DEVICE_TYPE=VT382 -

_HANZIGEN> /PERMANENT

5.6 ע����֧��

�� DCL ����һ��, ������ HANZIGEN �������ע����, ��������ע��ǰ�����̾�� "!"������:

HANZIGEN> ! set tta0 as VT382 as Hanzi terminal

HANZIGEN> SET TTA0:/DEVICE_TYPE=VT382 /PERMANENT

 

 

 

�� 6 ��

�ַ��������� (CMGR) ���ó���

���������ַ��������� (CMGR) ���ó�������ԡ�

6.1 ����

�ַ��������� (CMGR) ��һ�����ó���,�������������������������ַ�, �ر����û������ַ� (UDC)��

�й����ʹ�� CMGR ���������,����ġ��ַ��������� (CMGR) �û��ֲᡷ��

6.2 CMGR ��һ������

CMGR �ṩ��������:

  • �������޸����ֲ�ͬ���δ�С�� UDC �ֿ�ģʽ,���������δ�С��24x24��32x32 �� 40x40 ���ء�һ������(ͼ��Ԫ) ����Ļ����С�Ŀ���ʾ��Ԫ��
  • ���� UDC ����������, �Ӷ��� OpenVMS/Hanzi �� SORT/MERGE ���ó������ṩ UDC֧�֡����������ֵ�洢�����������ļ����������ݿ��С�
  • ��ʾλӳ���ʽ�е��ֿ�ģʽ��
  • ��ʾ��ϵͳ���ݿ��еǼǵĻ�������û������ļ��е��ַ��������
  • ��ȡָ���ַ�����Ŀ�װ�����к�/����������,����ָ����Ԥװ���ļ������������ļ���
  • ��ȡָ���ı��ļ����ҵ��� UDC ��װ������,������Щ�����������һ��Ԥװ���ļ��С�
  • ֧�ֶ����ݿ�ϵͳ,�Ӷ��û����Խ�����ʹ�ò�ͬ��������Ρ�
  • ���� SYSPRV ��Ȩ���û��ɹ���ϵͳ���ݿ⡣

6.3 ʹ�� CMGR

CMGR ���ó�����һ�� DCL �������:

$ CHARACTER_MANAGER

CMGR>

�������ʾ��, �û��������� CMGR ������ִ�в�ͬ���ܡ��û�Ҳ���Դ� DCL ���� "CHARACTER_MANAGER" DCL ���ͷ, ���� CMGR �������:

$ CHARACTER_MANAGER CMGR_command

������ɺ�, �����ͻ� DCL��

 

 

 

�� 7 ��

SORT �� MERGE ����

�������� OpenVMS/Hanzi SORT �� MERGE ���ó������ṩ�ĺ��ִ���������

7.1 ����

OpenVMS/Hanzi SORT �� MERGE ���ó���֧�ְ��������ַ����ļ����书������:

  • �ø��ֺ����������д��������ַ���
  • ֧���û������ַ� (UDC)��UDC ������ֵ���� CMGR ���ó�������塣�й� ��ζ��� UDC ������ֵ����, ����ġ��ַ���������(CMGR)�û��ֲᡷ��
  • SORT �� MERGE �ɵ������г������֧�ֺ����������е��ļ�����¼�ӿڡ�
  • �� OpenVMS SORT �� MERGE ���ó�����ȫ���� ��

7.2 ������������

OpenVMS/Hanzi �� SORT �� MERGE���ó�������û���ָ���Ĺؼ��������������ļ���¼,Ȼ�����һ�������������ļ���SORT �� MERGE�ɰ��������������������к������ݼ�¼:

RADICAL

��ָ���ĺ����ֶ��Բ�����������ͺϲ��������ַ����� GB-2312-80 ��׼�IJ����������������

STROKE

��ָ���ĺ����ֶ��Աʻ�����������ͺϲ���

PINYIN

��ָ���ĺ����ֶ���ƴ����������ͺϲ��������ַ����� GB-2312-80 ��׼��ƴ���������༰����

QUWEI

��ָ���ĺ����ֶ�����λ����������ͺϲ���(�����ʹ������ͬ��)

ע��: �����������������ݼȲ�����Ч�� DEC �����ַ�, �ֲ��� UDC,��ϵͳ��������ݷ���һ��Ϊ�������ֵ��

7.3 �����ʽ

SORT �������ʽ��:

$ SORT[qualifiers]

input-file-specification[qualifiers] -

_$ output-file-specification[qualifiers]

MERGE �������ʽ��:

$ MERGE[qualifiers]

input-file-specifications[qualifiers] -

_$ output-file-specification[qualifiers]

�ںϲ�ǰ, MERGE������������ļ���������ͬһ���������м�ͬһ�ִ���(�������) Ԥ������MERGE������ָ������������������б����������ļ�����ͬ��

7.3.1 /KEY �޶���

/KEY �޶��ʶ��� SORT �Ĺؼ���,��һ�����������ɳ��� 255 �Ρ���Բ���Ű� /KEY ���޶�����������

������ OpenVMS SORT �� MERGE ���ṩ��֮��, OpenVMS/Hanzi �� SORT �� MERGE ��֧���������޶��ʡ�

CSIZE:n

SORT �� MERGE �� CSIZE���޶���ֻ�����ں����������С�n �� SORT �� MERGE �ؼ��ֵ��ַ������ȡ�ע��, ������һ���ؼ���˵����ͬʱָ�� CSIZE �� SIZE��

RADICAL

RADICAL���޶���ָ���ò��������������Ѽ�¼�����ϲ���

STROKE

STROKE���޶���ָ���ñʻ������������Ѽ�¼�����ϲ���

PINYIN

PINYIN���޶���ָ����ƴ�������������Ѽ�¼�����ϲ���

QUWEI

QUWEI���޶���ָ������λ�������������Ѽ�¼�����ϲ���

/KEY �޶��ʵ���������:

/KEY=(POSITION:1, CSIZE:5, RADICAL, STROKE)

������, RADICAL ������������; STROKE�Ǵ��������С� ע��, ͬʱ��ָ�����غ����������С�

7.3.2 /SPECIFICATION �޶���

OpenVMS/Hanzi �� SORT �� MERGE�ṩһ�������޶���,ͨ�����޶��ʴ���һ�������ļ�˵����˵���ļ���Ĭ���ļ�������.SRT��ָ�����ļ��������ʽ����:

$ SORT/SPECIFICATION=input-specification-file ...

�ڡ�OpenVMS User's Manual����,˵���ļ��ĸ�ʽ�͹�����������

˵���ļ��е� /FIELD �޶����������� SORT �� MERGE �ؼ����ֶΣ��� /KEY �����޶��ʺ����ơ�����OpenVMS SORT �� MERGE ���ó����� /FIELD�޶��ʵ�������Ч�����޶�����, OpenVMS/Hanzi SORT �� MERGE �������е�����Ч���޶���:

  • RADICAL
  • STROKE
  • PINYIN
  • QUWEI

��Щ��ʾ����Ӧ�������е����޶��ʵ��� /KEY�����޶�������ͬ���޶��ʡ�������˵���ļ��� /FIELD�޶��ʵ�һ������:

/FIELD=(NAME:Hanzi-field, POSITION:1, SIZE:4, PINYIN)

ע��, ��һ�� /FIELD �޶����ڲ���ָ������������С����Ҫ��һ���ؼ���ָ��������������,����˵���ļ��ж�ͬһ�ؼ���ָ����ͬ�������еĶ�� /FIELD �޶��ʡ�

7.4 SORT ����

  1. �Բ���������������

$ TYPE POET.DAT

������ !"��"��֮������ 72 ,�ʻ� 07 ,ƴ�� LI , ��λ 3278

�׾��� !"��"��֮������ 119,�ʻ� 05 ,ƴ�� BAI , ��λ1655

��ά !"��"��֮������ 70 ,�ʻ� 04 ,ƴ�� WANG, ��λ 4585

��� !"��"��֮������ 72 ,�ʻ� 07 ,ƴ�� LI , ��λ 3278

�Ϻ�Ȼ !"��"��֮������ 65 ,�ʻ� 08 ,ƴ�� MENG, ��λ 3547

$

$ SORT/KEY=(POSITION:1,CSIZE:1,RADICAL)POET.DAT RADICAL.DAT

$ TYPE RADICAL.DAT

�Ϻ�Ȼ !"��"��֮������ 65 ,�ʻ� 08 ,ƴ��MENG, ��λ3547

��ά !"��"��֮������ 70 ,�ʻ� 04 ,ƴ��WANG, ��λ 4585

��� !"��"��֮������ 72 ,�ʻ� 07 ,ƴ��LI , ��λ 3278

������ !"��"��֮������ 72 ,�ʻ� 07 ,ƴ��LI , ��λ 3278

�׾��� !"��"��֮������ 119,�ʻ� 05 ,ƴ��BAI , ��λ 1655

$

  1. �Աʻ���������������, ���ֹؼ��ֵij���Ϊ 2��

$ SORT/KEY=(POSITION:1,CSIZE:2,STROKE)POET.DAT STROKE.DAT

$ TYPE STROKE.DAT

��ά !"��"��֮������ 70 , �ʻ� 04 ,ƴ�� WANG,��λ 4585

�׾��� !"��"��֮������ 119, �ʻ� 05 ,ƴ�� BAI ,��λ 1655

��� !"��"��֮������ 72 , �ʻ� 07 ,ƴ�� LI ,��λ 3278

������ !"��"��֮������ 72 , �ʻ� 07 ,ƴ�� LI ,��λ 3278

�Ϻ�Ȼ !"��"��֮������ 65 , �ʻ� 08 ,ƴ�� MENG,��λ 3547

$

  1. �Զ�����������������һ�����������,��ͬһ���ؼ���, �û���ָ�������������С�

$ TYPE POET1.DAT

������ !"��"��֮������ 72 ,�ʻ� 07 ,ƴ�� LI , ��λ 3278

�׾��� !"��"��֮������ 119,�ʻ� 05 ,ƴ�� BAI , ��λ 1655

��ά !"��"��֮������ 70 ,�ʻ� 04 ,ƴ�� WANG, ��λ 4585

��� !"��"��֮������ 72 ,�ʻ� 07 ,ƴ�� LI , ��λ 3278

�Ϻ�Ȼ !"��"��֮������ 65 ,�ʻ� 08 ,ƴ�� MENG, ��λ 3547

�Ÿ� !"��"��֮������ 72 ,�ʻ� 07 ,ƴ�� DU , ��λ 2237

$

$ SORT/KEY=(POSITION:1,CSIZE:2,STROKE,QUWEI) -_$ POET1.DAT STRQUWEI.DAT

$ TYPE STRQUWEI.DAT

��ά !"��"��֮������70 ,�ʻ� 04 ,ƴ��WANG, ��λ 4585

�׾��� !"��"��֮������119,�ʻ� 05 ,ƴ��BAI , ��λ 1655

�Ÿ� !"��"��֮������72 ,�ʻ� 07 ,ƴ��DU , ��λ 2237

��� !"��"��֮������72 ,�ʻ� 07 ,ƴ��LI , ��λ 3278

������ !"��"��֮������72 ,�ʻ� 07 ,ƴ��LI , ��λ 3278

�Ϻ�Ȼ !"��"��֮������65 ,�ʻ� 08 ,ƴ��MENG, ��λ 3547

$

7.5 MERGE ����

����������ʾ�����ļ��Խ���ϲ�������

 

7.6 /SPECIFICATION ����

����������ʾ /SPECIFICATION �޶��ʵ��÷�:

 

 

7.7 �ɵ���SORT �� MERGE ���г����еĺ���֧��

��ʹ�ÿɵ��� SORT �� MERGE���г���������ϲ���������Ӧ�ó�����ȥ�����������ݼ�¼����Щ���г���OpenVMS ���̵��ú�����������׼�ı�����Ե��á�

�йؿɵ��� SORT �� MERGE ���г��������,�Լ���Щ���г�����ε��ú���������, ����ĸ�¼ B , �� SORT �� MERGE �ɵ������г����еĺ���֧�֡�

 

 

�� 8 ��

HMAIL ����

�������� HMAIL ���ó�������ԡ�

8.1 ����

HMAIL �� MAIL ��������������������:

  • ֧�ֺ��ָ�����
  • ֧�ֺ���������
  • ֧�ֺ����ļ�����
  • ֧�ֺ����ַ�������
  • ���ݺ�������������ʾ�ļ�����
  • HMAIL �е��ı��༭����

8.2 ��ʼ HMAIL �Ի���

HMAIL ���� DCL �������:

 

$ HMAIL

HMAIL>

8.3 HMAIL ����

HMAIL �� OpenVMS MAIL ���ó��������ӵ�����,���������µĸ�������һ�������й� OpenVMS MAIL ���ó��������, ����ġ�OpenVMS User's Manual����

8.3.1 ���ָ�����

HMAIL ���û������ڸ������а��������ַ�������,�û� TENG Ҫ�Ժ��ָ����������ļ� FILE.TXT ���û� HANZI::LEE, ����������������:

 

HMAIL> send/personal_name="������, ��������̲�" file.txt

����: hanzi::lee

����: ��������

 

�ڽڵ� HANZI �ϵ��û� LEE ���յ�������Ϣ:

 

���ʼ����� HANZI �ڵ����� TENG "������,��������̲�" (15:51:02)

8.3.2 ����������

HMAIL ���û��������������а������֡���������˵����ν��С�

 

HMAIL> send file.txt

����: hanzi::lee

����: ��������

8.3.3 ���������

�ļ��������԰������֡���������˵����β���һ���������Ƶ��ļ��С�

 

HMAIL> select mail

%MAIL-I-SELECTED, ѡ�� 5 ����Ϣ

 

HMAIL> move/all ���鱨��

�ļ��� ���鱨�� ������

���뽨���� (Y/N, Ĭ���� N)? y

%MAIL-I-NEWFOLDER, �ļ��� ���鱨�� �ѽ���

8.3.4 �����ַ���ƥ��

�� HMAIL ��, SEARCH ����ļ����ַ����� SELECT��SET FOLDER��DIRECTORY �Լ� READ ����� /SUBJECT_SUBSTRING �޶��ʾ���ʹ�ú��֡�����:

 

 

8.3.5 �����������е��ļ�������ʾ

�� OpenVMS MAIL ��, �ļ�����ֻ���԰� ASCII ����������ʾ���� HMAIL ��, �û�����ָ�����ݺ�������������ʾ�ļ�������DIRECTORY/FOLDER ����������һ���µ��޶���
/COLLATING_SEQUENCE, �﷨����:

���¹��������� /COLLATING_SEQUENCE ����µ��޶���:

  • ���޶���Ҫ�� DIRECTORY/FOLDER ������ָ������Ч��
  • �ؼ��� ASCII ֻ�ɵ���ָ��,�����������ؼ��ֻ�ϡ�
  • �� ASCII ��������ؼ���, ����ָ����ؼ���;�ṩ�ĵ�һ���ؼ���������������,�ڶ����Ǵ���������, �������ơ�
  • �ظ��Ĺؼ��ֲ������ᡣ
  • ָ��һ�����ϵĹؼ���ʱ����Ҫ���š�
  • �粻ָ�����޶���, �ļ������ͻᰴ ASCII ������ʾ��

��������˵��������޶��ʵ��÷�:

 

HMAIL> select ���鱨��

%MAIL-I-SELECTED, ѡ�� 5 ����Ϣ

HMAIL> directory/folder

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

CFMS CRDB

CVMS MAIL

���鱨�� �������

���ݿ����� ˽���ʼ�

ϵͳ���� �����ʼ�

 

HMAIL>directory/folder/collating=(stroke,radical)

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

CFMS CRDB

CVMS MAIL

�����ʼ� ���鱨��

������� ˽���ʼ�

ϵͳ���� ���ݿ�����

 

HMAIL> directory/folder/collating=radical

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

CFMS CRDB

CVMS MAIL

�����ʼ� ϵͳ����

���鱨�� �������

���ݿ����� ˽���ʼ�

 

HMAIL> directory/folder/collating=ascii

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

CFMS CRDB

CVMS MAIL

���鱨�� �������

���ݿ����� ˽���ʼ�

ϵͳ���� �����ʼ�

 

�����ļ�������ʾ��������, �� /START �޶������ṩ��ֵ���ᰴѡ�����ʾ�����������ļ������Ƚϡ����, �����ָ��
/COLLATING=STROKE, �ļ������ıʻ�����ֵ�ͻ���бȽ�,�Ծ�����Щ�ļ�����Ҫ��ʾ��������������˵����ν��С�

 

HMAIL> directory/folder/collating=stroke/start=��

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

���鱨�� �������

ϵͳ���� ˽���ʼ�

���ݿ�����

 

HMAIL>directory/folder/collating=radical/start=��

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

���ݿ����� ˽���ʼ�

 

HMAIL> directory/folder/collating=ascii/start=��

�� DISK$USER:[USER]MAIL.MAI;1 �е��ļ����б�

Ҫȡ���б�, �ɰ� CTRL/C

���ݿ����� ˽���ʼ�

ϵͳ���� �����ʼ�

8.3.6 ���� HTPU ��ΪĬ�ϱ༭����

�� HMAIL ��, ����� HTPU ��ΪĬ�ϱ༭����������ʹ�� SET EDITOR ��������ѡ��ı༭������ȡ����Ĭ�ϡ�����,�����������������Ĭ�ϱ༭�������ó������ı༭����:

HMAIL> set editor [�����༭����]2

8.4 �����Ҫ

�±������뺺�ִ����йص� HMAIL ���

����/�޶���

����

SET PERSONAL_NAME,
/PERSONAL_NAME

�û���ʹ�ú��ָ������֡�

/SUBJECT

�û���ʹ�ú�����������

COPY, DIRECTORY, FILE, MOVE, READ, SELECT, SET/SHOW FOLDER, SET WASTEBASKET

��ָ�������ļ�������

SEARCH,
/SUBJECT_SUBSTRING

�����ַ����пɰ�������,���ҳ��� ���ַ�����

DIRECTORY/FOLDER
/COLLATING_SEQUENCE

ָ���ļ��������������������� QUWEI, RADICAL, STROKE ��PINYIN ��ʾ��

DIRECTORY/FOLDER/START

ָ�����ݵ�ǰѡ�����������Ҫ��ʾ�ĵ�һ���ļ�������

HELP

��� HANZIGEN ���ն���������� HANZI_MSG, ����ʾ���������ı���

 

 

 

�� 9 ��

HTPU �� HEVE ����

�������� HTPU �� HEVE ���ó�������ԡ�

9.1 ����

HTPU �� HEVE ��ǿ DECTPU �� EVE �Ĺ��ܣ���֧�ֺ����ı��༭�� HEDT ���ܡ����ֹ��ó����֧���ַ���Ԫ�ն� (CCT) �û��ӿ�, Ҳ֧�� DECwindows Motif/Hanzi �û��ӿڡ�

HTPU/HEVE �� DECTPU/EVE Ϊ����, ��������ɣ��� HTPU (Hanzi Text Processing Utility) �� HEVE (Hanzi Extensible Versatile Editor)��HEVE ͨ�� HTPU ������̵��ú����ı������Ĺ��ܡ�

9.2 ʹ�� HTPU �� HEVE

Ҫʹ�� CCT �ӿڵ��� HTPU, ���� HEVE ��ΪĬ�ϱ༭����, ����ʹ�����µ�����:

$ EDIT/HTPU TEXT.TXT

��Ҳ�������¶���һ����������Ӷ����̵�������:

$ HEVE:== $EDIT/HTPU

Ҫʹ�� DECwindows Motif/Hanzi �ӿڵ��� HTPU, ���� HEVE ��ΪĬ�ϱ༭����, ����ʹ�����µ�����:

$ SET DISPLAY/CREATE/NODE=<���Ĺ���վ�Ľڵ���>

$ HEVE/DISPLAY=MOTIF TEXT.TXT

TEXT.TXT ��Ҫ�༭���ļ���

һ������ HEVE, ���ɰ����̼������ı�����Ҳ����ʹ�� HEVE �����Ԥ���幦�ܼ����ı����б༭�� �� 9-1 �г���ЩԤ���幦�ܼ���

 

 

 

 

��9-1 HEVE Ԥ����༭�����书��

��

����

��

����

CTRL/A

ת��̬
(����/��д)

<FIND>

Ѱ��ָ����

CTRL/B

�ٵ�����ǰ��һ�� HEVE ����

<INSERT_HERE>

��ѡ����Χ���ı����뵱ǰ���λ��

CTRL/E

�ѹ��������β

<REMOVE>

��ȥѡ����Χ

CTRL/H

�ѹ����������

<SELECT>

ѡ���ı���Χ

CTRL/J

������ǰ��

<PREV_SCREEN>

��һ����Ļ

CTRL/L

�����ҳ

<NEXT_SCREEN>

��һ����Ļ

CTRL/U

��������

<F10>

�˳� HEVE

CTRL/W

ˢ����Ļ

<F11>

����� (�������)

CTRL/Z

�˳� HEVE

<F12>

�����ƶ����

<DELETE>

ɾ��ǰһ���ַ�

<F13>

������ǰ��

�ϼ�ͷ

����

<F14>

ת��̬ (����/��д)

�¼�ͷ

����

 

 

�Ҽ�ͷ

����

 

 

���ͷ

����

 

 

�й� HEVE �������������, �ɲ��ġ�HEVE �û��ֲᡷ, ���� HEVE �� ���� <DO> ��, ���� HELP ���

9.3 HTPU ����

HTPU �ṩһ��������̼��ɵ��õĽӿڣ����û����ƺ��ֱ༭���������Է��� HTPU Ĭ�ϱ༭���� HEVE, ֻ���� HTPU ���Լ���������̱�д�༭����, ��͸���ɵ��ýӿ���Ӧ�ó����е��� HTPU��

��֮ DECTPU, HTPU ��ǿ�Ĺ��ܰ�����

  • �ṩ�ַ����๦�ܵ����������
  • ֧�ֺ����ַ������ľ��޸��������
  • �� DECwindows Motif/Hanzi ���ڻ�����ʹ�õĺ������뷨

�й�һ�����µĻ��޸ĵ�������̵����飬�ɲ��ġ�HTPU �� HEVE �û��ο��ֲᡷ���й� DECTPU ������̵����飬�ɲ��ġ�DEC Text Processing Utility Reference Manual������Guide to the DEC Text Processing Utility������ HTPU ���ԡ�

HTPU �ɵ��ýӿڵ����飬�ɲ��ı��ֲḽ¼ B.4���й� DECTPU �ɵ��ýӿڵ����飬����ġ�OpenVMS Utility Routines Manual���� 14 �¡�

9.4 HEVE ����

HEVE �� HTPU ���Լ��������Ϊ���������Ա༭�����ַ��� ASCII �ַ���HEVE ֧�� EVE �����й���3�������������书�ܣ�

  • �γɷ��ż����߻�����
  • ����/ȫ���ַ�����
  • ģ�� HEDT �Ĺ���
  • DECwindows Motif/Hanzi ���ڻ����ĺ���������������Ŀ��

�й� HEVE ר�е�����ɲ��ġ�HTPU �� HEVE �û��ο��ֲᡷ���й� EVE ������, �ɲ��ġ�Extensible Versatile Editor Reference Manual����

 

 

�� 10 ��

HDUMP ����

HDUMP �� DUMP �ĺ��ְ汾, ����������ʾ�ʹ�ӡ DEC �����ַ������ļ�����, ��ǿ�� DUMP ���ó���

HDUMP �� DUMP ����Ҫ�������� HDUMP ������ȷ��ʾ˫�ֽں����ַ�����һ����ֻʣ��һ���ֽڶ�����������һ��˫�� DUMP �㲻�ܽ�����ȷ����, DUMP ֻ��Ѹú��ֵĵ�һ�ֽڷ�����ĩ,�ѵڶ��ֽ�ж������һ����, ������ɴ�������Ȼ��,HDUMP �ɰѸú��ֵĵ�һ���ڶ��ֽ�һͬ�Ƶ���һж������,����ʾ�ֶε������ǰ��ʾ���ӡһ�� ASCII �ַ�λ��

�������Ͽɺ��ַ�Χ���˫�ֽڴ�����Ծ�� (.) ��ʾ���ӡ��

HDUMP �������ʽ��:

$ HDUMP ���

���е������޶��ʾ��� DUMP ����ͬ��

������ HDUMP ��һ�����ӡ�

 

$ TYPE HANZI.DAT

 

�����ģţü�������޹�˾�绰: 3-7315211

����DEC��������޹�˾�绰: 3-7315211

 

$ HDUMP/RECORD HANZI.DAT

 

Hdump of file WRKD$:[HANZI.SRC]HANZI.DAT;2 on 4-MAR-1991 15:16:48.94

File ID (3210,43,0) End of file block 1 / Allocated 3

Record number 1 (00000001), 39 (0027) bytes

ABBE3CB C6BCC3A3 C5A3C4A3 FAB9C0C3 �����ģţü���� 000000

2D33BAA3 B0BBE7B5 BECBABB9 DECFD0D3 ���޹�˾�绰:3- 000010

313132 35313337 7315211..........000020

Record number 2 (00000002), 36 (0024) bytes

CFD0D3FA BBE3CBC6 BC434544 FAB9C0C3 ����DEC�������000000

3133372D 33BAA3B0 BBE7B5BE CBABB9DE �޹�˾�绰:3-731 000010

31313255 5211..........000020

 

 

�� 11 ��

�������ں�ʱ��֧��

���������������ں�ʱ���֧�֡�

11.1 ����

���������ʽ�еĺ������ں�ʱ�����֧�֡������к������Ա���Ԥ�������ں�ʱ�������ʽ��ϵͳ���û���������Ӧ���躺�����ں�ʱ�������ʽ���� DCL ���� DIR �Լ� DCL ���ó��� MAIL �� HMAIL ��ʹ�á�����,�û��ڶ����Լ����û��������ں�ʱ�����뼰�����ʽʱ,����ʹ�ú������Ա�����Щ���ں�ʱ�����뼰�����ʽ������ OpenVMS RTL �����ں�ʱ��������г���ʹ�á��й����ں�ʱ��������г������÷�����������ġ�VMS RTL Library (LIB$) Manual����

11.2 ����׼��

�ú�������ʱ��ǰ, ϵͳ���� (���� CMEXEC��SYSNAM �� SYSPRV ��Ȩ���û�) ����ִ��������� SYS$MANAGER:LIB$DT_STARTUP.COM, �Ա�Ϊ����ʱ�䶨����������ʽ(����Ԥ���庺�������ʽ)������,Ҳ�ɶ��庺������ʱ�䵥Ԫ����������:

$ ! Choose Hanzi as language

$ DEFINE SYS$LANGUAGES HANZI

$ ! Define Hanzi output formats and date and time elements

$ @SYS$MANAGER:LIB$DT_STARTUP.COM

�������Ǵ� OpenVMS/Hanzi �� SYSTARTUP_VMS.COM ִ���������

11.3 Ԥ���庺�������ʽ

�±�չʾԤ���庺������ʱ�������ʽ���й�ʹ�õ������������������ġ�VMS RTL Library (LIB$) Manual����

 

 

��11-1 Ԥ����������ڸ�ʽ

���ڸ�ʽ�߼���

��ʽ

����

LIB$DATE_FORMAT_042

!Y4��!MNB��!DB��

!WAU

1991��11��12��(��)

LIB$DATE_FORMAT_043

!Y4��!MNB��!DB�� !WU

1991��11��12�����ڶ�

 

��11-2 Ԥ�������ʱ���ʽ

ʱ���ʽ�߼���

��ʽ

����

LIB$TIME_FORMAT_021

!MIU!HB2ʱ!MB��!SB��

����2ʱ16��26��

 

11.4 Ԥ���庺�����Ա�

�������Ա��ɶ������߼�������Щ�߼����ɰ� 11.6 �ڵ��������û����������ʽ��ʹ�á��±��г���Щ�߼��������ο�:

 

��11-3 �������Ա�

�߼���

��������

����

LIB$WEEKDAYS_
[U|L|C]

W[U|L|C]

"����һ", "���ڶ�","������","������", "������","������", "������"

LIB$WEEKDAY_
ABBREVIATIONS_
[U|L|C]

WA[U|L|C]

"(һ)", "(��)", "(��)","(��)","(��)", "(��)", "(��)"

LIB$MONTHS_
[U|L|C],
LIB$MONTHS_ ABBREVIATIONS_
[U|L|C]

MA[U|L|C],
MAA[U|L|C]

"һ��", "����","����", "����"," ����", "����", "����", "����", "����", "ʮ��","ʮһ��", "ʮ����"

LIB$MI_
[U|L|C]

MI[U|L|C]

"����", "����"

11.5 ѡ������ʱ�人�������ʽ

ҪΪ���ڻ�ʱ��,�����ں�ʱ������ѡ��һ���ض��ĺ��ָ�ʽ,�û�����ʹ�� 11.3 �ڶ�����߼��������� LIB$DT_FORMAT �߼���������:

 

$ DEFINE SYS$LANGUAGES HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_042,LIB$TIME_FORMAT_021

 

���������߼����Ĵ��������������Ĵ�����������ʹ������ָ���ĸ�ʽ������ں���һ���ո�, ֮������ָ����ʽ��ʾ��ʱ��,������ʾ:

1991��11��12�� (��) ���� 2ʱ16��26��

11.6 �û����庺�������ʽ

�û���ʹ���Լ���ִ��̬�߼����Ժ�������������˵������ʽ������:

 

$ DEFINE/EXEC/TABLE=LNM$DT_FORMAT_TABLELIB$DATE_FORMAT_601 -

_$ "ϵͳʱ��: !Y4��!MNB��!DB��"

$ DEFINE/EXEC/TABLE=LNM$DT_FORMAT_TABLE LIB$TIME_FORMAT_601 -

_$ "!MIU!HB2ʱ!MB��!SB�� !WU"

 

������Ҫ�ĸ�ʽ��,�û�����������������ʹ����Щ��ʽ:

 

$ DEFINE SYS$LANGUAGES HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_601,LIB$TIME_FORMAT_601

 

�����ĺ�������ʱ���������:

ϵͳʱ��: 1991��11��12�� ���� 2ʱ16��26�� ���ڶ�

11.7 ѡ������ʱ�人�������ʽ

ҪΪ����ʱ������ѡ��һ���ض��ĺ��ָ�ʽ�Թ�Ӧ��,�û����붨�� LIB$DT_INPUT_FORMAT �߼�����LIB$DT_INPUT_FORMAT �ĵ�Ч�����԰��� 11.4 ����������Ԥ���庺�����Ա��е��������

11.8 ����

11.8.1 HMAIL

$ DEFINE SYS$LANGUAGE HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_043,LIB$TIME_FORMAT_021

$ HMAIL

MAIL

# ���� ���� ����

1 NODEA:SYSTEM 1991��11��16�� ������ ������

 

HMAIL> 1

#1 1991��11��16�� ������ ����11ʱ20��53�� MAIL

����: NODEA::LEE "���̲�: �����"

����: CHAN

����:

����: ��������

 

��ҵ����:

 

�������ҵĹ�������:

 

:

:

HMAIL> exit

11.8.2 DIR ����

$ DEFINE SYS$LANGUAGE HANZI

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_043,LIB$TIME_FORMAT_021

$

$ DIR/FULL TEST.DAT

 

Ŀ¼ USER$:[LEE]

TEST.DAT;1 �ļ� ID:(2229,2,0)

��С: 1/3 ӵ����: [SYSTEM]

������: 1991��11��17�� ������ ���� 6��35��25��

�޶���: 1991��11��17�� ������ ���� 6��35��28�� (1)

����: <δָ��>

����: <û�б��ݱ���¼>

�ļ���֯: ˳���

�ļ����� : ����: 3, ��չ: 0,ȫ�ֻ������: 0, û�а汾����

��¼��ʽ: �ɱ䳤��, ��� 74 ���ֽ�

��¼����: Carriage return carriage control

RMS ����: ��

����־������: ��

�����: System:RWED, Owner:RWED,Group:RE, World:

��ȡ���Ʊ�: ��

 

�� 1 ���ļ�, 1/3 �顣

 

$ DIR/DATE TEST*.DAT

 

Ŀ¼ USER$:[LEE]

 

 

 

TEST.DAT;1 1991��11��17�� ������ ���� 6ʱ35��25��

TEST1.DAT;1 1991��11��17�� ������ ���� 6ʱ36��19��

TEST2.DAT;1 1991��11��17�� ������ ����6ʱ36��22��

TEST3.DAT;1 1991��11��17�� ������ ���� 6ʱ36��26��

TEST4.DAT;1 1991��11��17�� ������ ���� 6ʱ36��31��

 

�� 5 �����

 

11.8.3 RTL ����/ʱ��������г���

$ TYPE DATETIME.C

/* DECLARATIONS */

#inciude stdio.h

#include descrip.h

int lib$convert_date_string();

int lib$format_date_time();

int lib$get_input();

main()

{

unsigned int quadtime[2]; /*quadword to store time */

unsigned char instr[40]; /*input date time buffer */

unsigned char outstr[40]; /*output date time buffer*/

struct dsc$descriptor_s indate = /*input descriptor */

{ 40, DSC$K_DTYPE_T, DSC$K_CLASS_S, instr };

struct dsc$descriptor_s outdate = /*output descriptor */

{ 40, DSC$K_DTYPE_T, DSC$K_CLASS_S, outstr };

indate.dsc$a_pointer = instr;

outdate.dsc$a_pointer = outstr;

printf("Input date time:");

lib$get_input(&indate);

/* convert date time from input format to quadword storage*/

lib$convert_date_string(&indate,quadtime);

/* convert date time from quadword to output format */

lib$format_date_time(&outdate,quadtime);

printf("Output date time: %40.40s \n",outstr);

}

$ DEFINE LIB$DT_FORMAT LIB$DATE_FORMAT_043, LIB$TIME_FORMAT_021

$ DEFINE SYS$LANGUAGE HANZI

$

$ DEFINE LIB$DT_INPUT_FORMAT -

_$ "!Y4��!MNB��!DB�� !MIU!HB2ʱ!MB��!SB.!C2��"

$ RUN DATETIME

Input date time:1991��10��11�� ����2ʱ16��26.02��

Output date time:1991��10��11�� ������ ����2ʱ16��26��

$

$ DEFINE LIB$DT_INPUT_FORMAT "!Y4��!MAU��!DB�� !HB4ʱ!MB��!SB.!C2��"

$ RUN DATETIME

Input date time: 1991��ʮ��11�� 17ʱ12��22.02��

Output date time: 1991��10��11�� ������ ����5ʱ12��22��

$

 

 

 

�� 12 ��

����������

OpenVMS ��������һ�����ŵ����������ǵ����û�ģʽ�������ѡ����������֧���ַ���Ԫ�û������ͼ�� (DECwindows Motif) �û���������� OpenVMS ������Եķ��ŵ��ԡ��������û��������ڶ�֧�� DEC �����ַ������������ʾ���ڳ��������Դ����ע�ͻ� OpenVMS ������������Ϣ�еĺ����ַ����ܹ���ȷ��ʾ��

ע��

OpenVMS ������ʹ�� XPG4 ���ʻ�ģ��ʵ�ֶ� DEC �����ַ�����֧�֡���Ҫ��һ�� DEC �����ַ����� XPG4 �ֳ����ݿ⡣����������ͬ OpenVMS һ���е� OpenVMS 118n ���漯���ҵ�����ֳ����ݿ⡣

12.1 �û���������

��������������� OpenVMS ���������ַ���Ԫ�û������ DECwindows Motif �û�������ʹ�ú����ַ���

12.1.1 �ַ���Ԫ�û�����

OpenVMS ���������ַ���Ԫ�û�����һ��ʹ�ú��� SMG �� DEC C �� XPG4 ���ػ����ó�����֧�� DEC �����ַ�����Ҫ֧���������붨�������߼���:

  • DBG$SMGSHR

����߼������� OpenVMS ����������֧����Ļģʽ�� SMG ����ӳ������ơ�Ҫ����֧�� DEC �����ַ�������������߼�������:

$ DEFINE/JOB DBG$SMGSHR HSMGSHR

  • SMG$DEFAULT_CHARACTER_SET

����߼������庺�� SMG ֧�ֵ�Ĭ���ַ�����Ҫ����֧�� DEC �����ַ�������������߼�������:

$ DEFINE/JOB SMG$DEFAULT_CHARACTER_SET HANZI

  • LANG

����߼���Ϊ DEC C �� XPG4 ���ػ����ó��������ʱ��������ֳ�����Ĭ�ϵ��ֳ����á�Ҫ������ OpenVMS ��������֧�� DEC �����ַ�������������߼�������:

$ DEFINE/JOB LANG ZH_CN_DECHANZI

12.1.2 DECwindows Motif �û�����

OpenVMS �������� DECwindows Motif �û����������ʾ DEC �����ַ����е��ַ�����Ŀ¼ DECW$SYSTEM_DEFAULT ��DECW$USER_DEFAULTS �еĵ�������Դ�ļ� VMSDEBUG.DAT ����Ϊÿ��������������ȷָ�����塣

�� VMSDEBUG.DAT ��, DebugDefault.font ��ԴΪ���е���������ָ��һ��Ĭ�����塣ÿ������Ҳ����ʹ����Ĭ���ַ��IJ�ͬ���塣Ҫ֪���飬����� VMSDEBUG.DAT �ļ���

Ҫ������ OpenVMS ������������֧�� DEC �����ַ������ô��ڱ���ʹ�� DEC �����ַ������塣��ͨ�����·���֮һָ�������壺

  1. ͨ�����������ڵ���Դ��ȷָ����
  2. ��û�а�����������ȷָ������ʱ��ͨ����������Ĭ��������Դ�� DebugDefault.font ��ָ����
  3. ����û���õ�����Ĭ��������Դ��Ҳû���õ��������ڵ�������Դ��ָ������ʱ��ͨ��ϵͳĬ��������Դ��ָ����

12.2 ����������

���������ڵ�����������ʹ�ú����ַ���

12.2.1 EXAMINE ����

EXAMINE ����֧��һ�����޶��� /WCHAR_T:n����������ÿ�������ʵ����ͺ���ʾΪ n ������ (n ���ַ�) �Ķ��ֽ��ļ��������С�n ��Ĭ��ֵ�� 1��

��ת���������ַ���ʱ��OpenVMS ������ʹ�������н��̵��ֳ����ݿ⡣Ĭ���� C �ֳ���

12.2.2 DEPOSIT ����

DEPOSIT ����֧��һ�����޶��� /WCHAR_T:n���������ѱ�ת���Ķ��ֽ��ļ����������е� n �����ִ����ָ��λ�á�n ��Ĭ��ֵ�� 1��

��ת����� DEPOSIT ����ָ�����ַ���ʱ��OpenVMS ������ʹ�������н��̵��ֳ����ݿ⡣Ĭ���� C �ֳ���

 

 

��¼ A

�������

OpenVMS/Hanzi ���û���ע�͡��ַ����ַ���������ʹ�ú���,���ڱ���������ܴ����������ֵ����뼰������ݡ�

�����µ�����:

  • ʹ�� DEC GB2312 �ַ����������ַ�ʱ��һЩ���ơ�
  • �� COBOL Ϊ��,һ���ַ�������˵��������һ�������ַ��ĵڶ��ֽڰ��� ASCII �ַ� '"' (��ʮ�����Ƶ� 22), COBOL ��������Ѹ� ASCII �ַ���Ϊһ���ַ������Ŵ���, ����ַ���˵��������һ���������Ҫ����������,�����ڸú����ַ�������ڶ��� '"' �ַ�, ��� COBOL ������˵ʹ�� '"' ��Ϊ�ַ������š�
  • ����ע��,ֻ���ڿ���ע�Ͷ�������ص�ע�Ͷ�����а��������ַ�ʱ C��PASCAL �� PL/I ������ԲŻ�������⡣

�����г�һЩ�����һ����������ʹ�ú��ֵ�����������Щ��������Ҳ���� OpenVMS/Hanzi ϵͳ�� HSY$EXAMPLE Ŀ¼���档

A.1 �� MACRO-32 ��ʹ�ú��ֵ�����

$ TYPE SAMPLE MAR

VAX_MACRO = 1 ;If you want to compile this example

;with MACRO-32, then the VAX-MACRO symbol

;must be set to 0. Otherwise, you may

;encounter a problem during compilation.

.TITLE SAMPLE

.MACRO STRING STR

.ASCID /STR/

.ENDM STRING

.PSECT DATA

DATA1: .ASCID /VAX MACRO �뺺�ֹ���/

DATA2: STRING <VAX MACRO �� MACRO ʹ�ú���>

inp: string <��������:>

oup: .long b3-b1

.address b1

buff: .long b3-b2

.address b2

b1: .ascii /�������: /

b2: .blkb 40

b3:

 

.PSECT CODE

.IF DF VAX_MACRO

.ENTRY SAMPLE, ^m<> ; ��ע����ʹ�ú���.

.IFF

SAMPLE::

.CALL_ENTRY PRESERVE=<R2,R3,R4,R5,R6,R7,R8,R9,R10, -

R11,R12,R13,R14,R15>

;��ע����ʹ�ú��֡�

.ENDC

PUSHAQ DATA1

CALLS #1, G^LIB$PUT_OUTPUT

PUSHAQ DATA2

CALLS #1, G^LIB$PUT_OUTPUT

LOOP:

PUSHAQ INP

PUSHAQ BUFF

CALLS #2, G^LIB$GET_ INPUT

B1BC R0, EOF

pushaq oup

CALLS #1, G^LIB$GET_ ONPUT

BRB LOOP

EOF: $EXIT_S

.END SAMPLE

$

$ MACRO SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

VAX MACRO �뺺�ֹ���

VAX MACRO �� �ͣ��ãң� ʹ�ú���

��������: ��ľˮ����

�������: ��ľˮ����

��������: ^Z

$

A.2 �� DEC FORTRAN ��ʹ�ú��ֵ�����

$ TYPE SAMPLE.FOR

program sample

character*40 buff

! ��ע����ʹ�ú���

type *,'VAX FORTRAN �뺺�ֹ��� '

 

do while (.true.)

write (*,'(a)') '$��������: '

read (*,'(a)',end=100) buff

write (*,'(a)') '$�������: '//buff

end do

100 continue

end

$

$ FORTRAN SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

 

VAX FORTRAN �뺺�ֹ���

��������: ��ľˮ����

�������: ��ľˮ����

��������: ^Z

$

A.3 �� BASIC ��ʹ�ú��ֵ�����

$ TYPE SAMPLE.BAS

 

100 rem ����ע��

110 print "VAX BASIC �뺺�ֹ���"

120 on error go to 180

130 while 1

140 print "��������:";

150 input buff$

160 print "�������: ";buff$

170 next

180 resume 190

190 end

$

$ BASIC SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

 

VAX BASIC �뺺�ֹ���

��������:? ��ľˮ����

�������: ��ľˮ����

��������:? ^Z

$

A.4 �� PASCAL ��ʹ�ú��ֵ�����

$ TYPE SAMPLE.PAS

 

program sample(input,output);

var buff:packed array [1..40] of char;

begin (* ��ע����ʹ�ú��� *)

writeln ('VAX PASCAL �뺺�ֹ���');

write (' ��������:');

while not eof do begin

readln (buff);

writeln (' �������:',buff);

write (' ��������:')

end;

end.

 

$

$ PASCAL SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

 

VAX PASCAL �뺺�ֹ���

��������: ��ľˮ����

�������: ��ľˮ����

��������: ^Z

$

A.5 �� COBOL ��ʹ�ú��ֵ�����

$ TYPE SAMPLE.COB

 

* ��ע����ʹ�ú���

identification division.

program-id. sample.

author. ������.

environment division.

configuration section.

source-computer. vax.

object-computer. vax.

data division.

working-storage section.

77 buff pic x(40).

procedure division.

start-sample.

display "VAX COBOL �뺺�ֹ��� ".

loop.

display "��������:" with no advancing.

accept buff at end go to eof.

display "�������:",buff.

go to loop.

eof.

stop run.

$

$ COBOL SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

 

VAX COBOL �뺺�ֹ���

��������: ��ľˮ����

�������: ��ľˮ����

��������: ^Z

$

A.6 �� PL/I ��ʹ�ú��ֵ�����

$ TYPE SAMPLE.PLI

 

sample:proc options (main); /* ��ע����ʹ�ú���*/

dc1 buff char(40);

put list ('VAX PL/I �뺺�ֹ���');

on endfile (sysin) stop;

do while ('1'b);

put skip edit ('��������: ') (a);

get edit (buff) (a(40));

put edit ('�������: ',buff) (a,a);

end;

end;

$

$ PLI SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

 

VAX PL/I �뺺�ֹ���

��������: ��ľˮ����

�������: ��ľˮ����

��������: ^Z

$

A.7 �� DEC C ��ʹ�ú��ֵ�����

$ TYPE SAMPLE.C

 

#include <stdio.h>

main () /*��ע����ʹ�ú���*/

{

char buff[40];

printf("/nVAX C �뺺�ֹ���");

while (printf("/n��������:"), gets(buff)!=NULL)

printf("�������: %s",buff);

}

 

$

$ CC SAMPLE

$ LINK SAMPLE

$ RUN SAMPLE

 

VAX C �뺺�ֹ���

�������� : ��ľˮ����

������� : ��ľˮ����

�������� : ^Z

$

 

 

ע��

���ֲ����� #define �����ڶ�����,Ҳ���ܰ����ڱ�Ԫ�й����á�

 

 

 

��¼ B

�������ֵı������

B.1 HSYSHR

HSYSHR ������ OpenVMS/Hanzi ϵͳ�ĺ��ִ�������ʱ�����, ���Ǹ�ͨ������ʱ���, �����ṩ�������ִ������ܵ����г���

�ڴ�ϵͳ���й�������������������Ҫ֪����Щ���г���Ĺ��ܡ����ø�ʽ������:

$ HELP @HSYHLP HSYSHR

����ʱ�������ڿɹ���ӳ��� HSYIMGLIB.OLB ��,������ OpenVMS/Hanzi ��֧�ֵ��κ�һ�ֱ�����������ÿ�Ĺ��ܡ�Ҫ�ѳ���������ʱ�������,����:

$ LINK PROGRAM, SYS$LIBRARY:HSYIMGLIB/LIB

�й�����, ����ġ�OpenVMS/Hanzi RTL Chinese Processing (HSY$) Manual����

B.1.1 ʹ�ÿɵ��� HSYSHR ���г��������

$ TYPE HSY$EXAMPLE:SAMPLE_HSYSHR.C

/* SAMPLE_HSYSHR.C

---------------

This is a C language example to demostrate the

ability of the HSY$ facility of the OpenVMS

Run Time Library, HSYSHR. The program

accepts an input file from the command line and

formats the text within it in the following ways:

- Left margin = 0, Right margin = 40

- Convert all half form ASCII characters to their full

- forms.

- Remove leading and trailing blanks of each

- input line.

- Remove all embedded controls or space characters.

*/

#include <stdlib.h>

#include <stdio.h>

typedef unsigned char mstr; /*Local language string type */

typedef unsigned char *mstr_p;/* Pointer type to local */

/* language string */

typedef unsigned long mchar; /*Multi-byte character type*/

#define INPUT_STR_LEN 128 /* Max length of input line*/

#define OUTPUT_STR_LEN 128*2 /* Max length of output line */

#define MARGIN 40 /* Width of output text */

#define EMPTY 0 /* Zero */

#define SUCCESS 1 /* Successful call */

#define FAILURE 0 /* Unsuccessful call */

#define SPACE 0x00000020 /* Space character in

HSYSHR format */

extern HSY$IS_VALID(), /* External HSY$ routines to */

HSY$CH_RNEXT(),HSY$CH_WNEXT(),/* used */

HSY$CH_SIZE(), HSY$CH_NCHAR(), HSY$CH_NBYTE(),

HSY$CH_TRIM(), HSY$SKPC(), HSY$TRA_ROM_FULL();

FILE *fdin, /* Input file descriptor */

*fdout; /* Output file descriptor */

int line_length; /* Remaining number of bytes */

/* of the current output line*/

/* WRITE_TEXT

----------

This routine will accept an input buffer and its length

in number of characters, and write the string to the

output file at 40 bytes per line. A blank line is printed

if the input buffer is null.

*/

int write_text(buffer, buf_len)

mstr_p buffer; /* Output buffer */

int buf_len; /* Buffer length in number */

/* of characters */

{

int char_size, /* Character size in bytes */

offset, /* Offset of input buffer */

i, j; /* Loop index */

mchar curr_char; /* Current multi-byte char */

mstr_p buf_ptr; /* Pointer to buffer */

if (buffer == NULL){ /* Empty line, next paragraph*/

fprintf(fdout, "\n");

if (line_length != EMPTY) fprintf(fdout,"\n");

line_length = MARGIN;

return SUCCESS;

}

offset=EMPTY;buf_ptr=buffer;/*Initialize for the loop */

for (i= EMPTY; i < buf_len; i++) {

curr_char = HSY$CH_RNEXT(&buf_ptr);

/*Read next character and */

/* advance string pointer. */

char_size = HSY$CH_SIZE(curr_char);

/* Calculate the size of the */

if (line_length < char_size) {

/* character in bytes. */

line_length = MARGIN;

fprintf(fdout,"\n");

}

for (j=0; j < char_size; j++){

/* Put a multi-byte character*/

fputc(buffer[offset++], fdout);

/* to the output file */

}

line_length -= char_size;

}

return SUCCESS;

}

/* TEXT_FORMAT

-----------

This routine accepts an input string, removes its

railing and leading blanks, converts all half form ASCII

to their full forms and places the

converted string into a buffer which will be written to

the output file.

*/

int text_format(in_str)

mstr in_str[]; /* Zero terminated input */

/* string */

{

mstr buffer[OUTPUT_STR_LEN];/* Output buffer */

mstr_p str_ptr, /* Pointer to source string */

dst_ptr; /* Pointer to dest. string */

mchar curr_char; /* Current multi-byte char */

int status, /* Return status */

pos, /* Position of trimmed string*/

charsofar, /* Character processed so far*/

noofchar, /* No. of characters and */

noofbytes; /* bytes in a string. */

if (!(str_ptr = HSY$SKPC(SPACE, in_str, strlen(in_str)-1)))

return write_text(NULL,EMPTY);/* Skip leading blanks */

pos = HSY$TRIM(str_ptr, strlen(str_ptr)-1);

/* Trim trailing blanks */

if (!(HSY$TRA_ROM_FULL(str_ptr, pos, buffer, OUTPUT_STR_LEN, &noofbytes)))

return FAILURE; /* Convert to full form */

noofchar = HSY$CH_NCHAR(buffer,noofbytes);

/* Calculate the length of */

/* string in characters. */

charsofar = EMPTY;

str_ptr = dst_ptr = buffer;/* Initialize for the loop */

while (noofchar--) {

curr_char = HSY$CH_RNEXT(&str_ptr);

/* Read the next character */

if (HSY$IS_VALID (curr_char)) {

/* Test for valid multi-byte */

HSY$CH_WNEXT(curr_char, &dst_ptr);

/* character and write to the*/

charsofar ++ ; /* destination. */

}

}

write_text(buffer, charsofar);

/* Write the text out to file*/

return SUCCESS;

}

/* MAIN

----

This main program check for a valid command line, open all

necessary files and call the appropriate routine to

process the input data.

*/

main(argc,argv)

int argc;

unsigned char *argv[];

{

mstr in_str[INPUT_STR_LEN]; /* Input line */

int status;

if (argc != 3) {

printf("Usage: $ FORMAT <input_file> <output_file>\n");

exit(EXIT_FAILURE);

}

if ((fdin = fopen(argv[1], "r")) == NULL) {

printf("Error: Cannot open input file %s.\n", argv[1]);

exit(EXIT_FAILURE);

}

if ((fdout = fopen(argv[2],"w")) == NULL) {

printf("Error: Cannot open output file %s.\n", argv[2]);

exit(EXIT_FAILURE);

}

line_length = MARGIN;

while (fgets(in_str, INPUT_STR_LEN, fdin) != NULL)

if (!(text_format(in_str))) {

printf("Information: Processing error.\n");

break;

}

printf("Information: Finish Processing.\n");

fclose (fdin);

fclose (fdout);

exit(EXIT_SUCCESS);

}

 

$ CC SAMPLE_HSYSHR.C

$ LINK SAMPLE_HSYSHR, SYS$LIBRARY:HSYIMGLIB/LIB

$ FORMAT :== $SAMPLE_HSYSHR.EXE

$ FORMAT TEXT.IN TEXT.OUT

B.2 HSMGSHR

OpenVMS/Hanzi ϵͳ����������Ļ��������ʱ��� HSMGSHR ������һ�����г������,��Щ���г�����������Ӱ����Ļ����ơ����ɺͼ�����Ļӳ��

HSMGSHR �ṩ������Ҫ����:ʹ�������ն�����ת����Ӱ��; ���ڹ�����Ļӳ��

������ OpenVMS/Hanzi ��֧�ֵ��κ�һ�ֱ�����������ÿ⹦�ܡ�Ҫ�ѳ����� HSMGSHR ����, ����:

$ LINK PROGRAM, SYS$INPUT/OPTION

SYS$LIBRARY:HSMGSHR.EXE/SHARE

 

�й�����, ����ġ�OpenVMS RTL Chinese Screen Management (SMG$) Manual����

B.3 SORT �� MERGE �ɵ������г���

��Щ���г���ʹ���ܰ������ϲ��������뵽����Ӧ����ȥ�����������ݼ�¼������Щ�������ݼ�¼�����ϲ�,Ȼ���ٴ���֮��

���µ��û��ɵ������г��������ϲ�����ʹ�á��й�����,

����ġ�OpenVMS Utility Routine Reference Manual����

 

SOR$BEGIN_MERGE

���ùؼ��ֱ�Ԫ�����кϲ�����������Ψһ MERGE ר�е����г���

SOR$BEGIN_SORT

���͹ؼ������ϼ�������ѡ��, �Ӷ� ��ʼ���������������ֻ�� SORT ���е����г���

SOR$END_SORT

������������,����ر��ļ����ͷŴ洢����

SOR$PASS_FILES

����������ļ������ƴ����� SORT �� MERGE;��ÿһ�������ļ���������ظ�һ�Ρ�

SOR$RELEASE_REC

��һ�������¼������ SORT �� MERGE;��ÿһ����¼����������һ�Ρ�

SOR$RETURN_REC

��һ�������ϲ���¼�ͻس���;��ÿһ����¼����������һ��

SOR$SORT_MERGE

�Ѽ�¼����

SOR$SPEC_FILE

����һ��˵���ļ���˵���ı��������ȵ��������г���,Ȼ����� SOR ���������г���

SOR$STAT

�ͻع��������ϲ�������ͳ�����֡�

�κ�֧�� OpenVMS ���̵��ü�����������׼�����Զ��ɵ������ϵ����г���Ϊ��ʹ�� OpenVMS/Hanzi �� SORT �� MERGE �ɵ��ó���Ӧ�ó������ʹ������������������ʱ�������:

$ LINK PROGRAM

���г��򱻵��ú��ִ�б����Ĺ���,Ȼ���ͻؿ��Ƶ����ó���ȥ��

���еĴ�����������������,�����еı��������򰴵�ַ���͡���Щ��������λ�ò���,�û��ɰ�ֵ����һ������ָ����ѡ���������ó������һ�������б�����ʡ���������OpenVMS Utility Routine Reference Manual����

�û��������е�α����������ָ��������������,��Щα����������ͨ�÷��� (universal symbols) ����ʽ���ֹ��û�ʹ�á�

 

SOR$K_SEQ_PINYIN

���ں��� 16 λ�ı�ƴ���������С�

SOR$K_SEQ_RADICAL

���ں��� 16 λ�ı������������С�

SOR$K_SEQ_STROKE

���ں��� 16 λ�ı��ʻ��������С�

SOR$K_SEQ_QUWEI

���ں��� 16 λ�ı���λ���������С�

SOR$K_SEQ_CHAR_
PINYIN

���ں��� 16 λ�ı�ƴ����������, �� �Ժ����ַ�Ϊ��Ԫ��

SOR$K_SEQ_CHAR_
RADICAL

���ں��� 16 λ�ı�������������, ���Ժ����ַ�Ϊ 16 λ��Ԫ��

SOR$K_SEQ_CHAR_
STROKE

���ں��� 16 λ�ı��ʻ���������, ���Ժ����ַ�Ϊ��Ԫ��

SOR$K_SEQ_CHAR_
QUWEI

���ں��� 16 λ�ı���λ����������,���Ժ����ַ�Ϊ��Ԫ��

��Щα��������Ӧ��ָ��Ϊ�ؼ��ֵ��������͡�

B.3.1 ״̬��

�����ɵ������г����ڴ�����������ʱ�ͻص�״̬���봦�� ASCII ����ʱ�ͻص�״̬����ͬ���й�����,����ġ�OpenVMS Utility Routine Reference Manual����

B.3.2 �ɵ������г���Ľӿ�

�û��ɰ������������ļ��򵥸���¼����ʽ�ύ�ɵ������г��򡣵����ij�����������ʹ���ļ��ӿڡ������ij���һ���ύһ����¼��Ȼ��һ�ν���һ���������¼ʱ,

������ʹ�ü�¼�ӿڡ�

�û�Ҫ����ļ��ӿ����¼�ӿ�, ��������ʱ�ύ�ļ�,�������ʱ�����������¼����һ�����еķ�����������ʱ�ͷż�¼,�������ʱ���������¼д��һ���ļ��С����������ӿ������������и��������ԡ�

�й�����, ����ġ�OpenVMS Utility Routine Reference Manual����

B.3.3 ʹ�ÿɵ��� SORT �� MERGE ���г��������

B.3.3.1 ʹ��ƴ���������е��� SORT ���г���ij���

$ TYPE HSY$EXAMPLE:SAMPLE_SORT1.FOR

C

C The following FORTRAN program sorts the records in the file

C POET.DAT and creates an output file named EXAM1OUT.DAT.

C All the records in the input file are sorted in Pinyin

C collating sequence based on the first 12 bytes, that is,

C the first 6 Chinese characters in each record.

C

C

IMPLICIT INTEGER*4 (A-Z)

INTEGER*2 KEYBUFF(5)

CHARACTER*9 IN_FILE

CHARACTER*12 OUT_FILE

EXTERNAL SOR$K_SEQ_PINYIN

DATA IN_FILE, OUT_FILE /'POET.DAT','EXAM1OUT.DAT'/

KEYBUFF(1) = 1 ! Number of KEY

KEYBUFF(2) = %LOC(SOR$K_SEQ_PINYIN)

! Pinyin dictionary sequence

KEYBUFF(3) = 0 ! Ascending sort

KEYBUFF(4) = 0 ! Key offset

KEYBUFF(5) = 2 ! Size in bytes

STATUS = SOR$PASS_FILES(IN_FILE, OUT_FILE)

IF (.NOT. STATUS) GOTO 10

STATUS = SOR$BEGIN_SORT(KEYBUFF)

IF (.NOT. STATUS) GOTO 10

STATUS = SOR$SORT_MERGE( )

IF (.NOT. STATUS) GOTO 10

STATUS = SOR$END_SORT( )

IF (.NOT. STATUS) GOTO 10

STOP 'SUCCESS'

10 CONTINUE

STOP 'FAILURE'

END

$ FOR SAMPLE_SORT1

$ LINK SAMPLE_SORT1

$ RUN SAMPLE_SORT1

$

B.3.3.2 ʹ�ö����������е��� SORT ���г���ij���

$ TYPE HSY$EXAMPLE:SAMPLE_SORT2.FOR

C This is a FORTRAN language example calling sort routines using

C multiple collating sequences.

C

C This program sorts data with file interface on input and record

C interface on output.Two collating sequences are specified here,

C the first being the number of stroke count with ascending sort

C order and the second being the radical sequence with descending

C sort order.

C

C

C

C Define external functions and data and initialize

IMPLICIT INTEGER*4 (A-Z)

CHARACTER*80 RECBUF

CHARACTER*9 INPUTNAME ! Input file name

INTEGER*2 KEYBUF(9) ! Key definition buffer

EXTERNAL SS$_ENDOFFILE

EXTERNAL SOR$GK_RECORD

EXTERNAL SOR$K_SEQ_RADICAL

! Radical collating sequence

EXTERNAL SOR$K_SEQ_STROKE ! Stroke collating sequence

DATA INPUTNAME /��POET.DAT��/

KEYBUF(1) = 2

KEYBUF(2) = %LOC(SOR$K_SEQ_STROKE) ! Primary key STROKE

KEYBUF(3) = 0 ! Ascending

KEYBUF(4) = 0 ! Offset 0

KEYBUF(5) = 2 ! Size 2

KEYBUF(6) = %LOC(SOR$K_SEQ_RADICAL)

! Secondary key RADICAL

KEYBUF(7) = 1 ! Descending

KEYBUF(8) = 0 ! Offset 0

KEYBUF(9) = 2 ! Size 2

SRTTYPE = %LOC(SOR$GK_RECORD)

C Pass SORT the file names

ISTATUS = SOR$PASS_FILES(INPUTNAME)

IF (.NOT. ISTATUS) GOTO 10

C Initialize the work areas and keys

ISTATUS = SOR$BEGIN_SORT(KEYBUF,,,,,,SRTTYPE,%REF(3))

IF (.NOT. ISTATUS) GOTO 10

C Sort the records

ISTATUS = SOR$SORT_MERGE( )

IF (.NOT. ISTATUS) GOTO 10

C Now retrieve the individual records and display them.

5 ISTATUS = SOR$RETURN_REC(RECBUF)

IF (.NOT. ISTATUS) GOTO 6

ISTATUS = LIB$PUT_OUTPUT(RECBUF)

GOTO 5

6 IF (ISTATUS .EQ. %LOC(SS$_ENDOFFILE)) GOTO 7

GOTO 10

C Clean up the work areas and files.

7 ISTATUS = SOR$END_SORT( )

IF (.NOT. ISTATUS) GOTO 10

STOP ��SORT SUCCESSFUL��

10 STOP ��SORT UNSUCCESSFUL��

END

$ FOR SAMPLE_SORT2

$ LINK SAMPLE_SORT2

$ RUN SAMPLE_SORT2

$

B.3.3.3 ���� MERGE �����ij���

$ TYPE HSY$EXAMPLE:SAMPLE_MERGE.C

/* This is a C language example.

This program merges two input files into one output file.

The key is starting from the first byte of the record

(offset zero byte) of size two bytes(i.e. 1 Chinese

character).It also checks if the input files sequence

are in the right order.

*/

#include stsdef

struct DESCRIPTOR { int leng ;

char *ptr ;

};

globalvalue SOR$K_SEQ_PINYIN,

SOR$M_SEQ_CHECK;

main()

{

char infile1[] = "EXAM31.DAT" ,

infile2[] = "EXAM32.DAT" ,

outfile[] = "EXAM3OUT.DAT" ;

struct DESCRIPTOR

inptr1 = {strlen(infile1) ,infile1},

inptr2 = {strlen(infile2) ,infile2},

outptr = {strlen(outfile) ,outfile};

short lrl, key[5] ;

int status,option;

/* initialize the key */

key[0] = 1 ; /* key no. */

key[1] = SOR$K_SEQ_PINYIN ; /* pinyin */

key[2] = 0 ; /* ascend */

key[3] = 0 ; /* offset */

key[4] = 2 ; /* size */

lrl = 131; /* LRL */

option = SOR$M_SEQ_CHECK; /* check input sequence */

/* merge the files */

if(!((status=sor$pass_files(&inptr1,&outptr))

& STS$M_SUCCESS))

lib$stop(status);

if(!((status=sor$pass_files(&inptr2))

& STS$M_SUCCESS))

lib$stop(status);

if(!((status=sor$begin_merge(key,&lrl,&option))

& STS$M_SUCCESS))

lib$stop(status);

if(!((status=sor$end_sort())

& STS$M_SUCCESS))

lib$stop(status);

}

$ CC SAMPLE_MERGE.C

$ LINK SAMPLE_MERGE

$ RUN SAMPLE_MERGE

$

B.4 �ɵ��� HTPU ���г���

���ڿɵ��� HTPU ���г����ϵ,���ɴ��κγ������Լ�Ӧ�ó����е��� HTPU�����ɴ����κ�ʹ�� OpenVMS ���̵��ü�����������׼���ɵ��õı�����Ա�д�ij����е��� HTPU�� ��Ҳ���Դ� OpenVMS ���ó����� HMAIL �е��� HTPU�� �ɵ��� HTPU ���г����������ڳ�����ʹ�ú����ı��������ܡ�

HTPU ֧�� DECTPU ��֧�ֵ�ͬһ�ɵ��ýӿ�,���򻯿ɵ��ýӿں�ȫ��ɵ��ýӿڡ��й� DECTPU �ɵ��ýӿڵ�����, ����ġ�VMS Utility Routines Manual���� 14 �¡�

�����֮��HTPU �ɵ��ýӿں� DECTPU �ɵ��ýӿڵķֱ����£�

  1. TPU$CLIPARSE ���� " HTPU " �����, �������� "TPU" ����ʡ�
  2. ��Ӧ���� SYS$SHARE:HTPUSHR.EXE, ������ SYS$SHARE:TPUSHR.EXE��
  3. TPU$EXECUTE_COMMAND ���г����ִ�� HTPUר��������̼�DECTPU ��������̡� �й� HTPU ר��������̣�����ġ�HTPU �� HEVE �û��ο��ֲᡷ����DEC Text Processing Utility Reference Manual ������ DECTPU ��������̡�

B.4.1 HTPU �ɵ������г���

���пɵ������г���ɹ��� HTPU ������ʹ�ã�

  1. �򻯿ɵ��ýӿ�
  2. TPU$TPU

    ���� HTPU, �൱�� DCL ���� EDIT/HTPU��

    TPU$EDIT

    ���� HTPU �����ͱ༭�����ļ����Ѿ��޸ĵĻ�����д������ļ���

  3. ȫ��ɵ��ýӿ�
  4. TPU$CLEANUP

    ���� HTPU �ڲ����ݽṹ����Ϊ���ӵĵ�������׼����

    TPU$CLIPARSE

    ���������в�ΪTPU$INITIALIZE ������Ŀ����

    TPU$CLOSE_TERMINAL

    ���û����õ����г����е��ô����г���ͷ����û����õ����г����ڼ�ر� HTPU ���ն�ͨ����

    TPU$CONTROL

    ���� TPU$INITIALIZE �󣬰ѿ��ƴ��� HTPU, ֱ���û��� HTPU �˳��������

    TPU$EXECUTE_COMMAND

    ���� TPU$INITIALIZE ��,ִ�� HTPU ��䡣

    TPU$EXECITE_INIFILE

    ���� TPU$INITIALIZE ���漴ִ�г�ʼ���ļ���

    TPU$FILEIO

    Ĭ���ļ�����������г���

    TPU$HANDLER

    Ĭ��������������

    TPU$INITIALIZE

    �����쳣��������󣬳�ʼ�� HTPU��

    TPU$MESSAGE

    ʹ��������� MESSAGE д������Ϣ�ʹ���

    TPU$PARSEINFO

    ʹ�� CLI$DCL_PARSE ���������Ϊ TPU$INITIALIZE ������Ŀ����

B.4.2 ��������

�������� BLISS ��д����������,��ʹ��ȫ��ɵ��ýӿڵ��� HTPU:

 

!++

!

! EXAMPLE.B32

!

! Example program of using HTPU full callable interface.

! To run this example:

! 1. $ BLISS EXAMPLE

! 2. $ LINK EXAMPLE,SYS$INPUT/OPTION

! SYS$SHARE:HTPUSHR/SHARE

! <EXIT>

! 3. $ DEFINE HTPU$TESTING <your directory>

! 4. $ RUN EXAMPLE

!

!--

MODULE test (IDENT = '001',

MAIN = test_main,

ADDRESSING_MODE (EXTERNAL = GENERAL)) =

BEGIN

 

!++

!

! FUNCTIONALITY:

!

! To test the callable interface of HTPUSHR

!

!--

REQUIRE

'SYS$LIBRARY:STARLET';

 

LITERAL

TEST_USER_ARG = %X'F0'; !an arbitrary pattern

!

! Table of Content

!

FORWARD ROUTINE

test_main, ! Module entry

test_callback, ! Callback for tpu$initialize

test_call_user, ! Call user routine

test_edit; ! Edit using HTPU

!

! HTPU callable routines

!

EXTERNAL ROUTINE

tpu$fileio, ! HTPU file routine

tpu$message, ! Displays HTPU message

tpu$cliparse, ! HTPU CLI parser

tpu$handler, ! HTPU handler

tpu$initialize, ! Initialize HTPU

tpu$execute_inifile, ! Execute initial commands

tpu$execute_command, ! Execute HTPU statements

tpu$control, ! HTPU main control loop

tpu$cleanup; ! Clean up HTPU

!

! HTPU Literals for cleanup

!

EXTERNAL LITERAL

tpu$m_last_time,

tpu$m_delete_journal,

tpu$m_delete_exith,

tpu$m_delete_buffers,

tpu$m_delete_windows,

tpu$m_execute_file,

tpu$m_execute_proc,

tpu$m_delete_context,

tpu$m_reset_terminal,

tpu$m_kill_processes,

tpu$m_close_section;

MACRO

$test_set_bpv (bpv, proc) =

(BEGIN

BIND

$test_bpv = bpv : VECTOR [2];

$test_bpv [0] = proc;

$test_bpv [1] = 0;

END) %;

 

ROUTINE test_main =

!++

! FUNCTIONALITY:

!

! Main routine to call HTPU

!

!--

 

BEGIN

LOCAL

callback_bpv : BLOCK [8, BYTE],

user_arg,

cleanup_flag,

status;

ENABLE

tpu$handler;

!

! Setup the callback procedure

!

$test_set_bpv (callback_bpv, test_callback);

!

!Set the user argument for test_callback,but ignored there

!

user_arg = TEST_USER_ARG;

!

!Initialize HTPU. Initialization options are specified in

! test_callback

!

status = tpu$initialize (callback_bpv, .user_arg);

IF NOT .status

THEN

RETURN .status;

!

! Set up the default section file

!

status = tpu$execute_inifile();

IF NOT .status

THEN

RETURN .status;

!

! Perform editing

!

status = test_edit();

IF NOT .status

THEN

RETURN .status;

!

! Finally, we clean up the HTPU and then return

!

cleanup_flag = tpu$m_delete_context;

RETURN tpu$cleanup (cleanup_flag);

END;

 

ROUTINE test_callback (user_arg) =

!++

! FUNCTIONALITY:

!

! Sets up the item list for tpu$initialize

!

!--

BEGIN

LOCAL

fileio_bpv : BLOCK [8, BYTE],

call_user_bpv : BLOCK [8, BYTE],

status;

!

! Construct fileio bpv

!

$test_set_bpv (fileio_bpv, tpu$fileio);

!

! Construct call_user bpv

!

$test_set_bpv (call_user_bpv, test_call_user);

!

! Calls tpu$cliparse to construct item list for

! tpu$intialize

! passing it tpu$fileio as the fileio routine and

! test_call_user as the call_user routine

!

RETURN tpu$cliparse (

$DESCRIPTOR ('HTPU htpu$testing:test.txt'),

fileio_bpv,

call_user_bpv);

END;

 

ROUTINE test_call_user (int_param,

str_param : REF BLOCK[,BYTE],

str_out : REF BLOCK [,BYTE]) =

!++

! FUNCTIONALITY

!

! It simply prints out the integer parameter int_param

! and the string parameter str_param by means of tpu$message

!

!--

BEGIN

EXTERNAL ROUTINE

lib$sget1_dd,

lib$get_vm;

LOCAL

buffer : VECTOR [80, BYTE],

buffer_desc : BLOCK [8, BYTE],

buffer_len,

str_out_len : WORD,

status;

!

! Form a fixed-length string descriptor

!

buffer_desc [DSC$W_LENGTH] = 80;

buffer_desc [DSC$B_DTYPE] = DSC$K_DTYPE_T;

buffer_desc [DSC$B_CLASS] = DSC$K_CLASS_S;

buffer_desc [DSC$A_POINTER] = buffer;

!

! Construct the ini_param message and print it out

!

status = $FAO ($DESCRIPTOR('Integer: !UL'),buffer_len,

buffer_desc, ..int_param);

IF NOT .status

THEN

RETURN .status;

buffer_desc [DSC$W_LENGTH] = .buffer_len;

status = tpu$message (buffer_desc);

buffer_desc [DSC$W_LENGTH] = 80;

!

! Construct the str_param message and print it out

!

status = $FAO ($DESCRIPTOR('String: !AF'), buffer_len,

buffer_desc, .str_param [DSC$W_LENGTH],

.str_param [DSC$A_POINTER]);

IF NOT .status

THEN

RETURN .status;

buffer_desc [DSC$W_LENGTH] = .buffer_len;

status = tpu$message (buffer_desc);

buffer_desc [DSC$W_LENGTH] = 80;

!

! Construct return string

! We need to use lib$sget1_dd to allocate the memory

! for the return string since TPU uses lib$sfree1_dd

! to free our string when it needs to.

!

str_out_len = %CHARCOUNT(%STRING('Success'));

status = lib$sget1_dd (str_out_len, str_out [0,0,0,0]);

IF NOT .status

THEN

RETURN .status;

CH$MOVE (.str_out_len,

UPLIT BYTE ('Success'),

.str_out [DSC$A_POINTER]);

RETURN SS$_NORMAL;

END;

 

ROUTINE test_edit =

!++

! FUNCTIONALITY:

!

! Perform editing to the buffer

!

!--

BEGIN

MACRO

$test_execute (command) =

(BEGIN

status=tpu$execute_command ($DESCRIPTOR (command));

IF NOT .status

THEN

RETURN .status;

END)%;

LOCAL

status;

!

! It first copies two lines to the MAIN buffer

!

$test_execute ('COPY_TEXT("This is the first statement");

SPLIT_LINE');

$test_execute('COPY_TEXT("This is the second statement");

SPLIT_LINE');

!

! It then passes control to HTPU

!

RETURN tpu$control (1);

END;

END

ELUDOM

 


1. GB-2312-80 ��׼�����ں�����Ϣ������ͼ���ַ��������Ĺ��ұ�׼�����л����񹲺͹����ұ�׼���� 1981 �� 5 �¹�����

2. [�����༭����]ָ�� OpenVMS ֮�����е������ı��༭����, ���� TPU��

3. Ψ��֧�� MCS �ַ��༭