+ All Categories
Home > Documents > CICS Jun title99 - CBT Tape Home Page - MVS Freeware ( = 3.14 ). Let me list some possible...

CICS Jun title99 - CBT Tape Home Page - MVS Freeware ( = 3.14 ). Let me list some possible...

Date post: 27-May-2018
Category:
Upload: dinhtuong
View: 214 times
Download: 0 times
Share this document with a friend
72
© Xephon plc 2002 July 2002 190 In this issue MVS KF@=JA 3 On the way to a mainframe Google 13 HSM recovery panel 17 Interfacing Assembler programs with IBM C 31 Mainframe spreadsheet 65 Comparing PDS files 72 MVS news
Transcript

© Xephon plc 2002

July 2002

190

In this issue

MVS������

3 On the way to a mainframe Google13 HSM recovery panel17 Interfacing Assembler programs

with IBM C31 Mainframe spreadsheet65 Comparing PDS files72 MVS news

Current Support
Xephon magazine issues are now supported at www.cbttape.org. Please go to www.cbttape.org if you have any support questions.
Golob
Note
Completed set by Golob

2

MVS UpdatePublished byXephon27-35 London RoadNewburyBerkshire RG14 1JLEnglandTelephone: 01635 38342From USA: 01144 1635 38342E-mail: [email protected]

North American officeXephonPO Box 350100Westminster, CO 80035-0100USATelephone: 303 410 9344

Subscriptions and back-issuesA year’s subscription to MVS Update,comprising twelve monthly issues, costs£340.00 in the UK; $505.00 in the USA andCanada; £346.00 in Europe; £352.00 inAustralasia and Japan; and £350.00elsewhere. In all cases the price includespostage. Individual issues, starting with theJanuary 1999 issue, are available separatelyto subscribers for £29.00 ($43.50) eachincluding postage.

MVS Update on-lineCode from MVS Update, and complete issuesin Acrobat PDF format, can be downloadedfrom our Web site at http://www.xephon.com/mvs; you will need to supply a wordfrom the printed issue.

© Xephon plc 2002. All rights reserved. None of the text in this publication may be reproduced,stored in a retrieval system, or transmitted in any form or by any means, without the priorpermission of the copyright owner. Subscribers are free to copy any code reproduced in thispublication for use in their own installations, but may not sell such code or incorporate it in anycommercial product. No part of this publication may be used for any form of advertising, salespromotion, or publicity without the written permission of the publisher. Copying permits areavailable from Xephon in the form of pressure-sensitive labels, for application to individualcopies. A pack of 240 labels costs $36 (£24), giving a cost per copy of 15 cents (10 pence).To order, contact Xephon at any of the addresses above.

Printed in England.

EditorTrevor Eddolls

DisclaimerReaders are cautioned that, although theinformation in this journal is presented in goodfaith, neither Xephon nor the organizations orindividuals that supplied information in thisjournal give any warranty or make anyrepresentations as to the accuracy of thematerial it contains. Neither Xephon nor thecontributing organizations or individualsaccept any liability of any kind howsoeverarising out of the use of such material.Readers should satisfy themselves as to thecorrectness and relevance to theircircumstances of all advice, information,code, JCL, EXECs, and other contents of thisjournal before making any use of it.

ContributionsWhen Xephon is given copyright, articlespublished in CICS Update are paid for at therate of £170 ($260) per 1000 words and £100($160) per 100 lines of code for the first 200lines of original material. The remaining codeis paid for at the rate of £50 ($80) per 100lines. In addition, there is a flat fee of £30($50) per article. To find out more aboutcontributing an article, without anyobligation, please download a copy of ourNotes for Contributors from www.xephon.com/nfc.

3© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

On the way to a mainframe Google

The mainframe community can surely give some great ideas to the Webdevelopment community – like reliability, hierarchical thinking,simplicity of thinking; on the other hand, it can accept ideas like user-friendliness, integrating all possible resources, and – above all – settingunlimited goals.

Willie van Tilburg presented a simple but good command-line tool inIssue 198 of MVS Update, January 1999. The command XF (a REXXfunction) scans a PDS for a string, and shows the members (where thestring has been found) in a popup-window with the possible selectionof V(iew) or E(dit).

It gave me some ideas for a general search engine – something likeGoogle on the Web.

We have basically two problems, namely:

• What to search in.

• How to present the hits.

I don’t want to aim too high with the scope of searchable targets; I thinkthings like DB2 or IMS DBs are out of the question. We can focus ondatasets with PS/PO/VSAM organization, and use generic namespecifications. It can be a most important question with queries like:

�������������� �������������

This will find all occurrences of ‘mystring’ in ‘userid.ispf.cntl’,‘userid.ispf.data’, etc. A generic search for datasets can be a mostunsatisfying job, but there are jewels like CATSRCH from Mark Zeldenand others to lighten it. VSAM datasets can be ‘flattened’ into PSsbefore the searching.

The presentation of the hits is a most important topic. I propose – as afirst step – an extension of XF from van Tilburg on this. Also presentedis a technique to include a panel inside the REXX procedure (no morePANELLIB necessary).

The hits are presented like this:

4 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

������������������������� ��������������������������������������������

�����������������

����� !"#���$$��%&'()�*%+ ,��- .$/-0#$"1�$%#-�"0) &�2�$$��%&'()�*%+ ,

���1� 3�343�$$�21� 3�343�5611�����+0" &�0&7 &"(&8-9"0) %�%&�) #'6�0�:�/

���1� 3�3;3�$$�21� 3�3;3�5611�����+0" &�' �-6& &9"0) %�%&�) #'6�0�:�/-0

���1� 3;3�<�$$ %&801 ��""�"-&�-:-��&"/-:-�/-0#�=/-"">

���1� 3;3<3�$$�21� 3;3<3�5611�����+0" &�- .+��"0) %�?0++ �-"9-@�%&�/-0#

���1� 3;3;3�$$�21� 3;3;3�5611�����+0" &�- .+��"0) %�?-"9)69'�8@�%&�/-0#

���1� 3;�A3�$$�21� 3;�A3�5611�����/-0#9"0) %�#%)��6B!0" 9%&) �& �"-&0#

���1� 3;�C3�$$�21� 3;�C3�5611�����/-0#9"0) %�#%)��6B!0" 9%&) �& �"-&0#

���1� 3;�D3�$$�21� 3;�D3�5611�����/-0#9"0) %�#%)��6B!0" 9%&) �& �"-&0#

���1� 3;�D��$$�21� 3;�D��5611�����/-0#9"0) %�#%)��6B!0" 9%&) �& �"-&0#

���1� 3;�E3�$$�21� 3;�E3�5611�����/-0#9"0) %�#%)��6B!0" 9%&) �& �"-&0#

���1� 3;433�$$�21� 3;433�5611�����/-0#9"0) %�#%)��6B!0" 9%&) �& �"-&0#

�������������������������������1�����������������������������������������

�)! - �0� �)! �# #1 �-�7%)!��/-0#F

As you can see, the hits are presented with a ‘+’ to indicate multipleoccurrences of the search string in the target. It’s important to know thatit has been created with standard components like ISP, REXX, andSRCHFOR ( = 3.14 ).

Let me list some possible improvements:

• To include a macro to point to the searched string when viewing/editing the selected member (but personally I don’t like the need fora further external component).

• To enable users to see all the hits for a member by scrolling (it’s aneverlasting problem – no scrolling in Table Services, see DougNadel’s Web site http://www.sillysot.com/mvs/ for a solution).

• To enable the use of a high-level qualifier instead of dataset name(see above).

• To sort the hits by date/time of the last change, etc.

• A further (but interesting) possibility could be the searching inALL DATASETS in the target dataset(s); that means, searching fora string in all datasets defined in the 1.Parameter (it must, of course,be all JCL).

5© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

• To use regular expressions (it’s not impossible: there’s a GREP forthe host by courtesy of http://www.dignus.com/).

XF REXX

$���������������������������������� GG���������������������������������$

$���)-6�B6##0&"��G*����������������������������������������������������$

$���"���������,������������������������������������������������������$

$���*����������������'"-���H�����H�� �������������%-'*�4��<�������$

$���)H������������������H��������������������������H�H��IH��I�����$

$������H��������������H���������:�������������H�����������������$

$���I ?��@I�����?�����H�������������/���J������������������������$

$����9�� �����@�����������������������������������������������������$

$���)H��'������""�?�"-&@������������������H��������?�@����>�������$

$��������������������������������������������������������������������$

$���9999999999299999999999999999999999999999999999999999999299999999���$

$���'������K���������������"��������������������������K�"��������$

$���9999999999299999999999999999999999999999999999999999999299999999���$

$����������K�������9"������������������������������K�����������$

$���9999999999299999999999999999999999999999999999999999999299999999���$

$���""��������K������9�������H$��H���������H��������K����9�����$

$�������������K�ILI���H���! +'����������������������������K�����������$

$���- ��������K�����H9� ��������������������������������K����9�����$

$���7���������K������I7I�H�������H����������������������K����������$

$���9999999999299999999999999999999999999999999999999999999299999999���$

$���7���� ������������������������������������������������������������$

$����@�'�������H�� ��H������� ���'�-BMM����������������+#-8���������$

$����������������������������������������������������������������������$

� ���������

N%-' G B�/8 )���&0# �-!0� "N

����������F��IG*I�$��%����������)-6�%-' G B�B��������$

H��

��

�����������IG*I

��N%-' G B�/'()���&0# �-!0� "N

��������������

��N%-' G B�/'()���- ��-!0� "N

���

�����$��%����������� "%)�������$

��

��N%-' G B�/8 )���- ��-!0� "N

��N%-� "%)�#0B�6�'�6B --N

��N%-� "%)�!%+%) �*%&"N

��N%-� "%)�*�N�����N�0++N

��N%-' G B�/ �0- ���&0# �-!0� "N

�����

���

N%-' G B�/ �0- ���&0# �-!0� "N

$�������������������������!����������L������������������������������$

��������ILI

6 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

H��

��

���������4������������?@�>

����������?����?���������?�@>�;>E@���I�H�� ���,I@

������������?���������?�@>4>AD@

�����

������M

���

$��%����O��H����'������������������������������������������������$

�������?��>�>�@�P��NIN

H�����

�������NIN�KK������?@�KK�I�I�KK����KK�NIN

���

������� ?���@

��������?��@

��������������M�O����?I�I>��@���M�H��

�����

�����������?���@

�����������������M�H��

��������

����������� ���I������������������������������H�� ������������I

��������N%-' G B����� ��� ?����MM�@N

�����������

���������

����������

����������

�������������������

������������������

�������������������

�����������

������

�����������?��>�>��� H?��@9�@

������?I�I>������@���M

H�����

�������B0)-�B#�������

������������������M

�������������������������I�I�������

���������������I"-&-I�O�������?������@���I&(#I

����H��

���������

��������

���������������������

�����

���

���������II������������������������������$���������H�� ������� G%)��$

H�����

����� ���I����������H�� ����I

��N%-' G B�- )#-8�#-8?�'�-BMM�@N

�����

���

$��#�����������������������������������������������������������������$

7© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�����������������������������������$����������H�������������������$

�����������������������������������$��������������������H��� ����$

�������)-6

I*� �*%?& 7"">6()"">-:-%&@I

N0++6B�*%?& 7""@�-!��"0?IN"-&0# NI@N

I0++6B�*%?6()""@�& 7�"-6�8?'-@�� B?*�1@�+�?�44@�1+=?�44MM@I�>

�����I-'0B ?�>�@�)�0B=-�"0?G*�+%5-)@I

I0++6B�*%?-:-%&@�" + ) �"-6�8?'-@�� B?*�1@�+�?DM@�1+=?4��M@I�>

�����I-'0B ?�>�@�)�0B=-I

������I-�B!*6�I�NIN���NIN

�����P��II

H��

������������KK�I>�I

Q��������

I G B%6���"%-=7�-:-%&�?*%&%-I

���������������������������������������������$��������H�����������H��$

�������%-' G B

I- + B)�'8#?%-�-('B@�'0�#?-�B!B#'>0&:B>&6- .@I

��������������$������H�����������������H���������������������$

�������)-6

I*� �*%?& 7"">6()"">-:-%&@I

I0++6B�*%?6()""@�-!��"0?G*�+%5-)@�" + ) I

I G B%6���"%-=��6()""�?*%&%-I

I*� �*%?6()""@I

����������������$������H����������������������������������������$

����������M

���������II

���������II

���Q�����?@

��������� ��

���������?I-)�%&8?-@�*6(&"I>� ��@���M

���H�����

������������?� ��>4>�@���I�I�H�������

������������?� ��>4>��@���I+%& -9*6(&"I�H�������

������������?� ��>4>��@���I# #1 �9- 0�I�H�������

������������?� ��>4>��@���I'�6B --�6')I�H�������

������������?� ��>4>��@���I)! �*6++67%I�H�������

������������M

�����H��

�����������������������

�����������������2�

�������������������?� ��>�>E@

����������������II

�����

���������

������������� �����������

�������������?�����@���I&(#I�O�>

����������?IB6#'0� �()%+%):I>� ��@���M

����H�����

��������������?��@

������������ H?������@�F��MMM

8 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

������H��

��������������������II

��������H��

���������������������

������������

��������������������������KK�I�2�I�KK���

�������

�����

���

����������������

����������������������������������$���H�������H��������������������$

�����������II�H�����

������ ���IH������������������HI����

���N%-' G B�- )#-8�#-8?�'�-BMM�@N

������

���

��� ���I-���H0 �����I���IFI

N%-' G B�- )#-8�#-8?�'�-BMM�@N

$�����H������������������������$

�������%-' G B

N)1B� 0) �# #- +�&0# -?# #1 ��*6(&"@�&67�%) �� '+0B N

���������EEEEE

��������������II

���H��

����������

��������������?�������@

�������������������

���I�����������I

���

��������������������������������������������$����������H������������$

I)1)6'�# #- +I

R�������I-�����!�������I���������������$��)��������'6'('97������$

N0""'6'��67?�@�B6+(#&?E@N

������ 0"S'0& +

N)1"%-'+�# #- +�'0& +?G*'0& +@N

$��������������������� ���1>-���?H��������Q�������/���@���������$

'0& +S0B)%6&,

��������I &"I

H��

�����

���R������M

H��

��N)1"%-'+�# #- +N

���R��������H�����

��NB6&)�6+�"%-'+0:�-0/ N

�������

�����H������I I�H��

������N "%)�"0)0- )?IN"-&0# N?N# #1 �N@I@N

�����H������I-I�H�����

���������������IG*I

������N%-' G B�/'()���&0# �-!0� "N

9© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

������N "%)�"0)0- )?IN������N?N�����N@I@�#0B�6?G*@N

�������

�����H�����

������N/% 7�"0)0- )?IN"-&0# N?N# #1 �N@I@N

������$� ��-�����$

��NB6&)�6+�"%-'+0:�� -)6� N

��N)1"%-'+�# #- +N

���

���R����������H��

����������R�������

��������������?�����@

�����NB6&)�6+�"%-'+0:�-0/ N

�����������

���������H������I I�H��

����������N "%)�"0)0- )?IN������N?N�����N@I@�#0B�6?G*@N

���������H������I-I�H�����

�������������������IG*I

����������N%-' G B�/'()���&0# �-!0� "N

����������N "%)�"0)0- )?IN������N?N�����N@I@�#0B�6?G*@N

�����������

���������H�����

����������N/% 7�"0)0- )?IN������N?N�����N@I@N

����������$� ��-�����$

�����NB6&)�6+�"%-'+0:�� -)6� N

�����N)1"%-'+�# #- +N

�����

�� ����'0& +S0B)%6&

�������)-6

I*� �*?T('"'0&@I

�������%-' G B

I+%1" *�%-''+%1�I

����M

$�� &"���������������������������������������������������������������$

$�����������������������������������������������������������������$

$����������9�������������������������������������������������������$

� 0"S'0& +,

������������I/%6I����$���H�� ��H������������������������$

���������)-6

��I0++6B�& 7�" +�*?T('"'0&@�"-6?'6@�"%�?�@�-'?4>4@�)�0B=

��������� (- �� B*#?*�1@�1+=-%U ?M@�+� B+?DM@�(&%)?I(&%)&0# I@I

�������

��������������?����>�>C@�I$������I

��������������������?�@

�������2�

�����

����������������������������

���������%-' G B

��I+#%&%)�"0)0%"?)#''&+@� &.? GB+(@�""&0# ?T('"'0&@I

��I+#6' &�"0)0%"?I)#''&+I@�6')%6&?6()'()@I

��������������?����>�><@�I@���I

��������������������?�@

10 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

����I+#'()�"0)0%"?O)#''&+@�#6" ?%&/0�@�"0)0+6B?+%& @�"0)0+ &?DM@I

�������2�

�����

��I+##0""�"0)0%"?O)#''&+@�# #1 �?I'0& +&0# I@I

��I+#*� �"0)0%"?O)#''&+@I

��I+%1" *�%-''+%1�+%1�0�:�%"?T('"'0&@�-)0B=I

���

$������H������ �������������H�����������������������������������$

B0)-�B#,���������������������

����������� ��������������������$���������������������������������$

���������II�H����������������������$���������������������������������$

������I��������������������I��$���������������������������������$

������������������������������������$���������������������������������$

������������������������������������$���������������������������������$

�������M���������������������������$�����������������������������$

�������������?I�I>�><@����������$���������������$���$��������$

��������������?���>�><<@���������$�����������������������������$

������F��II�H���������������������$���������������������������������$

����������������?��>�><<@�������$����������������������� ��������$

������������������������������������$���������������������������������$

����������������?I�I>�><<@�������$�������������� ����������������$

��������������?I�I>�><<@���������$�������������������������������$

��������������?I�I>�>�A@���������$�����������������������������$

���������������?I:I>�>�@����������$�������������������������������$

��������������?I�I>�>�@����������$������������������ ������������$

������F��II�H���������������������$���������������������������������$

����������������?I:I>�>�@��������$������H������������������������$

������������������������������������$���������������������������������$

����������������?I�I>�>�@��������$������H���������� �������������$

�������������?I�I>�>�@����������$����������������H����������$

�����������IMMM�I�������������������$�������������������������������$

�����������������?I/6+- �I>�>D@���$������������������������������$

�$���������H�����������������������������������������������$

������������������KK���������KK���������KK�������

�������������������KK���������KK���������KK���������KK�������

��������������������KK����������KK��������

�$����������R����������������������������������������������$

$������������M�<���$

$���������IMMMMM<MMI��KK�������?IMMI�>������9<@��$

����������4�MC���$����D���$������$��������4E;E4��$

�������IMMM�MMMMI��KK�������?IMMI�>������9<@���$��������4E;E4��$

�$����������R������������������������������������������������������$

��������I:I

����������II���������������������$�����������������������������VM���$

�������������?I�I>�><<@

������������?I�I>�><<@

�$�����������������������?���������������������@�����������������$

����H������������I:I

�$��������������������� � �������������������������������������$

��������+%&='8#�I%88B-%MM��#6"�-&�B��B-%*% +"��"76�=I

�������������?��������>�;M>�@����$�� ����������� ��������������$

11© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

��������������?����?����>E><@@���$�� ��������������������������$

�������;����������������������������$������ ����������������������$

�$�������������������������������������������������������������$

�����H���������F��������������������$������������������������������$

����������?����>����2�>�@���IMI��$���������� >���������� �H����$

����H�����

��������������������?����>����2�><<@

���������������������2�;M

������������

���������������?����>����2�><<@��$�� ���������������������������$

�$������� ���������������������������������������������������������$

����������?����>����2�>�@���IBI�H����������IB+(-) ��I

��������

�������������?����>����2�>�@���I"I�H����������I"0)0����I

���������

�������������?����>����2�>�@���I%I�H����������I%&" G���I

���������

�������������?����>����2�>�@���I0I�H����������I&6&/-0#�I

���������

�������������?����>����2�>�@���I!I�H����������I8"-�����I

���������

�������������?����>����2�>�@���I1I�H����������I8"8�����I

���������

�������������?����>����2�>�@���I�I�H����������I'0)!����I

���������

�������������?����>����2�>�@���I8I�H����������I0%G�����I

���������

�������������?����>����2�>�@���IGI�H����������I0+%0-���I

���������

�������������?����>����2�>�@���I(I�H����������I(B0)����I

���������������$��������������H������� ����������������$

���������������$������������������������������������������$

���������������$������� ���������H���������������������$

���������������$���������������9������?�����<<��@��������$

���������������$��H��������������������������H������������$

�������������?����>����2�>�@���IMI�H���������$��������������$

������������������2�<A��$������������������$

������������������2����?����?����>����>�@@�$����������$

����������

�����������$�����������$

�$��������H������������������������������������ ������������������$

�$������������� � ������H�Q�����H����������������������������$

�������������������F���������H���$������������������������������$

�������������������������������������$������������������������������$

����������������������I��I�H����Q�����I�����I

�����������Q�����I����� �I���������$�������>��������������������$

�����������Q�����I���I

��������������������������

�������������������I��I

�������������

�$���H������������������������������������������������$

12 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

���������� �������?����>����2M>�@�$��������� �����������$

�����������?������� >I<MI�@���I<MI��H�����

�����������������2�;M�����������$��H�������� H��$

�����������������2����?����?����>����>�@@

�����Q�����I����������� �H���������� ����,I

�����Q�����I������I������

�����Q�����I�����I�������

�����Q�����I�����I�����

�������������$�� �������������$

������

�$���H����������������>� ������������������������������������������$

����������������2����$��������������������$

����������������2�<A

����������������?����?����>����2<>�@@$A�$��H���������������L������$

���������������2A�������������������$�������������������������������$

�������������4���������������������$������������4������������������$

��������������������?I�I>�>A@

�������

�����������������������������������$�����������������������������$

��������������������?����>����>A@

������������������2�A

�������

����Q�����������?I�I>D@����������������������������������4

�$���� ����������������������������������������������������������$

����������������2����?����?����>����>�@@

�����

������������I:I�O>$�������I�������H�������VM���$

������������������H���������������$������>���I��� ����Q����VM���$

���������������������������������������������������������������$�VM���$

�����Q��������?�����@�I��������������������H�H������������R��I

�����Q������I��������9�����������������H����������������I

���������������������������������������������������������������$�VM���$

���������������������������������������������������������������$�VM���$

�����������������������������������$�����������������������VM���$

���

Q�����II��$�������������������$

����M

���Q�����?@

���������������

�������2��

�������?I/-0#I>����@���M

�H�����

�����������������������

���������������

����

���

�����M����

���

$�������������������������������������������������������������������$

$��H���H�����H�����������������������������������������������������$

$��������������

13© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

@��������?W2S@

X����?����@������?H� H@�����?��@�Y��?���@

-����?����@������?H� H@�����?��@�Y��?���@�����?��@

T����?����@������?���@�����?��@�Y��?����@

@�����������?CA>�E@����?R���@

�W�������������SR������������������������������W����������S���2

�2

����������������������

@�����

TXR�������-R

2

@���

�R�����I?�����������@I

O������� �

@����

O�II

OR����II

����H?R���@

@���

O���������

@���

�$

Gabor MarkonSystems EngineerHVB Systems (Germany) © Xephon 2002

HSM recovery panel

If you use DFSMSHSM to back up/recover your files, you’ll find thislittle ISPF application very useful. It is part of a larger application Ideveloped for HSM users.

Use it to recover a dataset from HSM back-up DASD or TAPEs,choosing between several back-up generations. You can restore adataset, overriding the existing one or creating a copy on anothervolume.

Our environment is MVS/ESA or OS/390 until Release 2.10 withactive DFHSM or DFSMShsm; TSO/ISPF/DM until Release 4.5.

The command to use is RECUPERA (it is a CLIST that calls ISPFservices). Note: obviously, it won’t work if DFHSM isn’t running!

14 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

RECUPERA

Put the RECUPERA CLIST code in a member in a SYSPROCconcatenated library (member=RECUPERA), eg ISP.UISPCLIB.

It can be used in front of the dataset name in ISPF 3.4, or directly bycoding:

)-6�� B(' �0�Z%1#(- ��#:�"0)0- )[�?����������@

This will display a panel that you can fill as you wish. It cannot be usedfrom TSO READY (outside ISPF). So, first enter ISPF. This code workswell in OS/390 2.6 and 2.10. To run in MVS/ESA, first check the inputlist in dataset TEMPREC. Because of new information in OS/390, thelisting records may be slightly different (eg the back-up date columnsmay be three or four digits in length).

'�6B���"0)0- )

$�9999999999999999999999999999999999999999999999999999999999999999999�$

$���������������������������������������������������������������������$

$��� B(' �0,��� B6/ ��10B= "�('�"0)0- )�*�6#�'0& +�&0'� B6/�����������$

$�������������%&'()���"0)0- )�?"-&0# �)6�1 �� B6/ � "@����������������$

$�������������B+%-)�0--(# -�)!0)�'�6*%+ �'� *%G�%-�0B)%/0) "����������$

$�������������*6��:6(��)-6�(- �%"��)6�B! B=�%)>� &) �,����������������$

$�������������B6##0&"������)-6�'�6*%+ �+%-)���������������������������$

$�������������0&"�/ �%*:�0B)%/ �'� *%G��6)! �7%- >�- ),���������������$

$�������������B6##0&"������)-6�'�6*%+ �'� *%G?#:'� *@�����������������$

$�������������7! � �#:'� *�%-�:6(��)-6�(- �%"�������������������������$

$�9999999999999999999999999999999999999999999999999999999999999999999�$

�B6&)�6+�&6#-8�&6+%-)�&6*+(-!� &"? &"6@�&6B6&+%-)�&6'�6#')

�" + ) ��) #'� B������������������������������$��" +�) #'�%*� G%-)-���$

�!+%-)�"0)0- )?O"0)0- )@�1B"-�6"-?) #'� B@����$��61)0%&�10B=('�+%-)���$

�0++6B�*?0+@�"0?) #'� B@�-!��� (�%&'()��������$��0++6B�!-#�+%-)�������$

�6' &*%+ �0+�%&'()����������������������������$��6' &�+%-)������������$

� ��6��"6�������������������������������������$�� ��6���6()%& ��������$

��%*�O+0-)BB���<MM�)! &�86)6�*%& *%+ ���������$�� 6*�86�)6�*%& *%+ ���$

��� )(�&��������������������������������������$�����������������������$

� &"6�����������������������������������������$�� ��6���6()%& � &"����$

�B �B0,�2

�8 )*%+ �0+�����������������������������������$��8 )�0�� B�*�6#�+%-)��$

$�9999999999999999999999999999999999999999999999999999999999999999999�$

$���������������������������������������������������������������������$

$��)!%-�&6) �0''+% -�)6�+%& -�4;9<A�����������������������������������$

$�)! �*6++67%&8�B6" �%-�('"0) "�*6��6-$4EM���A��"*!-#�6()'()�+%-)%&8��$

$��)6�76�=�B6�� B)+:�%&�'� /%6(-�/ �-%6&->�B! B=�)! �6()'()�+%-)%&8���$

$��%&�)! �I) #'� BI�"0)0- )�7%)!�B#"�NB6+-�N�)6�- �)! �'6-%)%6&�6*,��$

$���10B=('�"0) ������?&67�*�6#�B6+�AD�)6�C;@��������������������������$

$���10B=('�/6+(# ����?&67�*�6#�B6+�;��)6�;C@��������������������������$

15© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

$���8 & �0)%6&�&(#1 ��?6&+:�+0-)�)76�"%8%)->�*�6#�B6+�E<�)6�E;@�������$

$��0&"�7! � �"%** � &)>�B!0&8 �)! �B6+�&(#1 �-�0-�& B --0�:�����������$

$�9999999999999999999999999999999999999999999999999999999999999999999�$

$���������������������������������������������������������������������$

$��+%& �4;94D��B! B=�$�'6-%)%6&�?10B=('�"0) @�0)�%&'()�B6+-�CM�O�C4���$

$�9999999999999999999999999999999999999999999999999999999999999999999�$

- )�10����O-)�?O-(1-)�?CM>O0+@

- )�10����O-)�?O-(1-)�?C4>O0+@

����%*�O-)�?O10���@� .�O-)�?$@�0&"�2

����O-)�?O10���@� .�O-)�?$@�)! &�"6

$�9999999999999999999999999999999999999999999999999999999999999999999�$

$���������������������������������������������������������������������$

$��+%& �4E9<;,�61)0%&�%&*6�#0)%6&�*�6#�) #'� B������������������������$

$�9999999999999999999999999999999999999999999999999999999999999999999�$

- )�O"0)0B6'�O-(1-)�?AD,C;>O0+@

- )�O8 &&(#��O-(1-)�?E<,E;>O0+@

- )�O10B=/+��O-)�?O-(1-)�?;�,;C>O0+@

- )�)�6/O8 &&(#�O-)�2

����?�O8 &&(#���O10B=/+���O"0)0B6'@

%*�O8 &&(#�M�)! &�- )�")B�O-(1-)�?AD,AE>O0+@2

���O-(1-)�?C�,C�>O0+@O-(1-)�?C<,C;>O0+@

&"6

86)6�B �B0

$�9999999999999999999999999999999999999999999999999999999999999999999�$

$���������������������������������������������������������������������$

$��0*) ��� 0"%&8�%&'()�*%+ �N) #'� BN>�%*�&6�10B=9('�*6(&">� G%)������$

$��7%)!�B6" ?��@�� +- >�"%-'+0:�)! �&0'� B6�'0& +�*%++ "�7%)!�%&*6����$

$��)0= &�*�6#�%&'()���������������������������������������������������$

$�9999999999999999999999999999999999999999999999999999999999999999999�$

�*%& *%+ ,�2

� ��6��6**

�%*�O-)�?O"0)0B6'@����)! &�"6�����������������$��%*�&6�B6'% ->�)! &���$

�7�%) �����&6�10B=('-�*6��O"0)0- )����

���� G%)�B6" ?��@�����������������������������$�� G%)�7%)!��B���������$

������������������������� &"6�����������������$�����������������������$

�B+6-*%+ �0+����������������������������������$��B+6- �%&'()�"0)0- )��$

�*� �*?0+@�����������������������������������$��*� �""&0# ����������$

�"%-+,�2

�- )��%#'%0UU���&6����������������������������$��- )�� '+0B �)6�&6����$

�������������- )�O++���O+ &8)!?O"0)0- )@������$��- )�"0)0- )�+ &8)!���$

�- )�O&"0)0- )�O-)�?O-(1-)�?�,O++9�>O-)�?O"0)0- )@@@

�- )�O&"0)0- )�O-)�?O&"0)0- )��0)O")B@

�%-' G B�"%-'+0:�'0& +?&0'� B6@���������������$��"%-'+0:�'0& +��������$

�%*�O+0-)BB���D�)! &� G%)�B6" ?M@�������������$��%*�'*4�'� -- ">� &"��$

�%*�O&"0)0- )� .��)! &�- )�O& 7"-�

� +- �- )�O& 7"-�O-)�?& 7&0# ?IO&"0)0- )I@@

�%*�O�%#'%0UU� .�&6�)! &�- )�O� '�

� +- �- )�O� '�O-)�?� '+0B @

�%*�O/6+(# �� .��)! &�"6����������������������$��%*�&6�/6+(# �'0-- "��$

�- )�O(&%)�

16 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�- )�O/6+�

���������������������� &"6

� +- �"6��������������������������������������$�� +- �?/6+�'0-- "@����$

�- )�O(&%)�O-)�?(?-:-"0@@

�- )�O/6+�O-)�?)6/6+?O/6+(# �@@

���� &"6

�%-' G B�- )#-8�#-8?&0#M4;@�������������������$��- )�%-'*�# --08 �����$

�!� B6/�O"0)0- )�8 &?O10B=8 &@�O� '�O& 7"-�O(&%)�O/6+

� G%)�B6" ?M@���������������������������������$�� G%)�B6" �U �6�������$

NAPRECO

This ISPF PANEL code must be added to an ISPPLIB concatenateddataset (member=NAPRECO), eg ISP.UISPPLIB.

@0))��" *0(+)?W2S@

�W�):' ?) G)@�B6+6�?'%&=@�!%+%) ?1+%&=@

���):' ?) G)@�B6+6�?8� &@�!%+%) ?1+%&=@

�X�):' ?) G)@�B6+6�?8� &@

�T�):' ?) G)@�B6+6�?'%&=@�!%+%) ?(-B6� @

�O�):' ?) G)@�B6+6�?)(�.@

�\�):' ?) G)@�B6+6�?8� &@

@16":

T������������������O!-#�"0)0- )�� B6/ �:T�����������OOU5"0) WOU)%# T

2

2

2�-����������������������

2������,\O"0)0- )

2��O8�������2�Q����W����SU�2?����M�����@

2�"������������������������� ���������H�����L�����SU��2?: -$&6@

2�%�O&62����������������������������?��H���II@,

2���&�������������W����S&"0)0- )

2�)����������������������������,

2���/6+(# ��W����SU�����2����?� ��������@

2

2��������������������,��

������O�8 &��/6+(# ��10B=('�"0) ���O�8 &��/6+(# ��10B=('�"0)

������\O)�6/MM���������������������\O)�6/MC

������\O)�6/M����������������������\O)�6/MD

������\O)�6/M����������������������\O)�6/ME

������\O)�6/M4���������������������\O)�6/�M

������\O)�6/M<���������������������\O)�6/��

������\O)�6/M;���������������������\O)�6/��

������\O)�6/MA���������������������\O)�6/�4

2

2'���W ��2��������>W'*42�����

@%&%)

���U/0�-���I?10B=8 &��%#'%0UU�/6+(# �@I

17© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

��%*�?O10B=8 &���II�@������O10B=8 &���IMI

��%*�?O/6+(# ����II�@������O/6+(# ����II

��%*�?O�%#'%0UU���II�@�����O�%#'%0UU���I&6I

@'�6B

��/ ��?O10B=8 &>�0&8 >M>�4>#-8�&0#M44@

��/ ��?O�%#'%0UU>&1>+%-)>: ->&6>#-8�&0#M4<@

��%*�?O�%#'%0UU���I&6I�@

�����/ ��?O&"0)0- )>&1>"-&0# @

@ &"

ISPF MESSAGE CODE

The ISPF MESSAGE CODE panel must be added to an ISPMLIBconcatenated dataset (member=NAM03), eg ISP.UISPMLIB:

&0#M44������I8 & �0)%6&�%&/0+%"I��0+0�#�: -

I-' B%*:�0�&(#1 ��%&�)! ��0&8 �M9�4I

&0#M4<������I-' B%*:�: -�6��&6I��0+0�#�: -

I-' B%*:� %)! ��: -�6��&6I

&0#M4;������I� B6/ �:�%&�'�68� --I��0+0�#�&6

I70%)�0�B�MMM%�#-8�0)� &"�6*�O"0)0- )�� B6/ �:I

Alberto MungaiSenior Systems Programmer (Italy) © Xephon 2002

Interfacing Assembler programs with IBM C

Many of the exit points and APIs (Application Programming Interfaces)provided with OS/390 and its associated services are designed to beused most easily with Assembler programs. The capabilities providedwithin Assembler programs are limited only by the skills of the coderand the security access level that can be gained. This makes the use ofAssembler code for the exits and APIs an obvious choice. That said, theease of performing certain programming tasks could be greatly improvedby using higher-level programming languages. Many of the tools andapplications developed today are written in multiple programminglanguages where the selection of the programming language can belinked more to the task at hand than to a forced use of a particularlanguage for all components.

Superficially, this makes logical sense; however, there are typically

18 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

some idiosyncrasies in moving back and forth between languageenvironments. This article describes the requirements for interfacingAssembler programs with IBM C coded subroutines and also usingAssembler subroutine calls from IBM C main programs. Both scenarioswill be demonstrated by simple, but expandable, examples.

OPTION 1 – ASSEMBLER TO C

The first situation we will consider is the use of C subroutines calledfrom Assembler programs. One example of where this could be usefulis in creating an application that will make use of the TCP/IP network.There are many C functions written for this purpose and, although thereare equivalent Assembler APIs, most of the example documentationavailable for coding a TCP/IP network application uses coded Cexamples. You can leverage this example code much more easily if itis used as demonstrated. The example in this article is nowhere near assophisticated as that just mentioned, but it will show the basics forsetting up a main Assembler program calling a C subroutine.

To create the proper calling environment, I recommend that theAssembler routine be created as a Language Environment (LE)-conforming Assembler routine. This provides one main benefit – theLE environment is created once and maintained across calls.

This provides significant performance benefits if the Assembler programmakes multiple calls to different C subroutines.

IBM provides a suite of Assembler macros that are used for thispurpose. The CEEENTRY and CEETERM macro pair can be used tocreate and terminate the LE environment. Other macros includeCEECAA, CEEDSA, and CEEPPA. These macros are all documentedin the OS/390 Language Environment for OS/390 & VM ProgrammingGuide.

The ASM2C program provided with this article shows an Assemblerprogram that creates an LE-conforming Assembler routine that is set upto run as the main enclave in the environment. It accepts an incomingparameter character string and then issues a standard Assembler CALLmacro to invoke the GETLEN C subroutine. GETLEN accepts twoparameters:

• The address of the character string that was passed to the original

19© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

program.

• The address of a data area used to return the length of the characterstring.

Obviously, more sophisticated and practical examples could be used,but I simply wanted to demonstrate the requirements for the Assemblercalling routine and the target C subroutine while also showing howflexible the options are.

For our example, if the parameter value passed to the ASM2C programwas PARM='ABCDEFG', the GETLEN subroutine will write tworecords to the SYSPRINT output DD as follows:

• Parameter data is: ABCDEFG

• Parameter length is: 7.

Upon return from the GETLEN subroutine, the ASM2C program willissue a WTO indicating the length of the parameter value as returnedfrom GETLEN.

Once the basic requirements for calling C subroutines from Assemblerprograms have been mastered, it is not difficult to see the possibilitiesthat are now available.

OPTION 2 – C TO ASSEMBLER

Once you have started to use C subroutines from your Assemblerprograms it will not be long before you want to do the reverse. This canbe extremely beneficial, especially if you need to perform someauthorized function or if there is some other operation that you arehaving difficulty performing in C. A practical use I have needed todeploy is the ability to sleep() in a non-POSIX capable C program (notto mention needing sleep() granularity finer than one second).

In this particular case, I have coded my own MySleep() C function thataccepts two integer parameters – the number of seconds and the numberof hundredths of a second that the program is to be dormant. TheMySleep() function performs some data validation and builds a characterstring parameter value in the format HHMMSSTT that gets passed tothe ASMWAIT Assembler routine. The ASMWAIT Assembler routinewill perform an STIMERM wait for the specified length of time.

20 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

The program examples provided include a C2ASM main() C programthat calls the MySleep() C subroutine. The MySleep() subroutinemakes the appropriate call to the ASMWAIT Assembler routine. A set-up/destroy macro pair, EDCPRLG and EDCEPIL, is used in theASMWAIT program to properly manage the incoming and outgoingenvironment. These macros ensure that an Assembler routine canproperly participate in a C/C++ established environment.

Recommendations

It is probably good practice to create your C programs to be re-entrantand to allow for long routine names (RENT and LONGNAME compileroptions). Either of these requires you to run the object code created bythe compiler to also be processed by a prelink step. As of OS/390 2.10,an example C compile PROC can be located in CBC.SCBCPRC(EDCC)and an example prelink PROC can be found inCEE.SCEEPROC(EDCPL). When you have multiple C object modulesthat need to be combined into a single load module, you will also needto use the prelink step. Other C/C++ compile options I make frequentuse of are the NOMAR option (program code can extend beyondcolumn 72 for RECFM=FB source files) and SSCOMM option (slashslash (//) format comments are valid). See the OS/390 C/C++ User’sGuide for information on all available compiler options.

USING C++

The comments up to now have been primarily directed to using the C/C++ compiler in C compile mode. There are some other considerationsif you want to invoke the C/C++ compiler in C++ compile mode. Firstof all, you will require an additional CPARM value of CXX. This willcause the C/C++ compiler to be activated in C++ mode. Also, compileroptions like RENT and SSCOMM should be removed because they arenot valid in C++ mode.

You can determine the compiler mode by reviewing the output from theSYSCPRT DD statement of your compile output. A standard C compilewill show an indicator like:

;A<C0M��/����M�6-$4EM�B

in the upper left-hand corner of each output page. If you are performinga C++ compile you will see something like:

21© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

;A<C0M��/����M�6-$4EM�B22

in the upper left-hand corner of each output page.

You can locate a sample C++ procedure in CBC.SCBCPRC(CBCC).

For C++ compiled programs that require a prelink step, you will needto include the CEE.SCEECPP dataset in the SYSLIB DD statement ofthe prelink step (see the JCL example for a compile and prelink later inthis article).

CONCLUSION

This article was designed to discuss Assembler to C and C to Assemblerinvocation set-up considerations and was not meant to be an in-depthdiscussion on using C/C++ (that’s another article). As your experiencewith C increases, the options available to you will expand as well. Theability to move back and forth between programming languageenvironments is a powerful mechanism that can be employed to createrobust applications and systems programming interfaces.

JCL SAMPLES

Sample JCL to compile and prelink GETLEN

As mentioned earlier, I recommend using the C prelink program(EDCPRLK) for all of your C programs even if it is not a necessaryrequirement for a specific C program. Using the C prelink step allowsyou to create re-entrant object code and allows for the use of longroutine names (greater than eight characters). It also allows you tointegrate multiple independently-created C code object modules into asingle object module that can be used in a linkedit step. Following is theJCL that can be used to compile and prelink the GETLEN C programprovided with this article:

$$�

$$ "BB'+���'�6B��%&*%+ �>����������������F�%&'()������ .(%� "

$$��B� 8-%U�I<D#I>�����������������������F�B6#'%+ ��� 8%6&�-%U

$$��B�(&�>�������������������������������F�B6#'%+ ���(&)%# �6')%6&-

$$��B'0�#�>������������������������������F�B6#'%+ ��6')%6&-

$$��B'0�#��>�����������������������������F�B6#'%+ ��6')%6&-

$$��B'0�#4�>�����������������������������F�B6#'%+ ��6')%6&-

$$��+%1'�*G�IB I>�����������������������F�'� *%G�*6��+%1�0�:�"-&

$$��+&8'�*G�IB1BI>�����������������������F�'� *%G�*6��+0&8(08 �"-&

22 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

$$��B+0&8�I "B#-8 I>�F�&6)�(- "�%&�)!%-�� + 0- ��= ')�*6��B6#'0)%1%+%):

$$��"B1DM�I?� B*#�*1>+� B+�DM>1+=-%U �4�MM@I>������F"B1�*6��+� B+�DM

$$��"B14�MM�I?� B*#�*1>+� B+�4�MM>1+=-%U ���DMM@I>�F"B1�*6��+� B+�4�MM

$$�615*%+ �>

$$��)(&%)�I-:-"0I������������������������F�(&%)�*6��) #'6�0�:�*%+ -

$$�

$$�99999999999999999999999999999999999999999999999999999999999999999

$$���B6#'%+ �-) ',

$$�99999999999999999999999999999999999999999999999999999999999999999

$$B6#'%+ � G B�'8#�B1B"�/�>� 8%6&�OB� 8-%U>

$$����'0�#�?IOB�(&$OB'0�#�OB'0�#��OB'0�#4I@

$$-) '+%1��""��"-&0# �O+%1'�*G��-B �(&>"%-'�-!�

$$���������""��"-&0# �O+&8'�*G��-B1BB#'>"%-'�-!�

$$-:-#-8-��""��"(##:>"-&�O+&8'�*G��-B1B4#-8?OB+0&8@>"%-'�-!�

$$-:-%&����""��"-&0# �O%&*%+ >"%-'�-!�

$$-:-+%1���""��"-&0# �O+%1'�*G��-B !�!>"%-'�-!�

$$���������""��"-&0# �O+%1'�*G��-B !�-:-�!>"%-'�-!�

$$-:-+%&���""��"-&0# �O615*%+ >"%-'�-!�

$$-:-'�%&)�""��-:-6()��

$$-:-6()���""��-:-6()��

$$-:-B'�)��""��-:-6()��

$$-:-()����""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>"B1�O"B1DM

$$-:-()<���""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>"B1�O"B1DM

$$-:-();���""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>"B1�O"B14�MM

$$-:-()A���""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>"B1�O"B14�MM

$$-:-()C���""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>"B1�O"B14�MM

$$-:-()D���""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>"B1�O"B14�MM

$$-:-()E���""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>

$$�������������"B1�?� B*#�/1>+� B+��4C>1+=-%U �DD�@

$$-:-()�M��""��-:-6()��

$$-:-()�<��""��(&%)�O)(&%)�>-'0B �?4�MMM>?4M>4M@@>

$$�������������"B1�?� B*#�*1>+� B+�4�MM>1+=-%U ���DMM@

$$��������' &"

$$�

$$-) '���� G B� "BB'+>B'0�#�+%-)>B'0�#��I� &)>&6- 0�B!I>

$$�B'0�#4�I&6#0�>&66')>+0&8+/+? G) &" "@>-6(�B >+6&8&0# >--B6##I>

$$���������%&*%+ �������������?8 )+ &@>

$$���������615*%+ ���Y�����������?8 )+ &6@

$$�

$$�99999999999999999999999999999999999999999999999999999999999999999

$$��'� 9+%&= "%)�-) ',

$$�99999999999999999999999999999999999999999999999999999999999999999

$$'+= "��� G B�'8#� "B'�+=>'0�#�I('B0- I>

$$����� 8%6&��M<D=

$$-:-#-8-��""��"-&0# �B �-B #-8'? "B'#-8 @>"%-'�-!�

$$-:-+%1���""��"(##:

$$��(- �)! �*6++67%&8�-:-+%1�-)0) # &)�*6��B22

$$�-:-+%1���""��"-&�B �-B B''>"%-'�-!�

$$-:-615���""��"-&���Y�����������>"%-'�-!�

$$-:-#6"���""��"-&���Y�����������?8 )+ &@>"%-'�-!�

$$-:-6()���""��-:-6()��

23© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

$$-:-'�%&)�""��-:-6()��

$$-:-%&����""���

��%&B+(" �-:-615?8 )+ &6@

LINKEDIT JCL to create ASM2C load module

Once the GETLEN object module has been created and the ASM2CAssembler module has been assembled, use the following JCL to createthe ASM2C load module:

$$% 7+����� G B��'8#�! 7+!MEA>'0�#�IG� *>+%-)>#0'>� &)I

$$-:-'�%&)�""����-:-6()��

$$-:-()����""����(&%)�-:-"0>-'0B �?B:+>?�>�@@

$$615 B)���""����"-&���Y�����������>"%-'�-!�

$$-:-+%1���""����"-&�B �-B += ">"%-'�-!�

$$-:-+#6"��""����"-&�����������>"%-'�-!�

$$-:-+%&���""�����

���%&B+(" �615 B)?0-#�B@

���%&B+(" �615 B)?8 )+ &@

��� &)�:���0-#�B

���&0# ����0-#�B?�@

Compile and prelink C2ASM

To compile and prelink the supplied C2ASM C program, use the samplecompile and prelink JCL provided earlier. Substitute all occurrences ofGETLEN with C2ASM and all occurrences of GETLENO withC2ASMO. Running the compile and prelink steps will create a C mainprogram object module.

LINKEDIT JCL to create C2ASM load module

Once the C2ASM object module has been created and the ASMWAITAssembler module has been assembled, use the following JCL to createthe C2ASM load module:

$$% 7+����� G B��'8#�! 7+!MEA>'0�#�IG� *>+%-)>#0'>� &)I

$$-:-'�%&)�""����-:-6()��

$$-:-()����""����(&%)�-:-"0>-'0B �?B:+>?�>�@@

$$615 B)���""����"-&���Y�����������>"%-'�-!�

$$-:-+%1���""����"-&�B �-B += ">"%-'�-!�

$$-:-+#6"��""����"-&�����������>"%-'�-!�

$$-:-+%&���""�����

���%&B+(" �615 B)?B�0-#@

���%&B+(" �615 B)?0-#70%)@

��� &)�:���B -)0�)

���&0# ����B�0-#?�@

24 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

ASM2C ASM

The ASCII source file for the ASM2C program referenced in the article:

�����������������������������������������������������������������������

����)H��0-#�B��� ����������������������������������������B�����

�����������������������������������������������������������������������

����)H���������� �����������Q��������������������������H�������

��������������H��������H�������������������,��������������������

�������B &)�:��������������������������������������������������������

�������B ) �#���������������������������������������������������������

�������B ''0����������������������������������������������������������

�������B "-0����������������������������������������������������������

�������B B00����������������������������������������������������������

�����������������������������������������������������������������������

����)H���������� �������������������������H��B &)�:�����,���

�������7�H�#0%&�: -,��������������������������������������������������

����������10- �������������� �����49����?�������H��������@��������

�������������������H������������H��B B00��������������������������

������������4������H������������H��B "-0��������������������������

����������'0�#� 8��H��������������������?������H��������@������

�����������������������������������������������������������������������

0-#�B����B &)�:�''0�#0%&''0>��������+��������B ''0������� ���������G

���������������0()6�76�=-%U >���������-�R�����"-0�O������������������G

���������������#0%&�: ->��������������)H���������������������������G

��������������� G B6'-�&6>������������&����������������������������G

���������������'0�#� 8���>������������������H�������������� �������G

���������������10- ����>���������������������H��������������� ������G

���������������'+%-)�!6-)�������������-������5B+�'0�#��������������

�����������������������������������������������������������������������

���������(-%&8�76�=0� 0>��4��������-������������������������ �

�����������������������������������������������������������������������

���������-)������>'0�#0""����������-����������� �����������

���������+)������>�����������������0���������L

���������1U����� )(�&M<������������&��9��������������������

���������+������4>M?>��@�����������8���������������

���������&������4>�GIC*******I�����)��������IDMI���

���������+)�����4>�4���������������0���������L

���������1U����� )(�&M<������������&��9��������������������

���������B+B���M?�>�4@>�!IMI�������0�������������L

���������1 ����� )(�&M<������������&��9��������������������

���������G�������;>��;�������������B������;

���������%B#�����;>1IMM��I>M?�4@���B������������ H

���������1B)�����;>M�������������������������������� G

��������� G������;>'0�##/B���������B����H���������

�����������������������������������������������������������������������

���������B0++��8 )+ &>����������������8 )+ &����H��B����������������G

���������������?'0�#"0)0>�������������'���������������������������G

���������������'0�#+ &@>���������������������� H��������������������G

���������������/+>#*�? >B0+++-)@

�����������������������������������������������������������������������

���������+�������;>'0�#+ &���������8������������ H

25© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

���������B/"�����;>"1+�������������B��������������

���������+�������;>"1+�2<����������+������ �������������

���������-�+�����;><���������������"����H��I�� �I

���������-)������;>"1+�������������-����H����� H

���������(&'=��"1+�?E@>"1+�?;@�����(������H�������

���������&B����"1+�?D@>�DGIM*I�����B����H� H������������

���������)�����"1+�?D@>�BIM��4<;ACDEI�#����H���������������

���������#/B���7)6�7�=?7)6�+&@>7)6�+-)�B����7)6������

���������#/B���7)6�7�=24�?<@>"1+�2<�B������������������� H

���������7)6���#*�? >7)6�7�=@������%�����7)6

�����������������������������������������������������������������������

� )(�&���"-����M!

���������+������;>� )B6" ����������+������������

���������B ) �#���B�?�;@>#*�? >B ) �#7@

� )(�&MM�"-����M!

���������#/B���� )B6" ?<@>�*IMI����-����������������

���������1������ )(�&������������������

� )(�&M<�"-����M!

���������#/B���� )B6" ?<@>�*I<I����-����������������

���������1������ )(�&������������������

�����������������������������������������������������������������������

'0�##/B��#/B���'0�#"0)0?�9�@>�?�4@�B�����������

�����������������������������������������������������������������������

7)6�+-)��7)6���I0-#�B�9�'��������� H�������������I>����������������G

����������������6()B" �?�@>" -B�?A@>#*�+

7)6�+&��� .(����97)6�+-)

�����������������������������������������������������������������������

#0%&''0��B ''0�������������������B��������������� �H������������

�����������������������������������������������������������������������

���������)H��7����������"-0������������������������������������������

�����������������������������������������������������������������������

76�=0� 0�"- B)

���������6�8�����2B "-0-U���������+��������������H��"-0���������

B0+++-)��B0++��>?M>M>M>M>M>M>M>M>M>M>M@>/+>#*�+

B ) �#7�B ) �#�#*�+

� )B6" ��"-�����*���������������������������

'0�#0""��"-�����*������������������'������������

'0�#"0)0�"-�����B+�;A��������������'������������������

'0�#+ &��"-�����*������������������'��������� H����������8 )+ &

7)6�7�=��"-�����M">B+?7)6�+&@������7)6��������

"1+������"-������"�����������������0��������

"1+������"-������"�����������������0��������

���������"-�����M"

76�=-%U � .(�����976�=0� 0

�����������������������������������������������������������������������

���������B "-0��������������������#����� ����H��"�������-����0��

���������B B00��������������������#����� ����H��B������0��H��0��

�M������� .(���M

26 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

��������� .(����

��������� .(����

�4������� .(���4

�<������� .(���<

�;������� .(���;

�A������� .(���A

�C������� .(���C

�D������� .(���D

�E������� .(���E

��M������ .(����M

��������� .(�����

��������� .(�����

��4������ .(����4

��<������ .(����<

��;������ .(����;

��������� &"

ASMWAIT ASM

The ASCII source file for the ASMWAIT program referenced in thearticle:

�����������������������������������������������������������������������

�����%&'(),�'0�#M����9�0""� --�6*�%&B6#%&8�'0�#-�����������������������

������������'0�#�����9�0""� --�6*�)! �70%)�)%# �/0+( �?D�1:) -�B!0�@���

������������'0�#�����9�0""� --�6*�70%)�)%# �- B6&"-���?<�1:) -�1%&@����

������������'0�#4����9�0""� --�6*�70%)�)%# �!(&"� )!-�?<�1:) -�1%&@����

�����������������������������������������������������������������������

����6()'(),�� )(�&�B6" �" -%8&0)%6&������������������������������������

��������������;�9���M�70%)�!0-�1 &�-(BB --*(+�������������������������

�������������������9D�%&B6�� B)�&(#1 ��6*�'0�#-�" ) B) "���������������

�������������������9E�%&B6#%&8�'0�#�'�61+ #����������������������������

�����������������������������������������������������������������������

���B1�-)�(B)(� �(- ",��������������������������������������������������

������������+6B0+�76�=0� 0�"- B)���������������������������������������

�����������������������������������������������������������������������

0-#70%)��B- B)

0-#70%)��0#6" �4�

0-#70%)���#6" �0&:

��������� "B'�+8�10- � 8����>"-0+ &�76�=+ &

���������(-%&8�70%)76�=>��4�������������0""� --01%+%):�)6�) #'�-)6�08

�����������������������������������������������������������������������

�������B6&)0%&-�)! �0""� --�6*�)! �'0-- "�'0�#�0""� --���)!� �'0�#-���

����!0/ �1 &�'0-- "�?*6�� G0#'+ �'(�'6- -@���)! �)!%�"�'0�#�0""� --���

����-!6(+"�!0/ �)! �GIDMI�!%8!�6�" ��1%)�- )�%&"%B0)%&8�)!0)�%)�%-�����

����)! �+0-)�'0�#�0""� --�?-)0&"0�"�B0++�7%)!�/+�6')%6&�'�6)6B6+@������

����B!0%&�)!�6(8!�)! �'0�#�0""� -- -�0&"�-0/ �)! #���� )(�&�9D�%*������

����)! �&(#1 ��6*�'0�#-�" ) B) "�%-�%&B6�� B)��������������������������

�����������������������������������������������������������������������

���������-)������>'0�#M�����������������-0/ �%&B6#%&8�'0�#�0""� --

27© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

���������+)������>����������������������'0�#-�6=L

���������1U����� )& 8ME�����������������&6�9�� )(�&�9E

���������+������E>����������������������B6':�'0�#�0""� --

���������+�������>M?>�E@����������������8 )�1(** ��0""� --

���������-)������>'0�#������������������-0/ �'0�#�0""� --

���������+�������><?>�E@����������������8 )�1(** ��0""� --

���������-)������>'0�#������������������-0/ �'0�#�0""� --

���������+�������>D?>�E@����������������8 )�1(** ��0""� --

���������-)������>'0�#4�����������������-0/ �'0�#�0""� --

���������)#����'0�#4>GIDMI��������������%-�)!%-�)! �+0-)�'0�#L

���������1&6���� )& 8MD�����������������&6�9�� )(�&�9D

���������&%����'0�#4>GIC*I��������������-0&%)%U �)! �GIDMI�1%)

�����������������������������������������������������������������������

�������B6&)0%&-�)! �0""� --�6*�)! �� )(�&�70%)�)%# �/0+( ��������������

�����������������������������������������������������������������������

���������+�������>'0�#������������������B6':�'0�#�0""� --

���������+������;>'0�#������������������B6':�'0�#�0""� --

���������+0������;>D��������������������- )�+66'�B6(&)

"%8%)B!=� .(����

���������B+%���M?�;@>BIMI���������������0�" B%#0+�"%8%)L

���������1+����� )& 8ME�����������������&6�9�� )(�&� ��6�

���������B+%���M?�;@>BIEI���������������0�" B%#0+�"%8%)L

���������1!����� )& 8ME�����������������&6�9�� )(�&� ��6�

���������+0�����;>�?>�;@����������������'6%&)�)6�& G)�1:)

���������1B)�����;>"%8%)B!=�������������B! B=�& G)�1:)

!6(�B!=�� .(����

���������B+B���M?�>��@>�BI�4I�����������!6(��/0+( �6=L

���������1!����� )& 8ME�����������������&6�9�� )(�&� ��6�

#%&B!=��� .(����

���������B+B����?�>��@>�BI;EI�����������#%&() �/0+( �6=L

���������1!����� )& 8ME�����������������&6�9�� )(�&� ��6�

- BB!=��� .(����

���������B+B���<?�>��@>�BI;EI�����������- B6&"�/0+( �6=L

���������1!����� )& 8ME�����������������&6�9�� )(�&� ��6�

�����������������������������������������������������������������������

����%*�7 �8 )�! � �)! �'0-- "�)%# ��/0+( �%-�-:&)0B)%B0++:�B6�� B)�����

����1(%+"�)! �& B --0�:�-)%# �#�B6#'6& &)-�����������������������������

�����������������������������������������������������������������������

���������#/B���)%# �7=�?)%# �+&�@>)%# �+-��#6/ �%&�#6" +�-)%# �#

���������-)%# �#�- )>��������������������������������������������������G

���������������%"�)%# �%"�>��������������������������������������������G

���������������70%)�: ->�����������������������������������������������G

���������������"%&)/+�?��@>��������������������������������������������G

���������������#*�? >)%# �7=�@

�����������������������������������������������������������������������

� )(�&6=� .(����

�����������������������������������������������������������������������

���������#/B���� )B6" ?<@>�*IMI���������- )�� )(�&�B6" �)6�M

�����������������������������������������������������������������������

���������1������ )(�&�������������������� )(�&

� )& 8MD� .(����

28 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

���������#/B���� )B6" ?<@>�*I9DI��������- )�� )(�&�B6" �)6�9D

���������1������ )(�&�������������������� )(�&

� )& 8ME� .(����

���������#/B���� )B6" ?<@>�*I9EI��������- )�� )(�&�B6" �)6�9E

���������1������ )(�&�������������������� )(�&

� )(�&��� .(����

���������+�������;>� )B6" ��������������+60"�� )(�&�B6"

��������� "B '%+

�����������������������������������������������������������������������

)%# �+-��-)%# �#�- )>#*�+

)%# �+&�� .(����9)%# �+-�

�����������������������������������������������������������������������

���������+)6�8

�����������������������������������������������������������������������

70%)76�=� "B"-0"

'0�#M����"-����*������������������������%&B6#%&8�'0�#�0""� --

'0�#�����"-����*������������������������0""��6*�70%)�)%# �9�!!##--!!

'0�#�����"-����*������������������������0""��6*�70%)�)%# �- B6&"-

'0�#4����"-����*������������������������0""��6*�70%)�)%# �!(&"� ")!-

� )B6" ��"-����*������������������������� )(�&�B6"

)%# �7=��"-����M">B+?)%# �+&�@����������-)%# �#�76�=�0� 0

)%# �%"��"-����"������������������������-)%# �#�%"

"1+������"-�����"�����������������������"1+�76�"�76�=�0� 0

"1+������"-�����"�����������������������"1+�76�"�76�=�0� 0

76�=+ &�� .(����970%)76�=

�M������� .(���M

��������� .(����

��������� .(����

�4������� .(���4

�<������� .(���<

�;������� .(���;

�A������� .(���A

�C������� .(���C

�D������� .(���D

�E������� .(���E

��M������ .(����M

��������� .(�����

��������� .(�����

��4������ .(����4

��<������ .(����<

��;������ .(����;

��������� &"

C2ASM.C

The ASCII source file for the C2ASM program referenced in the article:

$���)H���B��� ����������H���������?@��� �������������H�

������������#�-����?@�B����������?�����������H�H����� ��

��������� @���)H��#�-����?@���������������������������9�H�

29© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�������������������������H�������������������������������?��

����H�����H�@�H��H���� ������������

����)H��#�-����?@�������������������������������������H��

����������H��0-#70%)�0����������������)H��0-#70%)�������������

����H���������� ���������?����������������������>����H��

��������������������������������������������@���0-#70%)�����

��������������������������������������������H�� ������� ���>��

������������������-)%# �#��������H��������������� H��������

����#�-����?@�������������������������H�����������B������?@

���������������H�������������������������������������?H����

�������������������H�H�������?@��������@��������������������������$

���������F�����H�

���������F��� �H�

���������F������H�

$���%���������H����������H���������6-������ ������������������$

�������SS���������

������N6-N����0-#70%)?�H��>����>����@J

�����

���� �������� ��?0-#70%)>�6-@

������

���������#/-

���#�-����?������>����H���@

]

$���"��������������������>�������H���������������>���������

����H��0-#70%)�0���������������������������������������������������$

��H���������^�M�_�������NMMM�M�M4M<M;MAMCMDMEN

��������������������������N�M�����4�<�;�A�C�D�EN

��������������������������N�M�����4�<�;�A�C�D�EN

��������������������������N4M4�4�444<4;4A4C4D4EN

��������������������������N<M<�<�<4<<<;<A<C<D<EN

��������������������������N;M;�;�;4;<;;;A;C;D;EN

��������������������������NAMA�A�A4A<A;AAACADAEN

��������������������������NCMC�C�C4C<C;CACCCDCEN

��������������������������NDMD�D�D4D<D;DADCDDDEN

��������������������������NEME�E�E4E<E;EAECEDEENJ

��������"0:S+%#%)���������DA<MM���$$�&������������������������

��������!(&"� )!-S+%#%)����MM�����$$�&��������H�����H�������������

��������+%#%)S ��6�������9��������$$�#���H���DA>4EE������������������

��������!(&"� )!-S ��6���9��������$$�#���H���EE�H�����H�����������

����H���>�������>��������>�H����H�J

���������J

�����J

��H���������^E_J

����S�������J

��������������J

�H����H����H���J

$���#��������H������������� ����������R������$

����?��MJ��F�MJ��22@

�]

�����������^�_���MJ

�`

30 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

$���BH������������������������ ����H�������������$

����?�����������"0:S+%#%)@

�]

�������?+%#%)S ��6�@J

�`

$���BH����������������H�����H�������������� ����H����MM����$

����?H����H�����!(&"� )!-S+%#%)@

�]

�������?!(&"� )!-S ��6�@J

�`

$���B�����������������H�����������������$

�������������?�������>4AMM@J

�H�������������Q��J

$���B�������������������������������������$

��������������������J

�������������?�������>AM@J

�����������������Q��J

$���B��������������������������������������$

��������������������J

$���B�������H�������� �H�������������I!!##--!!I����$

���������H�������J

������?�������>�������2�����>�@J

�������������������J

�����?�������>�������2�����>�@J

��������������������J

�����?�������>�������2�����>�@J

���������H����H�����J

�����?�������>�������2�����>�@J

�����?N7����������W�a�N>�������@J

$���8������H��������������� H�����������$

�����0-#70%)?�������>O�������>OH����H�@J

�����?N0-#70%)?@���W�a�N>�@J

����?�@J

`

����?@

]

������J

�����#�-����?�M>�M@J����$���7�������M��M������������$

�����?N"��������� a�N@J

����?M@J

`

GETLEN.C

The ASCII source file for the GETLEN program referenced in thearticle:

$���)H��������B��� ������������H�������������������������

����0���������� ���H��H����������H���H������?@�����������)H�

����8 )+ &���������������������������������������0�������

31© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

����B0++����������H�������� ��� ���

����)H����������������������������� ��������,

�������'0�#�,�����H���������������H�������� �?�������������@

�������'0�#�,�����H���������������������������������H�

������������������ H����H����������H�������� ������������������$

���������F�����H�

���������F��� �H�

���������F������H�

$���%���������H����������H���������6-������ ������������������$

�������SS���������

������N6-N����8 )+ &?�H��>����@J

�����

���� �������� ��?8 )+ &>6-@

������

���8 )+ &?�H���������>�����������@

]

����J

$���"�������H����� H����H���H�������� �����������H�

����������� H���������H�H�����������������������������������$

��������?������@J

�����������J

����?N'������������,��W�a�N>������@J

����?N'��������� H���,��W�a�N>�������@J

����MJ

`

Systems Programmer (Canada) © Xephon 2002

Mainframe spreadsheet

We regularly receive standard reports from our branch offices inprintable format. We needed to carry out some additional calculation onthe incoming data in order to merge the reports and produce some globalfigures and trends. Our end users tried to do that using some of thestandard PC spreadsheet programs. Transferring data in both directionsand the conversion of characters caused different problems in practice.These were the reasons for writing a utility that performs calculationson table data on the OS/390 platform. Exploitation of this utility gaveus following benefits:

• We avoid transferring data from host to PC and vice versa.

• Calculations on data in standard tables are moved into production,after the initial preparation and testing of control statements.

32 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

• We can process very large tables.

PROGRAM DESCRIPTION

The CALCTAB utility program is written in the PL/I language to enableusers to calculate inside the existing tables. Additionally, the calculationprogram has the ability to check existing data.

Users write control statements to describe the input data and to specifythe calculation rules. They put them in a sequential dataset assigned tothe SYSIN DDname. The program processes the input table, calculatesdata from the table according to specified statements, and prints theresults into the same table. The following example will demonstratecalculating with CALCTAB on one simple table.

Input table���������������������������������������������������������������������������&��

�����������������-�������������D�34�3��������������������������������33�

�������������������������������������������������������������������������33�

������H�����������������������������$������������������������������334

� ���������������������������������������������������������������������� � � 33<

�����<<3����D�34�3�������������;C������>��4�<;���������������������������33;

���4A4A;A���D�34�3�������������C������4>�4;�CD���������������������������33A

������;34��3��3<�3��������������D������>�<C�EE���������������������������33C

����;ADA;��34�3<�3�������������E������C><;A�C����������������������������33D

����ACD;;��3<�3<�3���������������������>�;C�4C���������������������������33E

� � ���������������������������������������������������������������������� � 3�3

���)6)0+,����������������������������������������������������������������3��

��B����������$������H������������H��������������?�@�����������?>@�M��

Parameters in SYSIN dataset

�)�0B J

�B6+(#&-���0�?�;,44>M@��1�?4;,<A>�@�B�?<D,AM>�>I>I>I�I@�"�?A<,CM>�@J

��67-������?;,��@J

�B���1���0J

�0�����-(#?0;,0E@J

�B�����-(#?B;,BE@J

�";,"�����B;,B�����$�B������MM�J

Resulting table���������������������������������������������������������������������������&��

�����������������-�������������D�34�3��������������������������������33�

�������������������������������������������������������������������������33�

������H�����������������������������$������������������������������334

33© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

� � ���������������������������������������������������������������������� � 33<

�����<<3����D�34�3�������������;C������>��4�<;����D;D�C�A>A;�����C;�4D���33;

���4A4A;A���D�34�3�������������C������4>�4;�CD�����4��ECA>�A������A��<���33A

������;34��3��3<�3��������������D������>�<C�EE������E�ED4>E�������3��A���33C

����;ADA;��34�3<�3�������������E������C><;A�C�����ADA�3�D>�<������D�3E���33D

����ACD;;��3<�3<�3���������������������>�;C�4C������<�;�<>C<������3������33E

� � ���������������������������������������������������������������������� � 3�3

���)6)0+,���������������������<4����������������4�CE����E>C������33�33���3��

��B����������$������H������������H��������������?�@�����������?>@�M��

CONTROL STATEMENT SYNTAX

Statements are executed in the specified order. The end of the statementsis marked by a semicolon. You can type the statements in upper or lowercase; the program converts everything to capitals. There are three typesof control statements:

1 Comments, eg:

*text of comment

2 Descriptive statements:

– TRACE

– CHECK

– COLUMNS

– ROWS.

3 Executive statements (formulas).

You can specify a formula that performs mathematical operations in aformat similar to a standard PC spreadsheet program. A formula is anequation with elements to be calculated, which are separated bycalculation operators. Each element can be a cell, a range of cells, afunction, or a constant.

Comments

All rows in control datasets that have ‘*’ in the first position areconsidered as comments and the program ignores their content.

Descriptive statements

Descriptive statements must be specified in the proper order. TRACE

34 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

and CHECK are optional and must be at the beginning, followed by theCOLUMNS and ROWS, which are mandatory.

When a user specifies a TRACE statement, the program prints adetailed report about statement execution in the output list. Thisstatement is optional and can be used for better understanding theeffects of the executive statements.

Use CHECK to check figures that already exist in the table, comparingthem with just-calculated data. If a difference exists, an error messageis written, accompanied by the checked row and calculated row.

If you omit the CHECK statement, the program calculates the data asspecified by the statements. When the calculation is finished, data isstored in predefined places.

COLUMNS is a mandatory statement and has the following syntax:

���������B6+(#&-�&�����?-'�, '�>"�>I'�I>I-�I@

�����������������&�����?-'�, '�>"�>I'�I>I-�I@

�����������������������

�����������������&�����?-'�, '�>"�>I'�I>I-�I@J

COLUMNS defines the position of the columns inside the table.

Abbreviations used are:

• NAMEi – alphabetic string up to eight bytes long, first and lastcharacter must not be numeric. A function name may not be usedas a column name.

• SPi – start position of ith column

• EPi – end position of ith column

• Di – number of decimal numbers to describe precision of calculateddata in column i. If you omit it, the default value is 0.

• Pi – optional parameter that represents a decimal point – it can beonly a comma or a full stop (period).

• Si – optional parameter that means class separator – it can be onlya comma or a full stop (period), and must be different from theprevious decimal point.

Input data must be in the range from SP to EP, and output data will bejustified to the right margin EP.

35© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Example:

���������999929999�999929999�9999299994999929999<999929999;999929999A999

�������������,

����������������������K�����MK������������K��AM�MM��K���4<��;C>CMK

��������������������4�K�����;K��������<���K��C��MM��K����;��<�>�MK

Statement for defining column position:

������B6+(#&-���'�%B �?�D,�4@�0#6(&)�?<�,<E@�)6)0+�?;�,A�>�>I>I>I�I@J

ROWS is a mandatory statement, the last from the descriptive group.You can use ROWS to specify rows that take part in a calculation. Theformat of the ROWS statement looks like:

������67-�?-��, ��@�?-��, ��@�����J

where SRi stands for the starting row and ERi stands for the ending row.

If you have numeric rows intercepted by plenty of delimiters and youdon’t want to specify exactly how many numeric rows, you can specifythe first and last numeric row of the table in a single bracket in theROWS statement. The program will ignore all rows that have no datain all the specified column positions. You can check the output reportfrom CALCTAB to see which rows are eliminated from the calculation.

Executive statements

Some typical examples of formulas are:

���������)6)0+�����'�%B ���0#6(&)J

���������' �B &)���)6)0+�$�)6)0+������MM�J

���������0�E���-(#?0;,0�D,�@J

���������1�<����0&8 ?1<,1��,�@J

���������";,"�����B;,B���$�B������MM�J

In the descriptive statement COLUMNS, you have already named thecolumns of the table. Reference to a row is by its relative record numberin the editor. Following this naming convention, we use A19 to refer tothe cell at the intersection of column A and row 19. To refer to the rangeof cells, we have to start with the cell in the upper-left corner of therange, a colon, and then the reference to the cell in the lower-right cornerof the range, as in the last three examples.

Calculation operators that separate references to the cells or range ofcells are:

• + – addition

36 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

• - – subtraction

• * – multiplication

• / – division

• ** – raise to power.

The following functions can be applied to the references to cells or rangeof cells:

• SUM – sum cells in specified range.

• MIN – minimum value inside the specified range.

• MAX – maximum value inside the specified range.

• AVRG – average value in the specified range of cells.

• RANGE – difference between maximum and minimum valueinside the specified range.

These functions are chosen to meet our customers’ needs. We encouragenew users of CALCTAB to add new functions to the source code usingexisting ones as a model.

All functions can have one additional parameter inside the bracketdelimited by a colon from the reference to cell range. This parameterrepresents row step for picking values from specified ranges. It can bevery useful for tables that have rows with data intercepted withdelimiters.

An example is:

0�����-(#?0�,0D,�@J

This means that you want to sum only even rows of column A in therange from 2 to 8 and place the result in row 11.

Arithmetic operations are performed from left to right according to theorder of operator precedence. You can use parentheses to change theorder of operations.

Examples:

��������0��1�2�B���"�$�?� �9�*�@������J

��������**������-(#?00, @J

37© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

PROGRAM CALCTAB

�B0+B)01,�'�6B "(� �6')%6&-?#0%&@J

�$����������������������������"0)0- )-���������������������������������$

�"B+�)01+ ����*%+ �� B6�"�- .+>

�����76�=�����*%+ �� B6�"�- .+�= : "� &/?/-0#@>

�����-:-%&����*%+ �� B6�"�- .+�%&'()>

�����-:-'�%&)�*%+ �-)� 0#�6()'()� &/?*1�� B-%U ?�44@�1+=-%U ?4EEM@@J

�$����������������������������� B6�"-����������������������������������$

�"B+�� B6�"S)01+ �B!0�?4�CA;@�/0�J

�$�99999999�����������������������������������������99999999�$

�"B+���-)#)��10- "?'S-)#)@>

��������& G)�������')��%&%)?&(++@>��������$�'6%&)-�)6�& G)�-)0) # &)���$

��������B6+S&6�����1%&�*%G "�%&%)?M@>�����$�6�"%&0+�&(#1 ��6*�B6+(#&���$

��������B6+S&6�����1%&�*%G "�%&%)?M@>�����$�6�"%&0+�&(#1 ��6*�B6+(#&���$

���������67S&6�����1%&�*%G "?4�@�%&%)?M@>�$�6�"%&0+�&(#1 ��*�6#��67����$

���������67S&6�����1%&�*%G "?4�@�%&%)?M@>�$�6�"%&0+�&(#1 ��)6����67����$

���������67S-) '���1%&�*%G "?�;@>���������$�6�"%&0+�&(#1 ��)6�-) '�����$

��������'S0�8������')��%&%)?&(++@J��������$�'6%&)-�)6�)� �6*�-)0) # &)

�������������������������������������������� G B()%6&�$

�$�99�"���������������������H������������������'S0�8�9999�$

�"B+���0�8S6' ��10- "?'S0�8@>

��������& G)�������')��%&%)?&(++@>

��������):' �������B!0�?�@�%&%)?I�I@J

�"B+���0�8�������10- "?'S0�8@>

��������& G)�������')��%&%)?&(++@>

��������):' �������B!0�?�@�%&%)?I�I@>

��������B6+S&6�����1%&�*%G "�%&%)?M@>

��������B6+S&6�����1%&�*%G "�%&%)?M@>

���������67S&6�����1%&�*%G "?4�@�%&%)?M@>

���������67S&6�����1%&�*%G "?4�@�%&%)?M@>

���������67S-) '���1%&�*%G "?�;@�%&%)?�@J

�"B+���0�8SB6&-)���10- "?'S0�8@>

��������& G)�������')��%&%)?&(++@>

��������):' �������B!0�?�@�%&%)?I�I@>

��������&(#1 ������1%&�*+60)?;4@�%&%)?M@J

�$�999999�7�������������������� ���������������9999999999999999�$

�"B+���76�=S� B6�"�10- "?'S7�@>

��������& G)����������')��%&%)?&(++@>

���������67S&6��������1%&�*%G "?4�@>����������$�6�"%&0+�&(#1 ��6*��67�$

��������B6+-S&(#������1%&�*%G ">��������������$�&(#1 ��6*�B6+(#&-��$

��������"0)0?B6+-S&6��� * �?B6+-S&(#@@�1%&�*+60)?;4@�%&%)??B6+-S&6@M@>

�����������������������������������������$�%-�)! � �0&:�B!0&8 "�"0)0L�$

��������%&"SB!0&8 ?B6+-S&6�� * �?B6+-S&(#@@�1%)�%&%)??B6+-S&6@IMI1@J

�$�999999�7����������� ��������������������������99999999999999�$

�"B+���7S-)#)>

���������):' ����B!0�?�@>

���������B6+S&6��1%&�*%G ">

���������B6+S&6��1%&�*%G ">

����������67S&6��1%&�*%G "?4�@>

����������67S&6��1%&�*%G "?4�@>

����������67S-) '�1%&�*%G "?�;@J

38 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�$�99�%����������������99999999999999999999999999999999999999999999�$

�"B+�%&" GS76�=S� B6�"?&6S)01+ S� B6�"-@�')��B)+

�����%&%)??&6S)01+ S� B6�"-@�&(++@J

�$�99�B�����������������99999999999999999999999999999999999999999999�$

�"B+���B6+-?B6+-S&6@�B)+>

��������B6+S&0# ��������B!0�?D@�/0�>

��������*�6#S'6-%)%6&���1%&�*%G ">

��������)6S'6-%)%6&�����1%&�*%G ">

��������&6S6*S" B%#0+-��1%&�*%G ">

��������" B%#0+S'6%&)���B!0�?�@>

��������- '0�0)6��������B!0�?�@J

�$�99����������������9999999999999999999999999999999999999999999999�$

�"B+����67-?�67-S&6@�B)+>

��������*�6#S'6-%)%6&�1%&�*%G "?4�@>

��������)6S'6-%)%6&���1%&�*%G "?4�@J

�$����������������������������76�=�/0�%01+ -���������������������������$

�"B+�?.>�'S0�8>�''-�@�')�J

�"B+�?'S-)#)>�'S-)#)S�66)�%&%)?&(++@>�''S-)#)@�')�J

�"B+�?'S7�>�'S7�S�66)�%&%)?&(++@>�''S7�@�')�J

�"B+�?B6+-S&6�%&%)?9�@>�B@�1%&�*%G ">

�����?�67-S&6�%&%)?9�@>�&6S)01+ S� B6�"-@�1%&�*%G "?4�@J

�"B+�&6)S 6*S)01+ �1%)�%&%)?I�I1@J

�"B+�?%&"SB! B=�%&%)?IMI1@>�%&"S)�0B �%&%)?IMI1@@�1%)J

�"B+�B!?9�,4�CA;@���B!0�?�@���10- "?.@>

�����+ &S� BS-)#)���1%&�*%G "�10- "?.@J

�"B+�&6SB ++S%&S� -(+)�1%&�*%G "?4�@J

�"B+�7��'%BIUUUUUUEIJ

�$����������������������������1(%+)%&�*(&B)%6&-������������������������$

�"B+�?0""�>�&(++>�-(1-)�>�%&" G>�)�0&-+0) >�01->�-%8&>�6&B6" >

������#%&>�+ &8)!>�/ �%*:>�� ' 0)>�0&:>�0++>�'+%� )B@�1(%+)%&J

�$����������������������������'�6B "(� -�������������������������������$

�6&� ��6��-&0'�-:-) #J

�6&� &"*%+ ?)01+ @��&6)S 6*S)01+ ���IMI1J

�$�99�+�������������������������������������������������������$

�B0++�8 )S-)0) # &)-J

�$�99�B����� ����������������������9999999999999999999999999999�$

�.���0""�?� B6�"S)01+ @J

�B0++�B6':S)01+ S%&S76�=S1(**J

�$�99�B��������������������99999999999999999999999999999999999999�$

�B0++�B0+B(+0) J

�%*�%&"SB! B=

�$�99�B! B=�����������������������������999999999999999999999999�$

�)! &�B0++�B! B=S"0)0S%&S)01+ J

�$�99�B����� ����������������������9999999999999999999999999999�$

� +- �B0++�7�%) SB6(&)S"0)0S%&)6S)01+ J

�$�99�*������������999999999999999999999999999999999999999999999999�$

�"6�'S7����'S7�S�66)�7!%+ ?'S7��P��&(++@J

����''S7����76�=S� B6�"�& G)J

����*� �76�=S� B6�"J

����'S7����''S7�J

� &"J

�$����������������������������76�=�'�6B "(� -��������������������������$

39© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�$��'�6B "(� �"6 -�+ G%B0+�0&0+:- -�6*�-)0) # &)-�0&"�0BB6�"%&8�)6�����$

�$��)! #�B6&/ �)-� G B()%/ �-)0) # &)-�*�6#�%&*%G�)6�'� *%G�'6+%-!�����$

�$��&6)0)%6&�����������������������������������������������������������$

�$���������������������������������������������������������������������$

�8 )S-)0) # &)-,�'�6B "(� J

�"B+��� B6�"S-)#)�B!0�?;��@�/0�>

������6' ��B!0�?�@>

������?%>�5>�=>�+>�1U�%&%)?M@@�1%&�*%G ">

������''�')�>

������?&6)S &"S-)#)>�&6)S 6*S-:-%&�%&%)?I�I1@@�1%)�0()6J

�6&� &"*%+ ?-:-%&@��&6)S 6*S-:-%&�IMI1J

�$�99�8�����������������������������R��H���999999999999999999�$

�'()�-=%'� "%)?I����8 )�-)0) # &)-�I>� ' 0)?I�I>;4@@�?0@J

�.�0""�?� B6�"S-)#)@J

�%����& G)S&6&1+0&=�?+ &S� BS-)#)2�@J

�%*�-(1-)�?� B6�"S-)#)>%>;@���IB! B=I�K

����-(1-)�?� B6�"S-)#)>%>;@���I)�0B I

�)! &�"6�5�����)6��J

���������%*�-(1-)�?� B6�"S-)#)>%>;@���IB! B=I

���������)! &�"6J

��������������%&"SB! B=���I�I1J

��������������%����& G)S-)#)�?%2;@J

�������������� &"J

���������%*�-(1-)�?� B6�"S-)#)>%>;@���I)�0B I

���������)! &�"6J

��������������%&"S)�0B ���I�I1J

��������������%����& G)S-)#)�?%2;@J

�������������� &"J

������ &"J

�$�99�8��������������������99999999999999999999999999999999999999�$

�B0++��8 )SB6+(#&-�J

�$�99�8����������������999999999999999999999999999999999999999999�$

�B0++��8 )S�67-�J

�$�99�8�������������������������������H���99999999999999999999�$

�B0++��8 )S0�%)# )%BS-)#)-�J

�$�9999999999999999�'���������������������9999999999999999999999�$

�%*�%&"S)�0B

�)! &�"6J

������'()�-=%'� "%)?I�I>I����)�0B �%&*6�#0)%6&�I>� ' 0)?I�I><D@@

�������������������?0>-=%'>���0@J

������'()�-=%'�"0)0?%&"SB! B=>%&"S)�0B @J

������'()�-=%'� "%)?I99�B6+(#&-�" *%&%)%6&�99999999999999999999I@�?0@J

������"6�%�����)6�B6+-S&6J

���������'()�-=%'�"0)0?B6+-?%@@J

������ &"J

������'()�-=%'� "%)?I99��67-�" *%&%)%6&�999999999999999999999999I@�?0@J

������"6�%�����)6��67-S&6J

���������'()�-=%'�"0)0?�67-?%@@J

������ &"J

������"6�''S-)#)���'S-)#)S�66)�� ' 0)?''S-)#)9�-)#)�& G)@

�������������������7!%+ ?''S-)#)�P��&(++@J

���������B0++�'�%&)S-)#)?''S-)#)@J

40 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

������ &"J

������ &"J

�$���������������������������������������������������������������������$

�$��'�6B "(� �*%&"-�& G)�&6&1+0&=�-:#16+�%&�-)0) # &)-�����������������$

�$��0&"�-=%'�B6## &)-��������������������������������������������������$

�$���������������������������������������������������������������������$

��& G)S&6&1+0&=�,�'�6B "(� ?5@�� )(�&-?1%&�*%G "@J

���"B+�5�1%&�*%G "J

���"6�(&)%+?P�&6)S 6*S-:-%&�K�5�F��+ &S� BS-)#)@J

������%*�5���+ &S� BS-)#)�O�&6)S 6*S-:-%&

������)! &�"6J

������������ 0"�*%+ ?-:-%&@�%&)6?� B6�"S-)#)@J

�����������+ &S� BS-)#)��#%&?C�>+ &8)!?� B6�"S-)#)@@J

�����������%*�&6)S 6*S-:-%&

�����������)! &�'()�-=%'� "%)?� B6�"S-)#)@�?0@J

�����������5��J

����������� &"J

������"6�5�5�)6�+ &S� BS-)#)�7!%+ ?B!?5@�I�I@J

������ &"J

������%*�5���O�B!?5@���I�I�$��-=%'�B6## &)��$

������)! &�5�+ &S� BS-)#)2�J

�$�99�B������ ����������������������������������9999999999�$

������� B6�"S-)#)���)�0&-+0) ?� B6�"S-)#)>I01B" *8!%5=+#&6'.�-)(/7G:UI>

������������������������������������������I������ H�Y������Q������RI@J

��� &"J

���&6)S &"S-)#)���?&6)S 6*S-:-%&�O�B!?5@�P��I; IG@J

�� )(�&?5@J

� &"��& G)S&6&1+0&=�J

�$���������������������������������������������������������������������$

�$��'�6B "(� �%&*6�#-�016()�-:&)0G� ��6��������������������������������$

�$���������������������������������������������������������������������$

��-:&)0GS ��6��,�'�6B "(� ?#-8@J

��"B+�#-8�B!0�?�@J

�$�99�'���������������������������������������H�����99999999�$

��'()�-=%'� "%)?I�I>I�F99�'6-%)%6&I>%@�?G?%9�@>0>0>0@J

��'()�-=%'� "%)?I���� ��6��I>#-8@�?0@J

��%*�1U�M

��)! &�'()�-=%'� "%)?I��%8!)�'0� &)! -%-�%-�#%--%&8�I>1U@�?0@J

��%*�1UFM

��)! &�'()�-=%'� "%)?I�LLLLL�6*��%8!)�'0� &)! -%-��I>91U@�?0@J

��B0++�'+%� )B?��@J

�� G%)J

� &"��-:&)0GS ��6��J

�$���������������������������������������������������������������������$

�$��'�6B "(� �*%&"-�1 8%&&%&8�6*�)! �& G)�-)0) # &)��������������������$

�$���������������������������������������������������������������������$

��& G)S-)#)�,�'�6B "(� ?5@�� )(�&-?1%&�*%G "@J

���"B+�5�1%&�*%G "J

���%����& G)S&6&1+0&=�?5@J

���%*�&6)S &"S-)#)

���)! &�B0++��-:&)0GS ��6��?I G' B) "�IKKI; IG@J

41© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

���%����& G)S&6&1+0&=�?%2�@J

�� )(�&?%@J

� &"��& G)S-)#)�J

�$���������������������������������������������������������������������$

�$��'�6B "(� �*%&"-� G' B) "�B!0�0B) ����������������������������������$

�$���������������������������������������������������������������������$

��*%&"SB!0��,�'�6B "(� ?5>B>%&"S#0&"0)6�:>#-8@�� )(�&-?1%&�*%G "@J

���"B+�?%>5@�1%&�*%G "J

���"B+�B�B!0�?�@J

���"B+�%&"S#0&"0)6�:�1%)J

���"B+�#-8�B!0�?�@J

���"6�%�5�)6�+ &S� BS-)#)�7!%+ ?�B!?%@�P��I; IG�O

�������������/ �%*:?B!?%@>I29�$?@>��,III@�P��M@J

��� &"J

���%*�%&"S#0&"0)6�:�O�B!?%@�P��B

���)! &�B0++��-:&)0GS ��6��?I G' B) "�NIKKBKKIN�IKK#-8@J

��� )(�&?%@J

� &"��*%&"SB!0��J

�$���������������������������������������������������������������������$

�$��'�6B "(� �8 )�&(# �%B-���������������������������������������������$

�$���������������������������������������������������������������������$

��8 )S%&)S&(#1 ��,'�6B "(� ?-)�>%&"S'6-%)%/>" -B�%')%6&S) G)@

�������������������� )(�&-?1%&�*%G "?4�@@J

���"B+�-)��B!0�?�@J

���"B+�%&"S'6-%)%/�1%)J

���"B+�" -B�%')%6&S) G)�B!0�?�@J

���"B+�&������1%&�*%G "?4�@J

���%*�/ �%*:?-)�>IM��4<;ACDE�I@P�M�K�+ &8)!?-)�@���M

���)! &�"6J

��������'()�-=%'� "%)?I�I>-)�>IFI@�?0@J

��������B0++��-:&)0GS ��6��

�������������?I G' B) "�&(# �%B-�*6��" *%&%)%6&�IKK" -B�%')%6&S) G)@J

�������� &"J

���8 )�-)�%&8?-)�@�+%-)?&@J

���%*�%&"S'6-%)%/�O�&�F��M

���)! &�B0++��-:&)0GS ��6��

�����������?" -B�%')%6&S) G)KKI�#(-)�1 �8� 0) ��)!0&�MI@J

��� )(�&?&@J

� &"��8 )S%&)S&(#1 ��J

�$���������������������������������������������������������������������$

�$��'�6B "(� �8 )-�B6+(#&-�" *%&%)%6&-���������������������������������$

�$���������������������������������������������������������������������$

��8 )SB6+(#&-�,�'�6B "(� J

�"B+�+�1%&�*%G "J

�"B+�?'S7SB6+->�'S7SB6+-S�66)�%&%)?&(++@>�''7@�')�J

�"B+�''�')��%&%)?&(++@J

�$�99�7���������������� �������������������������999999999999�$

�"B+���7SB6+-�10- "?'S7SB6+-@>

��������& G)�������')��%&%)?&(++@>

��������B6+S&0# ��������B!0�?D@�/0�>

��������*�6#S'6-%)%6&���1%&�*%G ">

42 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

��������)6S'6-%)%6&�����1%&�*%G ">

��������&6S6*S" B%#0+-��1%&�*%G "�%&%)?M@>

��������" B%#0+S'6%&)���B!0�?�@�%&%)?I�I@>

��������- '0�0)6��������B!0�?�@�%&%)?I�I@J

�%��-(1-)�?� B6�"S-)#)>%>C@�P��IB6+(#&-I

�)! &�B0++��-:&)0GS ��6��?I G' B) "�NB6+(#&-N�" *%&%)%6&-I@J

�%����& G)S&6&1+0&=�?%2C@J

�''7���0""�?'S7SB6+-S�66)@J

�"6�B6+-S&6�����1:���7!%+ ?&6)S 6*S-:-%&�O�B!?%@�P��I; IG@J

����0++6B�7SB6+-J

����''79�7SB6+-�& G)���'S7SB6+-J

����''7���'S7SB6+-J

����7���B6+-S&6J

�$�99�8��B���&����99999999999999999999999999999999999999999999999999�$

����%*�B!?%@����IMI�O�B!?%@�F��IEI

����)! &�B0++��-:&)0GS ��6��?IB6+(#&�&0# �1 8%&-�7%)!�&(# �%B�XI@J

����5����*%&"SB!0��?%>I�I>I�I1>I0*) ��B6+(#&�&0# I@J

����"6�+���59��)6�%�1:�9��7!%+ ?B!?+@���I�I@J

���� &"J

����%*�B!?+@����IMI�O�B!?+@�F��IEI

����)! &�B0++��-:&)0GS ��6��?IB6+(#&�&0# � &"-�7%)!�&(# �%B�XI@J

����+���+�9�%�2��J

����%*�+���M

����)! &�B0++��-:&)0GS ��6��?IB6+(#&�&0# �%-�&6)�" *%& "I@J

����%*�+���D

����)! &�B0++��-:&)0GS ��6��?IB6+(#&�&0# � GB "-�D�B!0�0B) �-�IKK

�����������������������������-(1-)�?� B6�"S-)#)>%>+@@J

����%*��B! B=S*(&B)%6&S&0# �?-(1-)�?� B6�"S-)#)>%>+@@�P��I�I

����)! &�B0++��-:&)0GS ��6��?IB6+(#&�&0# �%-� .(0+�0-�*(&B)%6&�&0# I@J

����7SB6+-�B6+S&0# ���-(1-)�?� B6�"S-)#)>%>+@J

����%����& G)S&6&1+0&=�?5�2��@J

����%*�B!?%@�P��I?I

����)! &�B0++��-:&)0GS ��6��?I G' B) "�N?N�*6��" *%& "�B6+(#&-

����IKK7@J

�$�99�8��-)0�)�����������������������������9999999999999999999999�$

����%���%�2��J

����5��*%&"SB!0��?%>I,I>I�I1>I1 )7 &�-)0�)�O� &"�'6-%)%6&�6*�B6+(#&I@J

����7SB6+-�*�6#S'6-%)%6&��8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

���������������������������������I�I1>�I-)0�)�'6-%)%6&�6*�B6+(#&-�IKK7@J

����%*�?''�P��&(++@

����)! &�%*�''9�7SB6+-�)6S'6-%)%6&���7SB6+-�*�6#S'6-%)%6&

���������)! &�B0++��-:&)0GS ��6��?

��������������I'� /%6(-� &"�'6-%)%6&�%-�8� 0)! ��)! &�-)0�)�'6-%)%6&I@J

�$�99�8�� &"�����������������������������999999999999999999999999�$

����%���5�2��J

����5����*%&"SB!0��?%>I>I>IMI1>II@J

����7SB6+-�)6S'6-%)%6&��8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

���������������������������������I�I1>�I &"�'6-%)%6&�6*�B6+(#&-�IKK7@J

����%*�7SB6+-�*�6#S'6-%)%6&���7SB6+-�)6S'6-%)%6&

����)! &�B0++��-:&)0GS ��6��?I &"�'6-��%-�+ --�)! &�-)0�)�'6-%)%6&I@J

�$�99�8��&6�6*�" B%#0+-�%&�H����������9999999999999999999999999999�$

43© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

����%*�B!?5@���I>I

����)! &�"6J

���������%���5�2��J

���������5����*%&"SB!0��?%>I>I>IMI1>II@J

���������7SB6+-�&6S6*S" B%#0+-����8 )S%&)S&(#1 ��

������������?-(1-)�?� B6�"S-)#)>%>59%@>�IMI1>I" B%#0+-�6*�B6+(#&-�IKK7@J

���������%*�7SB6+-�&6S6*S" B%#0+-���

�����������?7SB6+-�)6S'6-%)%6&�9�7SB6+-�*�6#S'6-%)%6&@

���������)! &�B0++��-:&)0GS ��6��

�������������?I" B%#0+-�%-�+0�8 ��)! &�B6+(#&�+ &8)!I@J

���������%���5J

���������%*�B!?%@��I>I

���������)! &�"6J

��������������7SB6+-�" B%#0+S'6%&)����8 )SB6&-)�

�������������������������������������?I" B%#0+�'6%&)�B!0�0B) �I@J

��������������%����*%&"SB!0��?%>IIII>IMI1>II@J

��������������%*�B!?%@��I>I

��������������)! &�7SB6+-�- '0�0)6�����8 )SB6&-)�

�������������������������������������?I- '0�0)6��B!0�0B) �I@J

��������������%*�7SB6+-�" B%#0+S'6%&)���7SB6+-�- '0�0)6�

��������������)! &�B0++��-:&)0GS ��6��

���������������������?I" B%#0+�'6%&)�0&"�- '0�0)6��#(-)�1 �"%** � &)I@J

�������������� &"J

���������5����*%&"SB!0��?%>I@I>I�I1>I0)� &"�6*�B6+(#&�" *%&%)%6&I@J

��������� &"J

����%����& G)S&6&1+0&=�?52�@J

����''���'S7SB6+-J

� &"J

�B6+-S&6���B6+-S&6�9��J

�0++6B�B6+-J

�"6�B�����)6�B6+-S&6J

����'S7SB6+-���'S7SB6+-S�66)J

����B6+-?B@���7SB6+->�1:�&0# J

����'S7SB6+-S�66)���7SB6+-�& G)J

����*� �7SB6+-J

� &"J

�%����& G)S-)#)�?%@J

� &"��8 )SB6+(#&-�J

��8 )SB6&-)�,'�6B "(� ?#-8@�� )(�&-?B!0�?�@@J

�"B+�#-8�B!0�?�@J

�"B+�B!��B!0�?�@J

�%����*%&"SB!0��?%2�>IIII>I�I1>I*6��IKK#-8@J

�%���%�2��J

�B!����B!?%@J

�%*�B!?%@�P��I�I�O�B!?%@�P��I>I

�)! &�B0++��-:&)0GS ��6��?I" B%#0+-�'6%&)�#(-)�1 �N�N�6��N>NI@J

�%���%�2��J

�%*�B!?%@�P��IIII

�)! &�B0++��-:&)0GS ��6��?I#%--%&8�NIIN�0)� &"�6*�IKK#-8@J

�%����& G)S&6&1+0&=�?%2�@J

�� )(�&?B!�@J

44 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

� &"��8 )SB6&-)�J

�$���������������������������������������������������������������������$

�$��'�6B "(� �8 )-��67-�" *%&%)%6&-������������������������������������$

�$���������������������������������������������������������������������$

��8 )S�67-�,�'�6B "(� J

�"B+�?5>=@�1%&�*%G "J

�"B+�?'S7S�67->�'S7S�67-S�66)�%&%)?&(++@>�''7@�')�J

�$�99�7���������������� �������������������������999999999999�$

�"B+���7S�67-�10- "?'S7S�67-@>

��������& G)����������')��%&%)?&(++@>

��������*�6#S'6-%)%6&�1%&�*%G "?4�@>

��������)6S'6-%)%6&���1%&�*%G "?4�@J

�%��-(1-)�?� B6�"S-)#)>%><@�P��I�67-I

�)! &�B0++��-:&)0GS ��6��?I G' B) "�N�67-N�" *%&%)%6&-I@J

�%����& G)S&6&1+0&=�?%2<@J

�''7���0""�?'S7S�67-S�66)@J

�"6��67-S&6�����1:���7!%+ ?&6)S 6*S-:-%&�O�B!?%@�P��I; IG@J

����0++6B�7S�67-J

����''79�7S�67-�& G)���'S7S�67-J

����''7���'S7S�67-J

����7����67-S&6J

����%*�B!?%@�P��I?I

����)! &�B0++��-:&)0GS ��6��?I G' B) "�N?N�*6��B6+(#&�" *%&%)%6&�IKK7@J

�$�999�8��-)0�)��������������������������999999999999999999999999�$

����%���%�2��J

����5����*%&"SB!0��?%>I,I>I�I1>I1 )7 &�-)0�)�O� &"�'6-%)%6&�6*��67I@J

����7S�67-�*�6#S'6-%)%6&��8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

������������������������������������I�I1>�I-)0�)�'6-%)%6&�6*��67�IKK7@J

�$�99�8�� &"�������������������������9999999999999999999999999999�$

����%���5�2��J

����5����*%&"SB!0��?%>I@I>I�I1>I0)� &"�6*��67�" *%&%)%6&I@J

����7S�67-�)6S'6-%)%6&����8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

������������������������������������I�I1>�I &"�'6-%)%6&�6*��67-�IKK7@J

����%*�7S�67-�*�6#S'6-%)%6&���7S�67-�)6S'6-%)%6&

����)! &�B0++��-:&)0GS ��6��?I &"�'6-%)%6&�%-�+ --�)! &�-)0�) "XI@J

����%����& G)S&6&1+0&=�?52�@J

� &"J

��67-S&6����67-S&6�9��J

�0++6B��67-J

�"6�=�����)6��67-S&6J

����'S7S�67-���'S7S�67-S�66)J

�����67-?=@���7S�67->�1:�&0# J

����'S7S�67-S�66)���7S�67-�& G)J

����*� �7S�67-J

� &"J

�%����& G)S-)#)�?%@J

� &"��8 )S�67-�J

�$���������������������������������������������������������������������$

�$���'�6B "(� �B! B=-�-:&)0G�0&"�8 )-�" *&-�6*� G B()%/ �-)0) # &)-����$

�$���������������������������������������������������������������������$

��8 )S0�%)# )%BS-)#)-�,�'�6B "(� J

45© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�''S-)#)���0""�?'S-)#)S�66)@J

�"6�7!%+ ?&6)S 6*S-:-%&@J

�$�99�8��B���&����99999999999999999999999999999999999999999999999999�$

����0++6B�-)#)J

����''S-)#)9�-)#)�& G)���'S-)#)J

����''S-)#)���'S-)#)J

����B0++��8 )S%&) �/0+�?I%&�0�%)!# )%B�-)0) # &)I@J

����-)#)���7S-)#)>�1:�&0# J

����&6SB ++S%&S� -(+)���?-)#)�B6+S&6��9�-)#)�B6+S&6��2��@��

������������������������?-)#)��67S&6��9�-)#)��67S&6��2��@J

����%*�B!?%@�P��I�I

����)! &�B0++��-:&)0GS ��6��?I G' B) "�N�N�%&�0�%)!# )%B�-)0) # &)I@J

���� +- �%����& G)S&6&1+0&=�?%2�@J

����-)#)�'S0�8����'�6BS �?&(++@J

����%����& G)S-)#)�?%@J

� &"J

� &"��8 )S0�%)# )%BS-)#)-�J

�$���������������������������������������������������������������������$

�$��'�6B "(� �8 )-�%&) �/0+��67�0&"$6��B6+�%&�0�%)!# )%B�-)0) # &)�����$

�$���������������������������������������������������������������������$

��8 )S%&) �/0+�,�'�6B "(� ?#-8@J

�"B+�#-8�B!0�?�@J

�7S-)#)�):' ���I�IJ

�5����B! B=SB6+S&0# �?I�I1@J

�7S-)#)�B6+S&6����5J

�%���%�2�+ &8)!?B6+-?5@�B6+S&0# @J

�$�99�8������&����99999999999999999999999999999999999999999999999999�$

�5����*%&"SB!0��?%>I,I>IMI1>II@J

�%*�B!?%@����IMI�O�B!?%@�F��IEI

�)! &�7S-)#)��67S&6�����8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

����������������������������������������I�I1>�I�67�&6��IKK#-8@J

� +- �7S-)#)��67S&6����MJ

�%*�7S-)#)��67S&6�����67-?�67-S&6@�)6S'6-%)%6&

�)! &�B0++��-:&)0GS ��6��?I�67�%-�&6)�%&��67-�" *%&%)%6&�XI@J

�$�99�8������&������������9999999999999999999999999999999999999999�$

�%*�B!?5@���I,I

�)! &�"6J

������%����& G)S&6&1+0&=�?52�@J

������B����B! B=SB6+S&0# �?I�I1@J

������7S-)#)�B6+S&6����BJ

������%���%�2�+ &8)!?B6+-?B@�B6+S&0# @J

������5����*%&"SB!0��?%>I�I>IMI1>II@J

������%*�B!?%@����IMI�O�B!?%@�F��IEI

������)! &�7S-)#)��67S&6�����8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

���������������������������������������������I�I1>�I�67�&6��IKK#-8@J

������ +- �7S-)#)��67S&6����MJ

������ &"J

� +- �"6J

������7S-)#)�B6+S&6����7S-)#)�B6+S&6�J

������7S-)#)��67S&6����MJ

������ &"J

46 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�%*�7S-)#)��67S&6�����67-?�67-S&6@�)6S'6-%)%6&

�)! &�B0++��-:&)0GS ��6��?I�67�%-�&6)�%&��67-�" *%&%)%6&�XI@J

�$�99�8��-�����������999999999999999999999999999999999999999999999�$

�%*�B!?5@���I,I

�)! &�"6J

������%���5�2��J

������5����*%&"SB!0��?%>I@I>I�I1>I0)� &"�6*�" *%&%)%6&�0�8(# &)-I@J

������7S-)#)��67S-) '����8 )S%&)S&(#1 ��?-(1-)�?� B6�"S-)#)>%>59%@>

�������������������������������������I�I1>�I-) '�IKK#-8@J

������ &"J

� +- �7S-)#)��67S-) '����J

�%*�7S-)#)��67S&6����M�O�7S-)#)��67S&6����M

�)! &�7S-)#)��67S&6����7S-)#)��67S&6�J

�%����& G)S&6&1+0&=�?5@J

� &"��8 )S%&) �/0+�J

�$���������������������������������������������������������������������$

�$�'�6B "(� �B! B=-�B6+(#&�&0# �" *%&%)%6&�0&"�� )(�&-�B6+(#&�6�" ��&6�$

�$���������������������������������������������������������������������$

��B! B=SB6+S&0# �,�'�6B "(� ?%&"S#0&"0)6�:@�� )(�&-?1%&�*%G "@J

�"B��%&"S#0&"0)6�:�1%)J

�"B+�?5>+@�1%&�*%G "J

����"6�5�����)6�B6+-S&6

�����������(&)%+?�B6+-?5@�B6+S&0# ���-(1-)�?� B6�"S-)#)>%>+@@J

�������+���+ &8)!?B6+-?5@�B6+S&0# @J

���� &"J

����%*�%&"S#0&"0)6�:�O�5���B6+-S&6

����)! &�B0++��-:&)0GS ��6��?IB6+(#&�&0# �"6 -�&6)� G%-)�XI@J

�� )(�&?5@J

� &"��B! B=SB6+S&0# �J

�$���������������������������������������������������������������������$

�$�'�6B "(� �B! B=-�*(&B)%6&�&0# �0&"�� )(�&-�%&) �&0+�*(&B)%6&�&(#1 ��$

�$���������������������������������������������������������������������$

��B! B=S*(&B)%6&S&0# �,�'�6B "(� ?*(&B)%6&S&0# @�� )(�&-?B!0�?�@@J

�"B��*(&B)%6&S&0# �B!0�?�@J

�"B��*(&B)%6&S%&) �&0+S%" &)�B!0�?�@J

�- + B)?*(&B)%6&S&0# @J

�7! &?I-(#I@����*(&B)%6&S%&) �&0+S%" &)���I�IJ

�7! &?I#(+I@����*(&B)%6&S%&) �&0+S%" &)���I�IJ

�7! &?I#%&I@����*(&B)%6&S%&) �&0+S%" &)���I4IJ

�7! &?I#0GI@����*(&B)%6&S%&) �&0+S%" &)���I<IJ

�7! &?I0/�8I@���*(&B)%6&S%&) �&0+S%" &)���I;IJ

�7! &?I�0&8 I@��*(&B)%6&S%&) �&0+S%" &)���IAIJ

�6)! �7%- ������*(&B)%6&S%&) �&0+S%" &)���I�IJ

� &"J�$��- + B)��$

�� )(�&?*(&B)%6&S%&) �&0+S%" &)@J

� &"��B! B=S*(&B)%6&S&0# �J

�$���������������������������������������������������������������������$

�$��'�6B "(� �B! B=-�-:&)0G��%8!)�*�6#� .(0+�-%8&�0&"�1(%+"-�%&) �&0+��$

�$��B!0%&�6*�-)�(B)(� -�7!%B!�� '� - &)�0�%)!# )%B�-)0) # &)�%&�'� *%G�$

�$��&6)0)%6&�����������������������������������������������������������$

�$���������������������������������������������������������������������$

47© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

��'�6BS �,�'�6B "(� ?'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�"B+�-%8&�B!0�?�@�%&%)?I�I@J

�$�99�-%8&�6*�0�8(# &)�9999999999999999999999999999999999999999999999�$

�%*�B!?%@���I2I�K�B!?%@���I9I

�)! &�"6J

������-%8&���B!?%@J

������%���%�2��J

������ &"J

�'S*%�-)S +����'�6BS)�?'S+0-)S +@J

�%*�-%8&���I9I

�)! &�"6J

������0++6B�0�8S6' �J

������0�8S6' ��& G)���'S*%�-)S +J

������0�8S6' ��):' ���I�IJ

������'S*%�-)S +���'S0�8J

������ &"J

�%*�&6)S &"S-)#)�O�?6' ��I2I�K�6' ��I9I@

�)! &�'S*%�-)S +���� S+%-)�?'S*%�-)S +>'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"��'�6BS �J

�� S+%-)�,�'�6B "(� ?'S*%�-)S +>�'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�$

�0++6B�0�8S6' �J

�0�8S6' ��):' �6' �J

�0�8S6' ��& G)�'S*%�-)S +J

�'S*%�-)S +�'S0�8J

�'S+0-)S +9�0�8S6' ��& G)����'�6BS)�?'S+0-)S +@J

�%*�&6)S &"S-)#)�O�?�6' ��I2I�K�6' ��I9I@

�)! &�'S*%�-)S +���� S+%-)�?'S*%�-)S +>'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"�� S+%-)�J

��'�6BS)�,�'�6B "(� ?'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�'S*%�-)S +����'�6BS*�?'S+0-)S +@J

�%*�&6)S &"S-)#)�O�?6' ��I�I�K�6' ��I$I@

�)! &�'S*%�-)S +����)S+%-)�?'S*%�-)S +>'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"��'�6BS)�J

��)S+%-)�,�'�6B "(� ?'S*%�-)S +>'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�0++6B�0�8S6' �J

�0�8S6' ��):' �6' �J

�0�8S6' ��& G)�'S*%�-)S +J

�'S*%�-)S +�'S0�8J

�'S+0-)S +9�0�8S6' ��& G)��'�6BS*�?'S+0-)S +@J

�%*�&6)S &"S-)#)�O�?6' ��I�I�K�6' ��I$I@

�)! &�'S*%�-)S +����)S+%-)�?'S*%�-)S +>'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"��)S+%-)�J

48 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

��'�6BS*�,�'�6B "(� ?'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�'S*%�-)S +����'�6BS'�?'S+0-)S +@J

�%*�&6)S &"S-)#)�O�6' ��I'I

�)! &�'S*%�-)S +����*S+%-)�?'S*%�-)S +>'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"��'�6BS*�J

��*S+%-)�,�'�6B "(� ?'S*%�-)S +>'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�0++6B�0�8S6' �J

�0�8S6' ��):' ���6' �J

�0�8S6' ��& G)���'S*%�-)S +J

�'S*%�-)S +���'S0�8J

�'S+0-)S +9�0�8S6' ��& G)����'�6BS'�?'S+0-)S +@J

�%*�&6)S &"S-)#)�O�6' ��I'I

�)! &�'S*%�-)S +����*S+%-)�?'S*%�-)S +>'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"��*S+%-)�J

��'�6BS'�,�'�6B "(� ?'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�6' ����I�IJ

�%����& G)S&6&1+0&=�?%@J

�%*�&6)S &"S-)#)

�)! &�%*�B!?%@�I?I

������)! &�"6J

�����������1U�1U2�J

�����������%����& G)S&6&1+0&=�?%2�@J

�����������'S*%�-)S +����'�6BS �?'S+0-)S +@J

�����������%*�B!?%@�I@I

�����������)! &�"6J

����������������1U�1U9�J

����������������%����& G)S&6&1+0&=�?%2�@J

���������������� &"J

����������� +- �B0++��-:&)0GS ��6��?I G B ') "�N@NI@J

����������� &"J

������ +- �'S*%�-)S +����'�6BS + # &)�?'S+0-)S +@J

� +- �'S*%�-)S +���&(++J

�%*�%&" G?I29$�I>B!?%@@���M

�)! &�%*�B!?%@���I�I�O�B!?%2�@���I�I

������)! &�"6J

�����������6' ����I'IJ

�����������%����& G)S&6&1+0&=�?%2�@J

����������� &"J

������ +- �"6J

�����������6' ����B!?%@J

�����������%����& G)S&6&1+0&=�?%2�@J

����������� &"J

�� )(�&?'S*%�-)S +@J

� &"��'�6BS'�J

��'�6BS + # &)�,�'�6B "(� ?'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

49© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�"B+�B�1%&�*%G "J

�%����& G)S&6&1+0&=�?%@J

�B����B! B=SB6+S&0# �?IMI1@J

�%*�B�F��B6+-S&6

�)! &�"6J

������5���%�2�+ &8)!?B6+-?B@�B6+S&0# @J

������%*�/ �%*:?B!?5@>I�M��4<;ACDE29$�@I@���M�K�B!?5@���I; IG

������)! &�"6J

�����������0++6B�0�8J

�����������'S*%�-)S +>'S+0-)S +���'S0�8J

�����������B0++��8 )S%&) �/0+�?I�I@J

�����������0�8���7S-)#)>�1:�&0# J

�����������5�?0�8�B6+S&6��9�0�8�B6+S&6��2��@��

�������������?0�8��67S&6��9�0�8��67S&6��2��@�$

��������������0�8��67S-) 'J

�����������%*�Y������O�0�8��67S&6����M

�����������)! &�0�8�):' ���I�IJ

�����������%*�Y�����O�5�P��&6SB ++S%&S� -(+)

�����������)! &�B0++��-:&)0GS ��6���?I�0&8 �6*�B ++�%&�0�8(# &)IKK

���������������������I�%-�"%** � &)�)!0&�%&�� -(+)I@J

����������� &"J

������ +- �'S*%�-)S +����'�6BS + # &)S*(&B)%6&�?'S+0-)S +@J

������ &"J

� +- �%*�/ �%*:?B!?%@>IM��4<;ACDE�I@���M

������)! &�"6J�$�99�8��B������9999999999999999999999999999999999�$

�����������0++6B�0�8SB6&-)J

�����������'S*%�-)S +>'S+0-)S +���'S0�8J

�����������0�8SB6&-)�):' ���INIJ

�����������"6�5�%2��)6�+ &S� BS-)#)

��������������7!%+ ?%&" G?IM��4<;ACDE�I>B!?5@@���M@J

����������� &"J

�����������8 )�-)�%&8?-(1-)�?� B6�"S-)#)>%>59%@@

����������������+%-)?0�8SB6&-)�&(#1 �@J

�����������%����& G)S&6&1+0&=�?5@J

����������� &"J

������ +- �'S*%�-)S +����'�6BS + # &)S*(&B)%6&�?'S+0-)S +@J

�� )(�&?'S*%�-)S +@J

� &"��'�6BS + # &)�J

��'�6BS + # &)S*(&B)%6&�,�'�6B "(� ?'S+0-)S +@�� B(�-%/ �� )(�&-?')�@J

�"B+�?'S*%�-)S +>�'S+0-)S +@�')�J

�"B+�*(&B)%6&S&0# �B!0�?D@J

�"B+�*(&B)%6&S):' �B!0�?�@J

�5����*%&"SB!0��?%2�>I?I>IMI1>II@J

�$�99�8��*�������&����99999999999999999999999999999999999999999999�$

�*(&B)%6&S&0# ���-(1-)�?� B6�"S-)#)>%>59%@J

�*(&B)%6&S):' ����B! B=S*(&B)%6&S&0# �?*(&B)%6&S&0# @J

�%*�*(&B)%6&S):' ���I�I

�)! &�B0++��-:&)0GS ��6��?I(&=&67&�*(&B)%6&�6��B6+(#&�&0# �NIKK

��������������������������*(&B)%6&S&0# XXINI@J

�5����*%&"SB!0��?5>I?I>I�I1>I*6��" *%& "�0�8(# &)�6*�*(&B)%6&I@J

�%����& G)S&6&1+0&=�?52�@J

50 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�0++6B�0�8S6' �J

�0�8S6' ��):' ���*(&B)%6&S):' J

�'S*%�-)S +���'S0�8J

�0++6B�0�8J

�'S*%�-)S +9�0�8S6' ��& G)���'S0�8J

�'S+0-)S +���'S0�8J

�$�99�8��0 �������999999999999999999999999999999999999999999999999�$

�B0++��8 )S%&) �/0+�?I%&�0�8�6*�*(&B)%6&-�IKK*(&B)%6&S&0# @J

�0�8���7S-)#)>�1:�&0# J

�%*�B!?%@�P��I@I

�)! &�B0++��-:&)0GS ��6��?I G' B) "�N@NI@J

�%����& G)S&6&1+0&=�?52�@J

�� )(�&?'S*%�-)S +@J

� &"��'�6BS + # &)S*(&B)%6&�J

� &"�8 )S-)0) # &)-J

�$��������������������������������������������������������������������$

�$��'�6B "(� �B6'% -�)01+ �%&)6�76�=�"0)0- )��������������������������$

�$��������������������������������������������������������������������$

�B6':S)01+ S%&S76�=S1(**,�'�6B "(� J

�"B+�?=>�&6�%&%)?M@>�%&" GS�67@�1%&�*%G "?4�@J

�"B+�?5>�*�S'6->�)6S'6-@�1%&�*%G "J

�"B+�%&"S%-S&(# �%B?B6+-S&6@�1%)J

�"B+�''��')�J

�'()�-=%'� "%)?I�I>I����B6':%&8�)01+ �%&�76�=�"0)0- )�I>� ' 0)?I�I>4A@@

��������������?0>-=%'>��0@J

�6' &��*%+ ?)01+ @�%&'()J

�0++6B�76�=S� B6�"J

�'S7�S�66)���'S7�J

�$�99�B�������������������99999999999999999999999999999999999999�$

�� 0"�*%+ ?)01+ @�%&)6?� B6�"S)01+ @J

�%&" GS�67����J

�"6�=���1:���7!%+ ?&6)S 6*S)01+ @�J

����%*�%&" GS�67�F���67-S&6

����)! &�"6J

���������%*�=�����67-?%&" GS�67@�*�6#S'6-%)%6&�O

������������=�F���67-?%&" GS�67@�)6S'6-%)%6&

���������)! &�"6J

��������������76�=S� B6�"��67S&6���=J

��������������%&"S%-S&(# �%B?�@���IMI1J

��������������"6�B�����)6�B6+-S&6J

�����������������*�S'6-���B6+-?B@�*�6#S'6-%)%6&J

�����������������)6S'6-���B6+-?B@�)6S'6-%)%6&J

�����������������%*�%-SB ++S&(# �%B?B>?*�S'6-@>?)6S'6-@@

�����������������)! &�"6J

����������������������%&"S%-S&(# �%B?B@���I�I1J

����������������������76�=S� B6�"�"0)0?B@���8 )SB ++S&(# �%B

������������������������?-(1-)�?� B6�"S)01+ >*�S'6->)6S'6-9*�S'6-2�@>B@J

���������������������� &"J

����������������� +- �76�=S� B6�"�"0)0?B@�MJ

�������������� &"J

��������������%*�0&:?%&"S%-S&(# �%B@

51© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

��������������)! &�"6J

�������������������&6���&6�2��J

�������������������$�99���������������������������999999999999�$

�������������������''S7����'S7�J

�������������������0++6B�76�=S� B6�"J

�������������������''S7�9�76�=S� B6�"�& G)���'S7�J

������������������� &"J

��������������%*�P�0++?%&"S%-S&(# �%B@

��������������)! &�"6J

�������������������'()�-=%'� "%)?I����70�&%&8,�%&��67�I>=>

�����������������������I�%&�" B+0� ��67-�%&) �/0+,��67-?I>

������������������������67-?%&" GS�67@�*�6#S'6-%)%6&>I�,I>

������������������������67-?%&" GS�67@�)6S'6-%)%6&>I@I>

�����������������������I�%&�*6++67%&8�B6+(#&-�&6�&(# �%B-�"0)0XI@

�����������������������?0>*?C@>0>*?4@>0>*?4@>0>-=%'>G?��@>0@J

�������������������'()�-=%'� "%)?I)��������,I>I�I>� B6�"S)01+ >IFI@

�����������������������?0>-=%'>4?0@@J

�������������������B0++�#0�=S*% +"?%&"S%-S&(# �%B@J

������������������� &"J

�������������� &"J

��������� +- �"6J

��������������%*�=����67-?%&" GS�67@�)6S'6-%)%6&

��������������)! &�%&" GS�67���%&" GS�67�2��J

�������������� &"J

��������� &"J

����� 0"�*%+ ?)01+ @�%&)6?� B6�"S)01+ @J

� &"J

�''S7�9�76�=S� B6�"�& G)���&(++J

�*� �76�=S� B6�"J

�$�99�������� ��������������������999999999999999999999999999999�$

�&6S)01+ S� B6�"-���=�9��J

�%*�%&" GS�67�F���67-S&6

�)! &�%*�&6S)01+ S� B6�"-�F��67-?%&" GS�67@�)6S'6-%)%6&

������)! &�"6J

������������67-?%&" GS�67@�)6S'6-%)%6&���&6S)01+ S� B6�"-J

������������67-S&6���%&" GS�67J

����������� &"J

�0++6B�%&" GS76�=S� B6�"J

�"6�'S7����'S7�S�66)�� ' 0)?76�=S� B6�"�& G)@�7!%+ ?'S7��P��&(++@J

���%&" GS76�=S� B6�"?76�=S� B6�"��67S&6@���'S7�J

� &"J

�%*�&6���M

�)! &�'()�-=%'� "%)

�?I����8 )�I>&6>I�&(# �%B0+�)01+ ��67-�%&�76�=�0� 0-I@

�������������������?0>�*?C@>0@J

� +- �B0++� G B() S ��6�?I%&�" *%& "�B6+(#&-�&6�&(# �%B-�"0)0I@J

�B+6- �*%+ ?)01+ @J

� &"�B6':S)01+ S%&S76�=S1(**J

�$���������������������������������������������������������������������$

�$��'���������������������������������������������������������������$

�$���������������������������������������������������������������������$

52 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�#0�=S*% +",�'�6B "(� ?%&"@J

�"B+�%&"?�@�1%)J

�"B+�+�1%&�*%G "J

�� B6�"S)01+ ���� ' 0)?I�I>+ &8)!?� B6�"S)01+ @@J

�"6�B�����)6�B6+-S&6J

����%*�P�%&"?B@

����)! &�"6J

���������+���B6+-?B@�)6S'6-%)%6&�9�B6+-?B@�*�6#S'6-%)%6&�2��J

���������-(1-)�?� B6�"S)01+ >B6+-?B@�*�6#S'6-%)%6&>+@���� ' 0)?I�I>+@J

��������� &"J

� &"J

�'()�-=%'� "%)?� B6�"S)01+ @�?G?�@>0@J

�'()�-=%'� "%)?I#0�=�B6+-,I@�?G?4@>0@J

�"6�B�����)6�B6+-S&6J

����%*�P�%&"?B@

����)! &�'()� "%)?B6+-?B@�B6+S&0# >I$I@�?G?�@>0@J

� &"J

� &"�#0�=S*% +"J

�$���������������������������������������������������������������������$

�$��'���������� ��R�����������H����������������������������������$

�$���������������������������������������������������������������������$

�%-SB ++S&(# �%B,�'�6B "(� ?B>*'>+'@�� )(�&-?1%)@J

�"B+�?B>�*'>�+'>�+@�1%&�*%G "J

�"B��/0+%"SB!0��B!0�?��@�%&%)?IM��4<;ACDEMI@J

�"B+�%&"�1%)J

�"6�*'���*'�)6�+'9��7!%+ ?B!?*'@���I�I@J

� &"J

�%*�B!?*'@���I2I�K�B!?*'@���I9I

�)! &�*'���*'�2��J

�%*�*'�P��+'

�)! &�"6J

������"6�+'���+'�)6�*'2���1:�9��7!%+ ?B!?+'@���I�I@J

������ &"J

������+���B6+-?B@�&6S6*S" B%#0+-J

������%&"���/ �%*:?-(1-)�?� B6�"S)01+ >+'9+2�>+@>/0+%"SB!0�@���MJ

������+'���+'�9�+J

������%*�B!?+'@���I�I�K�B!?+'@���I>I

������)! &�"6J

�����������%*�B!?+'@���I>I

�����������)! &�-(1-)�?/0+%"SB!0�>��>�@���I�IJ

����������� +- �-(1-)�?/0+%"SB!0�>��>�@���I>IJ

�����������+'���+'�9��J

����������� &"J

������%&"���%&"�O�/ �%*:?-(1-)�?� B6�"S)01+ >*'>+'9*'2�@>/0+%"SB!0�@�MJ

������ &"J

� +- �%&"���I�I1J

�� )(�&�?%&"@J

� &"�%-SB ++S&(# �%BJ

�$���������������������������������������������������������������������$

�$��'������� ����������H�����������������������������������������$

�$���������������������������������������������������������������������$

53© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�8 )SB ++S&(# �%B,�'�6B "(� ?&(# �%BSB ++>B@�� )(�&-?1%&�*+60)?;4@@J

�"B+�&(# �%BSB ++�B!0�?�@J

�"B+�B!?4�CAC@�B!0�?�@�10- "?0""�?&(# �%BSB ++@@J

�"B+�?+'>�B>�5>=@�1%&�*%G "J

�"B+�&�1%&�*+60)?;4@J

�6&�B6&/ �-%6&�1 8%&J

���������������'()�-=%'� "%)?I�I>&(# �%BSB ++>IFI@�?0@J

���������������B0++� G B() S ��6�?I"0)0�&6)�&(# �%BI@J

��������������� &"J

�$�9999999999999999999999999999999999999999999999999999999999999999999�$

�$��B6&/ �)-�"0)0�*�6#�*6�#0)�7%)!�- '0�0) "�8�6('�6*�4�"%8%)�%&)6�����$

�$��-)0&"0�"�&(# �%B-�*6�#0)�������������������������������������������$

�$�9999999999999999999999999999999999999999999999999999999999999999999�$

�%*�%&" G?&(# �%BSB ++>I>I@�M

�)! &�"6J

������"6�+'���+ &8)!?&(# �%BSB ++@�)6���1:�9�

��������������������7!%+ ?B!?+'@�I�I@J

������ &"J

������"6�=�+'�)6���1:�9��7!%+ ?B!?=@����IMI�O�B!?=@�F��IEI@J

������ &"J

������%*�B!?=@���I>I

������)! &�B!?=@���I�IJ

������=���=�9�4J

������"6�5�����)6�=J

���������%*�B!?5@���I�I�K�B!?5@���I>I

���������)! &�"6J

��������������-(1-)�?&(# �%BSB ++>5>+'952�@��

��������������-(1-)�?&(# �%BSB ++>52�>+'95@J

�������������� &"J

������ &"J

������ &"J

�8 )�-)�%&8?&(# �%BSB ++KKI�MI@�+%-)?&@J

�� )(�&�?&@J

� &"�8 )SB ++S&(# �%BJ

�$���������������������������������������������������������������������$

�$��'�6B "(� �7�%) -� ��6��%&� G B()%6&��������������������������������$

�$���������������������������������������������������������������������$

� G B() S ��6�,�'�6B "(� ?#-8@J

��"B��%&"S�67�1%)J

��"B��5�1%&�*%G "J

��"B+�#-8�B!0�?�@J

��%*�'S7��P��&(++

��)! &�"6J

�������'()�-=%'� "%)?I���� ��6��%&��67�I>76�=S� B6�"��67S&6>I�0&"�B6+�I>

���������������������B6+-?B@�B6+S&0# @�?0>*?C@>0>0@J

�������"6�5���)6�B6+-S&6J

����������'()�-=%'� "%)?B6+-?5@�B6+S&0# >I��I>

������������������������76�=S� B6�"�"0)0?5@@�?G?;@>4�0@J

������� &"J

������� &"J

��%*�%&"S)�0B �O�'S-)#)�P��&(++

54 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

��)! &�B0++�'�%&)S-)#)?'S-)#)@J

��'()�-=%'� "%)?I���� ��6��I>#-8@�?0@J

��-)6'J

� &"� G B() S ��6�J

�$���������������������������������������������������������������������$

�$��'�6B "(� �B! B=-�%*��67�6�" ��%-�/0+%"�����������������������������$

�$���������������������������������������������������������������������$

�B! B=S/0+%"0) S�67,�'�6B "(� �� )(�&-?1%)@J

�"B+�%&"S6=�1%)�%&%)?I�I1@J

�"B+���1%&�*%G "?4�@J

�"B+�''-�')�J

�%*�-)#)��67S&6����M

�)! &�"6J

������-)#)��67S&6�����67-?�@�*�6#S'6-%)%6&J

������%*�-)#)��67S&6����M

������)! &�-)#)��67S&6��#%&?�67-?�67-S&6@�)6S'6-%)%6&>&6S)01+ S� B6�"-@J

������ &"J

� +- �%*�-)#)��67S&6����M

������)! &�-)#)��67S&6����-)#)��67S&6�J

�����-)#)��67S&6�J

�%&"S6=���?��F��&6S)01+ S� B6�"-@J

�"6�''-���-)#)�'S0�8�� ' 0)?''-9�0�8�& G)@

�������������������������7!%+ ?''-�P��&(++�O�%&"S6=@J

����%*�''-9�0�8S6' ��):' ���I�I�K

�������''-9�0�8S6' ��):' ���IBI

����)! &�"6J

�������������''-9�0�8��67S&6�J

���������%*���F��&6S)01+ S� B6�"-

���������)! &�����''-9�0�8��67S&6�J

��������� &"J

����%&"S6=���?��F��&6S)01+ S� B6�"-@J

� &"J

�%*�P%&"S6=

�)! &�"6J

������'()�-=%'� "%)?I�����67�I>�>I�"6 -�&6)� G%-)�%&�)01+ I@�?0@J

������%*�%&"S)�0B

������)! &�B0++�'�%&)S-)#)?'S-)#)@J

������B0++�'+%� )B?D@J

������ &"J

�� )(�&�?%&"S6=@J

� &"�B! B=S/0+%"0) S�67J

�$���������������������������������������������������������������������$

�$��'�6B "(� �B0+B(+0) -��67-�0&"�B6+-���������������������������������$

�$���������������������������������������������������������������������$

�B0+B(+0) ,�'�6B "(� J

�"B+�&�1%&�*%G "�%&%)?M@J

�"B����1%&�*%G "?4�@J

�6&�6/ �*+67��B0++� G B() S ��6�?I"0)0�6/ �*+67I@J

�6&�(&" �*+67�B0++� G B() S ��6�?I"0)0�(&" �*+67I@J

�'()�-=%'� "%)?I�I>I����B0+B(+0) ��67-�0&"�B6+(#&-�I>� ' 0)?I�I>4E@@

��������������?0>-=%'>��0@J

55© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�"6�'S-)#)���'S-)#)S�66)�� ' 0)?-)#)�& G)@�7!%+ ?'S-)#)�P��&(++@J

����&���&�2��J

����%*�%&"S)�0B

����)! &�'()�-=%'� "%)?I�I>I99�B0+B(+0) �-)#)�&6,I>&>� ' 0)?I9I>4<@@

�����������������?0>-=%'>4�0>G?�@>0@J

����%*�B! B=S/0+%"0) S�67?@

����)! &�B0++�B0+B(+0) SB ++-?-)#)�B6+S&6�>�-)#)�B6+S&6�>

��������������-)#)��67S&6�>�-)#)��67S&6�>�-)#)��67S-) '>�-)#)�'S0�8@J

���� +- �'()�-=%'� "%)?I����-)0) # &)�&6,I>&>I�%8&6� "I@�?0>*?4@>0@J

� &"J

�$��������������������������������������������������������������������$

�$��'�6B "(� �B0+B(+0) -�B6+(#&-�*6�� 0B!�� ' 0)01+ ��67S&6�����������$

�$��������������������������������������������������������������������$

�B0+B(+0) SB ++-,�'�6B "(� ?B6+�>�B6+�>��67�>��67�>��67S-) '>�'S0�8@J

�"B+�?B6+�>�B6+�>�B>��67S-) '@�1%&�*%G "J

�"B+�?�67�>��67�>��>�&�%&%)?M@@�1%&�*%G "?4�@J

�"B+�?'S0�8>�''S7�@�')�J

�"B��� U�1%&�*+60)?;4@J

�%*�%&"S)�0B

�)! &�'()�-=%'� "%)?I99��B0+B(+0) �B ++-�*�6#�I>B6+-?B6+�@�B6+S&0# >

�������������������������������67�>I�)6�I>B6+-?B6+�@�B6+S&0# >

�������������������������������67�@�?0>0>*?C@@J

�"6������67��)6��67��1:��67S-) 'J

����''S7����%&" GS76�=S� B6�"?�@J

����%*�''S7��P��&(++

����)! &�"6J

���������"6�B���B6+��)6�B6+�J

������������� U���B0+B(+0) SB ++?'S0�8>B�9�B6+�>�67�>��9��67�@J

������������%*�''S7�9�76�=S� B6�"�"0)0?B@�P��� U�K�� U���M

������������)! &�"6J

�����������������''S7�9�76�=S� B6�"�%&"SB!0&8 ?B@���I�I1J

�����������������''S7�9�76�=S� B6�"�"0)0?B@���� UJ

����������������� &"J

��������� &"J

���������&���&�2��J

��������� &"J

� &"J

�%*�%&"S)�0B

�)! &�'()�-=%'� "%)?I99��)6)0+�B ++-�%&�I>&>I�67-�0&"I>B6+��9�B6+��2��>

��������������������IB6+(#&-I@�?0>G?�@>*?C@>G?�@>0>G?�@>*?4@>G?�@>0@J

� &"�B0+B(+0) SB ++-J

�$��������������������������������������������������������������������$

�$��'�6B "(� �B0+B(+0) -�B ++�����������������������������������������$

�$��������������������������������������������������������������������$

�B0+B(+0) SB ++,�'�6B "(� ?'6=>6**- )SB>�67M>6**- )S�@�� B(�-%/

������������������ )(�&-?1%&�*+60)?;4@@J

�"B+�'6=�')�J

�"B+�6**- )SB�1%&�*%G "J

�"B+�?�67M>�6**- )S�@�1%&�*%G "?4�@J

�"B+�?� U>�0�8@�1%&�*+60)?;4@J

�%*�'6=�P��&(++

56 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�)! &�"6J

������'S0�8�'6=J

������%*�0�8S6' ��):' ���I�I

������)! &�� U���9�B0+B(+0) SB ++?0�8�& G)>6**- )SB>�67M>6**- )S�@J

������ +-

������%*�0�8S6' ��):' ���I2I�K

���������0�8S6' ��):' ���I9I�K

���������0�8S6' ��):' ���I$I�K

���������0�8S6' ��):' ���I�I�K

���������0�8S6' ��):' ���I'I

������)! &�"6J

������������ U���B0+B(+0) SB ++?0�8�& G)>6**- )SB>�67M>6**- )S�@J

�����������0�8���B0+B(+0) SB ++?0�8�& G)>6**- )SB>�67M>6**- )S�@J

�����������- + B)?'6=9�0�8S6' ��):' @J

�����������7! &?I2I@�� U���� U�2�0�8J

�����������7! &?I9I@�� U���� U�9�0�8J

�����������7! &?I�I@�� U���� U���0�8J

�����������7! &?I$I@�%*�0�8�P��M

���������������������)! &�� U���� U�$�0�8J

��������������������� +- �B0++� G B() S ��6�?IU �6�" /%" I@J

�����������7! &?I'I@�� U���'67 �?� U>0�8@J

�����������6)! �7%- J

����������� &"J�$��- + B)��$

����������� &"J

������ +- �"6J

�����������- + B)?0�8S6' ��):' @J

�����������7! &?I�I@�� U���B ++?0�8�B6+S&6�>�0�8��67S&6�@J

�����������7! &?I�I@�%*�0�8��67S&6����M

���������������������)! &�� U���B ++?0�8�B6+S&6�26**- )SB>

�������������������������������������0�8��67S&6�26**- )S�@J

��������������������� +- �� U���B ++?0�8�B6+S&6�26**- )SB>

��������������������������������������67M26**- )S�@J

�����������7! &?INI@�� U���0�8SB6&-)�&(#1 �J

�����������7! &?I�I>I�I>I4I>I<I>I;I>IAI@

���������������������� U���B0+BS*(&B)%6&?0�8S6' ��):' >��67M>�6**- )S�>

�����������������������������������������0�8S6' ��& G)@J

�����������6)! �7%- J

����������� &"J�$��- + B)��$

����������� &"J

������ &"J

� +- �� U���MJ

�� )(�&?� U@J

� &"�B0+B(+0) SB ++J

�$��������������������������������������������������������������������$

�$��'�6B "(� �B0+B(+0) -�*(&B)%6&�������������������������������������$

�$��������������������������������������������������������������������$

�B0+BS*(&B)%6&,�'�6B "(� ?*(&B)%6&>�67M>6**- )S�>'6=@

����������������� )(�&-?1%&�*+60)?;4@@J

�"B+�*(&B)%6&�B!0�?�@J

�"B+�?�67M>�6**- )S�>���>���@�1%&�*%G "?4�@J

�"B+�'6=�')�J

57© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�"B+�� U�1%&�*+60)?;4@J

�'S0�8�'6=J

�%*�0�8��67S&6����M�O�0�8��67S&6����M

�)! &�"6J

�����������0�8��67S&6�J

�����������0�8��67S&6�J

������ &"J

� +- ���>������67M�2�6**- )S�J

�- + B)?*(&B)%6&@J

�7! &?I�I@�� U���-(#SB ++?0�8�B6+S&6�>�0�8�B6+S&6�>

�������������>���>�0�8��67S-) '@J

�7! &?I�I@�� U���#(+SB ++?0�8�B6+S&6�>�0�8�B6+S&6�>

�������������>���>�0�8��67S-) '@J

�7! &?I4I@�� U���#%&SB ++?0�8�B6+S&6�>�0�8�B6+S&6�>

�������������>���>�0�8��67S-) '@J

�7! &?I<I@�� U���#0GSB ++?0�8�B6+S&6�>�0�8�B6+S&6�>

�������������>���>�0�8��67S-) '@J

�7! &?I;I@�� U���0/�8SB ++?0�8�B6+S&6�>�0�8�B6+S&6�>

�������������>���>�0�8��67S-) '@J

�7! &?IAI@�� U����0&8 SB ++?0�8�B6+S&6�>�0�8�B6+S&6�>

�������������>���>�0�8��67S-) '@J

�6)! �7%- J

� &"J�$��- + B)��$

�� )(�&?� U@J

� &"�B0+BS*(&B)%6&J

�$�99�%&) �&0+�*��������9999999999999999999999999999999999999999�$

�B ++,�'�6B "(� ?B>�@�� )(�&-?1%&�*+60)?;4@@J

����"B+�B�1%&�*%G "J

����"B+���1%&�*%G "?4�@J

����"B+�� U�1%&�*+60)?;4@J

����''S7����%&" GS76�=S� B6�"?�@J

����%*�''S7��P��&(++

����)! &�� U���''S7�9�76�=S� B6�"�"0)0?B@J

���� +- �"6J

���������'()�-=%'� "%)?B6+-?B@�B6+S&0# >�@�?0>*?C@>G?�@@J

���������B0++� G B() S ��6�?I�67�"6 -�&6)� G%-)�6��B ++�%-&)�&(# �%BXI@J

��������� &"J

����� )(�&?� U@J

� &"�B ++J

�'67 �,�'�6B "(� ?� U>0�8@�� )(�&-?1%&�*+60)?;4@@J

����"B+�?� U>0�8@�1%&�*+60)?;4@J

����%*�� U���M�K�?� U�M�O�0�8�M@

����)! &�� U���� U��0�8J

���� +- �"6J

���������'()�-=%'� "%)?IG�I>� U>I:�I>0�8@�?0>0>-=%'>0>0@J

���������%*�� U�F�M

���������)! &�B0++� G B() S ��6�?IG�F�M����G��:I@J

���������%*�� U���M�O�0�8�F��M

���������)! &�B0++� G B() S ��6�?IG���M�����:�F��M����G��:I@J

��������� &"J

����� )(�&?� U@J

58 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

� &"�'67 �J

�-(#SB ++,�'�6B "(� ?B�>B�>��>��>�S-) '@�� )(�&-?1%&�*+60)?;4@@J

����"B+�):' �B!0�?�@J

����"B+�?B�>B�>B>�S-) '@�1%&�*%G "J

����"B+�?��>��>�@�1%&�*%G "?4�@J

����"B+�� U�1%&�*+60)?;4@J

����� U���MJ

����"6��������)6����1:��S-) 'J

�������''S7����%&" GS76�=S� B6�"?�@J

�������%*�''S7��P��&(++

�������)! &�"6�B���B��)6�B�J

���������������� U���� U�2�''S7�9�76�=S� B6�"�"0)0?B@J

������������ &"J

���� &"J

����� )(�&?� U@J

� &"�-(#SB ++J

�#(+SB ++,�'�6B "(� ?B�>B�>��>��>�S-) '@�� )(�&-?1%&�*+60)?;4@@J

����"B+�):' �B!0�?�@J

����"B+�?B�>B�>B>�S-) '@�1%&�*%G "J

����"B+�?��>��>�@�1%&�*%G "?4�@J

����"B+�� U�1%&�*+60)?;4@J

����� U����J

����"6��������)6����1:��S-) 'J

�������''S7����%&" GS76�=S� B6�"?�@J

�������%*�''S7��P��&(++

�������)! &�"6�B���B��)6�B�J

���������������� U���� U���''S7�9�76�=S� B6�"�"0)0?B@J

������������ &"J

���� &"J

����� )(�&?� U@J

� &"�#(+SB ++J

�#%&SB ++,�'�6B "(� ?B�>B�>��>��>�S-) '@�� )(�&-?1%&�*+60)?;4@@J

����"B+�):' �B!0�?�@J

����"B+�?B�>B�>B>�S-) '@�1%&�*%G "J

����"B+�?��>��>�@�1%&�*%G "?4�@J

����"B+�� U�1%&�*+60)?;4@J

����� U���EEEEEEEEEEEJ

����"6��������)6����1:��S-) 'J

�������''S7����%&" GS76�=S� B6�"?�@J

�������%*�''S7��P��&(++

�������)! &�"6�B���B��)6�B�J

���������������%*�� U���''S7�9�76�=S� B6�"�"0)0?B@

���������������)! &�� U���''S7�9�76�=S� B6�"�"0)0?B@J

������������ &"J

���� &"J

����� )(�&?� U@J

� &"�#%&SB ++J

�#0GSB ++,�'�6B "(� ?B�>B�>��>��>�S-) '@�� )(�&-?1%&�*+60)?;4@@J

����"B+�):' �B!0�?�@J

����"B+�?B�>B�>B>�S-) '@�1%&�*%G "J

����"B+�?��>��>�@�1%&�*%G "?4�@J

59© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

����"B+�� U�1%&�*+60)?;4@J

����� U���MJ

����"6��������)6����1:��S-) 'J

�������''S7����%&" GS76�=S� B6�"?�@J

�������%*�''S7��P��&(++

�������)! &�"6�B���B��)6�B�J

���������������%*�� U�F�''S7�9�76�=S� B6�"�"0)0?B@

���������������)! &�� U���''S7�9�76�=S� B6�"�"0)0?B@J

������������ &"J

���� &"J

����� )(�&?� U@J

� &"�#0GSB ++J

�0/�8SB ++,�'�6B "(� ?B�>B�>��>��>�S-) '@�� )(�&-?1%&�*+60)?;4@@J

����"B+�):' �B!0�?�@J

����"B+�?B�>B�>B>�S-) '@�1%&�*%G "J

����"B+�?��>��>�>&�%&%)?M@@�1%&�*%G "?4�@J

����"B+�� U�1%&�*+60)?;4@J

����� U���MJ

����"6��������)6����1:��S-) 'J

�������''S7����%&" GS76�=S� B6�"?�@J

�������%*�''S7��P��&(++

�������)! &�"6�B���B��)6�B�J

���������������� U���� U�2�''S7�9�76�=S� B6�"�"0)0?B@J

���������������&���&�2��J

������������ &"J

���� &"J

����� U���� U�$�&J

����� )(�&?� U@J

� &"�0/�8SB ++J

��0&8 SB ++,�'�6B "(� ?B�>B�>��>��>�S-) '@�� )(�&-?1%&�*+60)?;4@@J

����"B+�):' �B!0�?�@J

����"B+�?B�>B�>B>�S-) '@�1%&�*%G "J

����"B+�?��>��>�@�1%&�*%G "?4�@J

����"B+�?� U>#%&S��%&%)?EEEEEEEEEEE@>�#0GS��%&%)?M@@�1%&�*+60)?;4@J

����"6��������)6����1:��S-) 'J

�������''S7����%&" GS76�=S� B6�"?�@J

�������%*�''S7��P��&(++

�������)! &�"6�B���B��)6�B�J

������������%*�#%&S����''S7�9�76�=S� B6�"�"0)0?B@

������������)! &�#%&S����''S7�9�76�=S� B6�"�"0)0?B@J

������������%*�#0GS��F�''S7�9�76�=S� B6�"�"0)0?B@

������������)! &�#0GS����''S7�9�76�=S� B6�"�"0)0?B@J

������������ &"J

���� &"J

����� U���#0GS��9�#%&S�J

����� )(�&?� U@J

� &"��0&8 SB ++J

� &"�B0+B(+0) J

�$��������������������������������������������������������������������$

�$��'�6B "(� �B! B=-�"0)0�*�6#�)01+ ����������������������������������$

�$��������������������������������������������������������������������$

60 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�B! B=S"0)0S%&S)01+ ,�'�6B "(� J

�"B+�?%&">�%-S� B6�"S G%-)>�&6S"%* � &)S G%-)?B6+-S&6@@�1%)J

�"B+�?5>�+>�1�8�%&%)?M@@�1%&�*%G ">

�����=�1%&�*%G "?4�@J

�"B+�?*�S'6->�)6S'6-@�1%&�*%G "J

�"B+��6(&"S ��6�?B6+-S&6@�1%&�*+60)?;4@�%&%)??B6+-S&6@M�;�@J

�"B+�)01+ S"0)0?B6+-S&6@��1%&�*+60)?;4@J

�'()�-=%'� "%)?I�I>I����B! B=%&8�"0)0�%&�)01+ �I>� ' 0)?I�I><�@@

��������������?0>-=%'>��0@J

�$�99���������������������������������������� ����99999999�$

�$�99�M�;���?�M����&6S" B%#0+-@�9����LLLLL� ��6��0&"�9999999999999�$

�$�99�����?�M����?&6S" B%#0+-2�@@�9����LLLLLL0) "� ��6��9999999999�$

�"6�B���)6�B6+-S&6J

�����6(&"S ��6�?B@����6(&"S ��6�?B@�$�?�M����B6+-?B@�&6S6*S" B%#0+-@J

� &"J

�&6)S 6*S)01+ �I�I1J

�6' &�*%+ ?)01+ @�%&'()J

�� 0"�*%+ ?)01+ @�%&)6?� B6�"S)01+ @J

�"6�=�����1:���7!%+ ?&6)S 6*S)01+ @J

����'S7����%&" GS76�=S� B6�"?=@J

����%*�'S7��P��&(++

����)! &�"6J

���������%&"���IMI1J

���������"6�B�����)6�B6+-S&6J

������������%*�'S7�9�76�=S� B6�"�%&"SB!0&8 ?B@

������������)! &�"6J

�����������������*�S'6-�������B6+-?B@�*�6#S'6-%)%6&J

�����������������)6S'6-�������B6+-?B@�)6S'6-%)%6&J

�����������������%*�%-SB ++S&(# �%B?B>?*�S'6-@>?)6S'6-@@

�����������������)! &�"6J

����������������������%&"���I�I1J

����������������������)01+ S"0)0?B@�8 )SB ++S&(# �%B

������������������������?-(1-)�?� B6�"S)01+ >*�S'6->)6S'6-9*�S'6-2�@>B@J

���������������������� &"J

����������������� +- �)01+ S"0)0?B@�MJ

����������������� &"J

������������ +- �)01+ S"0)0?B@���76�=S� B6�"�"0)0?B@J

��������� &"J

���������%*�%&"

���������)! &�"6J

��������������&6S"%* � &)S G%-)?�@���I�I1J

��������������"6�B���)6�B6+-S&6J

�����������������%*�01-?)01+ S"0)0?B@�9�76�=S� B6�"�"0)0?B@@���

���������������������6(&"S ��6�?B@

�����������������)! &�&6S"%* � &)S G%-)?B@���IMI1J

�������������� &"J

��������������%*�P�0++?&6S"%* � &)S G%-)@

��������������)! &�"6J

�������������������1�8�1�82�J

�������������������'()�-=%'� "%)?I����"%** � &B �%&��67,I>

�����������������������76�=S� B6�"��67S&6@�?0>*?C@@J

61© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�������������������'()�-=%'� "%)?I)��������,I>

�����������������������I�I>� B6�"S)01+ >IFI@�?0>-=%'>4?0@@J

�������������������B0++�*6�#0)S6()'()S�67?76�=S� B6�"�"0)0@J

�������������������'()�-=%'� "%)?IB0+B(+0) "�"0)0,I>

�����������������������I�I>� B6�"S)01+ >IFI@�?0>-=%'>4?0@@J

�������������������$�99�#������ �������H�������9999999999�$

�������������������B0++�#0�=S*% +"?&6S"%* � &)S G%-)@J

������������������� &"J

�������������� &"J

��������� &"J

����� 0"�*%+ ?)01+ @�%&)6?� B6�"S)01+ @J

� &"J

�B+6- �*%+ ?)01+ @J

�%*�1�8�M

�)! &�"6J

������'()�-=%'� "%)?I����"0)0�%-�&6)�B6�� B)�%&�I>1�8>I��67-I@�?0@J

������B0++�'+%� )B?D@J

������ &"J

� +- �'()�-=%'� "%)?I����0++�"0)0�%-�B6�� B)�XXXI@�?0@J

� &"�B! B=S"0)0S%&S)01+ J

�$��������������������������������������������������������������������$

�$��*6�#0)��"0)0�*6��6()'()��67���������������������������������������$

�$��������������������������������������������������������������������$

�*6�#0)S6()'()S�67,�'�6B "(� ?&(# �%BS"0)0@J

�"B+�&(# �%BS"0)0?�@�1%&�*+60)?;4@>

����?&6�%&%)?M@>�+@�1%&�*%G "?4�@J

�"B+�� U(+)�B!0�?4M@�%&%)?I�I@J

�6&�-%U �1 8%&J

���������'()�-=%'� "%)?I���� ��6��9�B6+�I>B6+-?B@�B6+S&0# >

�����������������������I�" *%&%)%6&-�%-,I>�B6+-?B@�*�6#S'6-%)%6&>I�,I>

�����������������������B6+-?B@�)6S'6-%)%6&>I0&"�� -(+)�%-,I>� U(+)@

����������������������?4�0>*?C@>0>*?C@>-=%'>G?<@>0>0@J

���������B0++� G B() S ��6�?I� -(+)�6/ �*+67-�+ &8)!�6*�B6+-I@J

��������� &"J

�$�99�B������ �����������������������������������H�9999�$

�$�99��������� �������4��� ����������������������������M�99�$

�$�99�������������������������9999999999999999999999999999999999�$

�"6�B�����)6�B6+-S&6J

����%*�76�=S� B6�"�%&"SB!0&8 ?B@

����)! &�"6J

���������+��B6+-?B@�)6S'6-%)%6&�9�B6+-?B@�*�6#S'6-%)%6&�2��J

���������'()�-)�%&8?� U(+)@� "%)?&(# �%BS"0)0?B@@

����������������������������?*?+ &8)!?� U(+)@>B6+-?B@�&6S6*S" B%#0+-@@J

���������%*�B6+-?B@�- '0�0)6��P��I�I�O�B6+-?B@�&6S6*S" B%#0+-���M

���������)! &�"6J

��������������5�+ &8)!?� U(+)@�9�B6+-?B@�&6S6*S" B%#0+-J

��������������-(1-)�?� U(+)>5>�@���B6+-?B@�" B%#0+S'6%&)J

��������������"6�5�59<�)6���1:�9<J

�����������������%*�-(1-)�?� U(+)>�>�@���I�I�O�-(1-)�?� U(+)>5>�@�P��I�I

�����������������)! &�"6J

����������������������-(1-)�?� U(+)>�>59�@���-(1-)�?� U(+)>�>59�@J

62 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

����������������������-(1-)�?� U(+)>5>�@���B6+-?B@�- '0�0)6�J

���������������������� &"J

�������������� &"J

�������������� &"J

���������%*�-(1-)�?� U(+)>+ &8)!?� U(+)@9+>�@�P��I�I

���������)! &�-%8&0+�-%U J

���������-(1-)�?� B6�"S)01+ >B6+-?B@�*�6#S'6-%)%6&>+@��

���������-(1-)�?� U(+)>4��9�+>+@J

������ &"J

� &"J

� &"�*6�#0)S6()'()S�67J

�$��������������������������������������������������������������������$

�$��'�6B "(� �#6/ -�10B=�"0)0�*�6#�76�=�"0)0- )�)6�)01+ ��������������$

�$��������������������������������������������������������������������$

�7�%) SB6(&)S"0)0S%&)6S)01+ ,�'�6B "(� J

�"B+�?&6�%&%)?M@>�=@�1%&�*%G "?4�@J

�6&� ��6��1 8%&J

����������6&� ��6��-&0'�-:-) #J

����������'()�-=%'� "%)?I����"0)0�!0/ �1 &�B!0&8 "�%&�I>&6>

������������������������I��67-�)%++�)! �1� 0=�I�@�?0>*?C@>0@J

���������� &"J

�'()�-=%'� "%)?I�I>I����7�%)%&8�B0+B(+0) "�"0)0�%&)6�)01+ �I>

����������������� ' 0)?I�I>4�@@�?0>-=%'>��0@J

�&6)S 6*S)01+ �I�I1J

�6' &�*%+ ?)01+ @�('"0) J

�� 0"�*%+ ?)01+ @�%&)6?� B6�"S)01+ @J

�"6�=�����1:���7!%+ ?&6)S 6*S)01+ @J

����'S7����%&" GS76�=S� B6�"?=@J

����%*�'S7��P��&(++

����)! &�%*�0&:?76�=S� B6�"�%&"SB!0&8 ?�@@

���������)! &�"6J

��������������B0++�*6�#0)S6()'()S�67?76�=S� B6�"�"0)0@J

��������������&6�&62�J

��������������� 7�%) �*%+ ?)01+ @�*�6#?� B6�"S)01+ @J

�������������� &"J

����� 0"�*%+ ?)01+ @�%&)6?� B6�"S)01+ @J

� &"J

�B+6- �*%+ ?)01+ @J

�'()�-=%'� "%)?I����)6)0+�9�"0)0�%&�I>&6>I��67-�0� �B0+B(+0) "�XI@

��������������?0>*?C@>0@J

� &"�7�%) SB6(&)S"0)0S%&)6S)01+ J

�$��������������������������������������������������������������������$

�$��'�%&)�-)0) # &)-�%*�'0�0# ) ��)�0B �%-�- + B) "�������������������$

�$��������������������������������������������������������������������$

�'�%&)S-)#),�'�6B "(� ?'-@J

�"B+�?'->�''->�'�@�')�J

�"B+�*(&B�B!0�?�M@�/0�J

�'()�-=%'� "%)?I99�-)#)�" *%&%)%6&�9999999999999999999999999I@�?0@J

�'()�-=%'� "%)?I�I>B6+-?'-9�-)#)�B6+S&6�@�B6+S&0# >

���������������'-9�-)#)��67S&6�>I�,I>�'-9�-)#)��67S&6�>�IF���I@

���������������?�?0@>�?*?C@>0@@J

63© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�"6�''-���'-9�-)#)�'S0�8�� ' 0)?''-9�0�8�& G)@�7!%+ ?''-�P��&(++@J

����- + B)?''-9�0�8S6' ��):' @J

����7! &?I�I@�*(&B���I-%8&�9IJ

����7! &?I�I@�*(&B���IB ++-IJ

����7! &?I�I@�*(&B���IB ++IJ

����7! &?I'I@�*(&B���I��IJ

����7! &?I�I@�*(&B���I-(#IJ

����7! &?I�I@�*(&B���I#(+)%'+ IJ

����7! &?I4I@�*(&B���I#%&IJ

����7! &?I<I@�*(&B���I#0GIJ

����7! &?I;I@�*(&B���I0/�8IJ

����7! &?IAI@�*(&B���I�0&8 IJ

����6)! �7%- �*(&B���''-9�0�8S6' ��):' J

���� &"J�$��- + B)��$

����- + B)?''-9�0�8S6' ��):' @J

����7! &?I�I>I�I@

��������������'()�-=%'� "%)?*(&B>

������������������B6+-?''-9�0�8�B6+S&6�@�B6+S&0# >

������������������''-9�0�8��67S&6�>�I�,I>

������������������B6+-?''-9�0�8�B6+S&6�@�B6+S&0# >

������������������''-9�0�8��67S&6�>�I��67�-) ',I>

������������������''-9�0�8��67S-) '@

������������������?G?�@>0>G?�@>0>*?C@>0>0>*?C@>0@J

����7! &?INI@�'()�-=%'� "%)?I��NI>''-9�0�8SB6&-)�&(#1 �>INI@�?0@J

����6)! �7%- �'()�-=%'� "%)?I��I>*(&B>IFI@�?0>G?�@@J

���� &"J�$��- + B)��$

� &"J

� &"�'�%&)S-)#)J

� &"�B0+B)01J

JCL TO EXECUTE CALCTAB

$$�����B�����561�B+0--�0>#-8B+0--�G>&6)%*:�O-:-(%">#-8+ / +�?�>M@

$$B0+B)01��� G B�'8#�B0+B)01

$$-) '+%1���""�"-&�������(- ��+60">"%-'�-!�

$$)01+ �����""�"-&�������) -)�)01+ >"%-'�6+"

$$-:-'�%&)��""�-:-6()�G

$$-:-%&�����""��

��-0#' �" *%&%)%6&�6*��67-�0&"�B6+(#&-

�B6+(#&-���0�?�;,44>M@��1�?4;,<A>�@�B�?<D,AM>�>I>I>I�I@�"�?A<,CM>�@J

��67-������?;,��@J

��-0#'+ �*6�#(+0-

�B���1���0J

�0�����-(#?0;,0E@J

�B�����-(#?B;,BE@J

�";,"�����B;,B�����$�B������MM�J

$�

$$

64 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

EXAMPLES

Input table ����������������������������������������������������������������������� 33�

K&��K��������0�����K����1�������K�����B����K����"�������K� ���������K��33�

K��������������������������������������������������������������������K� 334

K���K���4�<;�������K�3�EDC;�����K�����������K�����������K�����������K��33<

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 33;

K���K��C�DE�������K��<�DCA;�����K�����������K�����������K�����������K��33A

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 33C

K�4�K�E��C���������K��D��C4<����K�����������K�����������K�����������K��33D

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 33E

K�<�K�<;�DC��������K��D�;<C;����K�����������K�����������K�����������K��3�3

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3��

K�;�K��;�<A��������K�4<�EDAC����K�����������K�����������K�����������K��3��

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�4

K�A�K��<4��E�������K����CD;�����K�����������K�����������K�����������K��3�<

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�;

K�C�K��C�EE�������K�;C��4C������K�����������K�����������K�����������K��3�A

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�C

K�D�K���4�DA�������K��;�333�����K�����������K�����������K�����������K��3�D

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�E

K�E�K�4�33��������K��DD�EDCA����K�����������K�����������K�����������K��3�3

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3��

K�3�K��;�3;��������K�4;��<4;����K�����������K�����������K�����������K��3��

K��������������������������������������������������������������������K� 3�4

K���K�������������K������������K�����������K������������K�����������K��3�<

K��������������������������������������������������������������������K� M�;b

Job for invoking spreadsheet

$$�����B�561�B+0--�0>#-8B+0--�G>&6)%*:�O-:-(%">#-8+ / +�?�>M@

$$B0+B)01� G B�'8#�B0+B)01

$$-) '+%1�""�"-&�������(- ��+60">"%-'�-!�

$$)01+ �""�"-&�������) -)�)01�>"%-'�6+"

$$-:-'�%&)�""�-:-6()�G

$$-:-%&�""��

)�0B J

��" *%&%)%6&-�6*�B6+(#&-�0&"��67-

B6+(#&-�0�?MC,�A>�@�1�?��,4�><@�B�?4;,<<>�@�"�?<C,;C>�@� �?AM,AE><@J

�67-�?M<,�<@J

��" *%&%)%6&-�6*�0�%)# )%B�-)0) # & )-

B���0���1�9�0�2��MM�J

"���?�0&8 ?0<,0��,�@�9�1@�$�BJ

���-(#?0,"@J

0�<����0&8 ?0<,0��,�@J

1�<���#%&?1<,1��,�@J

B�<���#0G?B<,B��,�@J

"�<���0/�8?"<,"��,�@J

65© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�<���?9#%&?0<,"�<@2#0G?0<,"�<@�9��0&8 ?0<,"�<@@�$�?0/�8?0<,"�<@��

-(#?"<,"��,�@@J

$�

$$�MM��MMMb

Result table ����������������������������������������������������������������������� 33�

K&��K��������0�����K����1�������K�����B����K����"�������K� ���������K��33�

K��������������������������������������������������������������������K� 334

K���K���4�<;�������K�3�EDC;����K�ED�<A�����K���<4�������K���;�4�4E��K��33<

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 33;

K���K��C�DE�������K��<�DCA;����K�<DC�3�����K�3�<A�������K�;43��<<C��K��33A

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 33C

K�4�K�E��C��������K��D��C4<����K��A�E��;���K�3�3D�������K��C<3���34�K��33D

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 33E

K�<�K�<;�DC�������K��D�;<C;����K�E3<�E3����K�3��<�������K�EAE�;AA4��K��3�3

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3��

K�;�K��;�<A�������K�4<�EDAC����K�EA;�43����K�3����������K��3�;�EA3C�K��3��

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�4

K�A�K��<4��E�������K����CD;����K�4DA�A3����K�3�A��������K�A4��;D4A��K��3�<

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�;

K�C�K��C�EE��������K�;C��4C����K���3E�E����K�3��A�������K���D;��33<�K��3�A

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�C

K�D�K���4�DA�������K��;�333����K��D4<�3;���K�3����������K��EC4�34;4�K��3�D

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3�E

K�E�K�4�33��������K��DD�EDCA���K�AA4�EA����K�3�3D�������K�D;A�3�C;��K��3�3

K999K99999999999999K999999999999K99999999999K999999999999K99999999999K� 3��

K�3�K��;�3;��������K�4;��<4;���K�A�4�DA����K�3�44�������K�AA<�4DC���K��3��

K��������������������������������������������������������������������K� 3�4

K�K��<3��E��������K�3�EDC;�����K��A�E��;���K�3�<C�������K�3�3333����K��3�<

K��������������������������������������������������������������������K� M�;

Emina Spasic and Dragan NikolicSystems ProgrammersPostal Savings Bank (Yugoslavia) © Xephon 2002

Comparing PDS files

The following utility was developed to compare the contents of twoPDS files containing same-name members. The purpose is to detectwhich members are different or which members are missing from thesecond PDS, without going into full details about those differences, likethe standard ISPF Compare utility can do. My goal is not a completemember comparison, but only to know which members are different.

66 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

The program lists both PDS directories, and then proceeds to comparemember by member. If a difference is found, it issues a message statingthat a difference was found in line X and proceeds to the next member.Also, if a member exists in one PDS but not in the other, it signals thefact.

You can limit the range of the members to search by entering the startingcharacters of the member names in the appropriate field in the inputpanel. For example, you can limit the comparison to members startingwith ‘A*’, or whatever. No final asterisk is necessary, but no harmcomes from it, either.

The result of the search can be displayed in two ways: you can choosean output file (which will be automatically browsed at the end of theprocess), or write directly to the screen by choosing none. If you choosea file, and that file already exists, you will be warned of the fact, and youcan confirm that you want to reuse it, or you can choose another name.If the file does not exist, it will be created as a sequential 80-byte file.

This utility consists of a REXX EXEC and an associated ISPF panel.The EXEC accepts as an optional parameter the name of the first PDS.If you supply this parameter, the second PDS name is automaticallyassumed to be equal to the first when the panel is displayed. This isbecause often the name of both PDSs is relatively similar, so it isgenerally easier to correct the first name to the second than to write itin full. If you do not enter a parameter, the ISPF panel will be empty, andyou have to type in both names.

The output will look as follows. In the case that no differences are found,a single message ‘No differences were found’ is displayed.

�����0B;<0�-�������������������������'"-

�����0��<MB0�������������������������'"-

�999�0�MM0�)��"���������������������

�999�0�MMM0-��"�����������������������;

�999�0��MMB1��"������������������������

�FFF�0�4<<B0������������������'"-�������������

�FFF�0�4<BU�������������������'"-�������������

The entry panel looks as follows:

�99999999999�"�����������������'"-��������99999999999�

K��������������������������������������������������������K

K����*���'"-��,�'�8)<;��B61��)-)�����������������������K

K��������������������������������������������������������K

67© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

K����-������'"-�,�'�8)<;��B61��)-)���1M�ME���������������K

K��������������������������������������������������������K

K����6������������������,�0�������������������������K

K��������������������������������������������������������K

K����6��������,�'�8)<;��"%**B6�������������������������K

K����#������������������ ������,���������������������K

K��������������������������������������������������������K

I99999999999999999999999999999999999999999999999999999999I

DIFF REXX SOURCE CODE

$��� GG��������������������������������������������������������������$

$���"%**�9�B�����������������������������'"-����������������������$

� �������

������������S�����

��������S������S�

�����������S������

��������S������S�

���

$�������������������������-�����������������������������������������$

�������S�����,

������S���������N"-&�N

���������F��NN�H�����

���������������

���������S��������N"-&�N

����

�����������M

������������������

����I���������?�@�������?�@I

����I�������������?�����@�����?I�����S�����I@I

�����������D�H������

����I�����I

�������������

�������������������H�����

�������#-8���N"��������������������N

������������S��������N"-&�N

����������������

�������

���������������?NIN����NIN@

����������������F��M�K������� �F��N'6N�H�����

�������#-8���N"��������������'"-N

������������S��������N"-&�N

����������������

�������

���������������?NIN����NIN@

����������������F��M�K������� �F��N'6N�H�����

�������#-8���N"��������������'"-N

������������S��������N"-&�N

����������������

�������

��������������F��NN�H�����

68 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

������������������?NIN������NIN@

�������������������F��M�H�����

��������������������S�������N& 7N

����������

��������������

�����������������I�I�H�����

�����������������������S�������N6+"N

�������������

�����������������

�������������#-8�N6��������������������#�������������������H�N

������������������S��������N6()*%+ N

����������������������

�������������

����������

�������

����������������F�NN�H�����������������?��������>>N�N@

��������������

����

���

���S������S�,

����������?����@

��������)-6�N+%-)"-�?IN����NI@�# #1 �-�-)N

����������?���@

��������M���M�H�����

��������N'��N������N�����������������N

�������

����

�����M

�������M

����R�����������M

��������R��������?����R>M@

��������R������?����R>>N9N@

�����������R���N# #1 �-N�H�����

��������������

������������R

�������

���������������H�����

�������������2��

����������������������?����R>M@

�������

����

���������

���

������S������,

������NN

����R��������

�����������������R

����������?����>��� H?��������@@�F�����������H��������R

�����������������N?N����N@N

�����������������N?N����N@N

�������������?NIN������NIN@�F��N6=N�H�����

�����������������?����>D@

69© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

������������N���N������N�����������������������'"-N

����������������S��

������������R

�������

��������������S�������������������

��������������S�������������������

������������S�����S������

��������������M�H�����

�����������������?����>D@

������������N999N������N"���������������������N�����

����������������S��

������������R

�������

��������������9��H�����

�����������������?����>D@

������������N999N������N"���������������������N

����������������S��

������������R

�������

����

���������NN�H�����

��������N&����������������������N

����

��������

��������������F��NN�H�����

��������������M������������N?N������

����������������������N1�67- �"0)0- )?IN������NI@N

�������

����

�I������?����@I

���

���S�����S������,

��������H���������MMMM

�����������M

������������������������

����������

������������������������

����������

���������

��������H��������M�O������M�H�����

������������������������

������������������������

������������������F�������H�����

������������������������H�

�����������������������H�

�������������

����������

��������H������F�����H�����

�����������������9�

��������������������H�

����������

��������H�����������O����F��M�H�����

70 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

�����������������M

��������������������H�

����������

�������

����

�������

��������M�������������N?N������

��������M�������������N?N������

��������

���S������S�,

����������?����@

��������)-6�N+%-)"-�?IN����NI@�# #1 �-�-)N

����������?���@

��������M���M�H�����

��������N'��N������N�����������������N

�������

����

�������M

����R�����������M

��������R��������?����R>M@

��������R������?����R>>N9N@

�����������R���N# #1 �-N�H�����

��������������

������������R

�������

���������������H�����

��������������������N?N����RN@N

����������������?NIN������NIN@�F��N6=N�H�����

��������������������?����R>D@

���������������NFFFN������N����������������'"-�������������N

�������������������S��

����������

�������

����

���

����S��,

�������������NN�H���������

��������

����Q�������

�����������������������

����

���

�����S�����,

�RR����� ?���@

�� �����������

�N������?N������N@N

�N��������?IN���NI@���?N������N@��HN

������F��M�H�����

��������N ���������� N����

�������

����

���

71© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

�����S������,

�� ����

�RR����� ?���@

�N������?����@N

����������N& 7N�H�����

����N��������?IN������NI@���?����@���������������R�?DMMM@>

���������������?DM@�����?�>�@���� ?��@������?���@�����N

����������

����

��������

����N��������?IN������NI@���?����@��HN

����������

����

�������F��M�H�����

��������N ���������� N������

�������

����

���

DIFF PANEL SOURCE CODE

@0))�

��S�):' ?%&'()@�B0'-?6&@�5(-)?+ *)@��B6+6�?'%&=@

��L�):' ?%&'()@�B0'-?6&@�5(-)?+ *)@��B6+6�?� "@

��W�):' ?) G)@���%&) &-?!%8!@�-=%'?6&@�B6+6�?: ++67@

��2�):' ?) G)@���%&) &-?!%8!@�-=%'?6&@�B6+6�?7!%) @

��T�):' ?) G)@���%&) &-?!%8!@�-=%'?6&@�B6+6�?1+( @

����):' ?6()'()@�%&) &-?!%8!@�-=%'?6&@�B6+6�?7!%) @�B0'-?6**@

@16":�7%&"67?A;>�<@

2

W���*���'"-��,S"-&�����������������������������������������2

W

W���-������'"-�,S"-&�����������������������������������������2

W

W���6������������������,S��������2

W

W

T���6��������,L6()*%+ �������������������������������������2

T���#������������������ ������,L�2

W

W���#-8

@%&%)

OU7%&))+���I"�����������������'"-�������I

@'�6B

/ �?O"-&�>&6&1+0&=>������@

/ �?O"-&�>&6&1+0&=>������@

@ &"

Systems Programmer (Portugal) © Xephon 2002

MVS news

MegaCryption Labs have announcedVersion 5.2 of MegaCryption/MVS, amainframe-based encryption tool.

With this new version, MegaCryptionsupports both the OpenPGP standard andIBM’s cryptographic coprocessor.

The major enhancements of this new releaseare:• The RSA algorithm is supported (key

generation, encryption, and digitalsignature).

• RSA keys can be managed by ICSF and thecrypto coprocessor, which translates intomore speed and more security. The cryptocoprocessor can be used to process a PGPor GnuPG file. PGP or GnuPG keys can bemanaged by ICSF.

• Different modes combining hardware andsoftware encryption are available. There isfull hardware encryption (for bothsymmetric and asymmetric encryption) ormixed modes (hardware symmetric orasymmetric encryption).

• Improvements for PGP- or GnuPG-encrypted datasets (speed, no size limit,support for signatures embedded into aPGP/GnuPG-encrypted file).

• Decompression of PGP- or GnuPG-encrypted datasets.

For further information contact:ASPG, 3185 Horseshoe Drive South,Naples, FL 34104-6138, USA.Tel: (239) 649-1548.URL: http://www.aspg.com/megacrypt.htm.

* * *

Diversified Software has announced theavailability of JOB/SCAN Release 6.1.2F, itsJCL validation and change product,

promising error-free production JCL. Thisnew release includes an enhancement to theexisting ESP Workload Manager schedulerinterface from Cybermation.

With the enhanced interface, the productinvokes ESP simulation to resolve ESPvariables whenever JCL is scanned in the editmacro environment, enabling users to scanJCL being developed for ESP withoutactually saving the JCL into the ESPenvironment.

There’s also an option now to display thestructured JCL listing reports produced by aforeground validation in View mode, whichsupports the use of edit macros.

Over 135 specific changes and enhancementshave been implemented, including over 60interface enhancements to applications suchas Control-M, Tivoli Workload Scheduler(OPC/ESA), CA-Librarian, and ASG-Zara,as well as support for changes to ISPF, OS/390, z/OS, JES3, and SMS.

For further information contact:Diversified Software Systems, 18635 SutterBlvd, Morgan Hill, CA 95037, USA.Tel: (408) 778 9914.URL: http://www.diversifiedsoftware.com/html/jobscan.htm.

* * *

IBM has announced Version 6.0 of itsVisualAge Smalltalk Enterprise for creatingand deploying cross-platform, object-oriented applications.

For further information contact your localIBM representative.URL: http://www.ibm.com/software/ad/smalltalk.


Recommended