+؈~ MBX_AXP012.A/L` MBX_AXP012.ABACKUP/LOG/VERIFY/INTERCHANGE EXE:MBX*.EXE,INT:MBX_*.PEN,INT:MBX_MESSAGES.SDL,SRC:MBX_DECLARATIONS.SDL,SRC:MBX.HLP,SRC:MBX.CLD,DOC:MBX.LNI,SRC:MBX$STARTUP.COM,SRC:KITINSTAL.COM,INT:KITDATA.COM KIT:MBX_AXP012.A/SAVE_SET 590116169  G V6.2 _ALP19::  _DSA2: V6.2 ~ *[012.EXE]MBX_CLI.EXE;1+,d.6/ 463-/0123 KPWO756k2)57"Z)589G HJdH h((50p(5MBX_CLIMBX V1.2A11-20$ $T $ 0$ $J1$( < dMBX_ROUTINES_0014 LIBRTL_0014& LIBOTS_0014v  PAS$RTL_001@ZYSYS$PUBLIC_VECTORS_001MSG00000000 _MBAxxMBXFILTER@WAITN0@8<| MSYMBOLLOGEOFPID 0P'P PSYM0"@( 00@@( 0 @( 0x0|  PWR0P0@| POSITIONSPROTECTIONPERMANENTMESSAGE_SIZESYSTEMWORLDOWNERGROUP0HLp$ ACTION0R @0(R P0@P0 0N  0M '.5<CHACTIONCREATEDELETEATTACHDETACHSENDRECEIVE`pP#~ x^^~޴GG_&R"G1,q.4G HS`J3D(>H18H3H$vH3F@^ (>0z!H( @PB. XbGJ"_"GVZkH(=PB!v H*]"<CGG?'GBZkxBPBGR"7vJ<CGGGBZk<CBGGGGGGDZkB7vJGBBZk<CPB8<ݳGGGGBZk<CBGGGGGGCZkB!v HGuBZk@B9@ & &@=Hb܁"Dݳ4G8]"s"4G@"G0qZk`BG88"@GH4GP4GG#@0@hbJZk0B8bX"G_"}"G"8"YZk@BHb"GX}"G_"tKZk(=0BG1v JX@*"B"GEZk pCwJF@4G&,D@%H%D&< pC4Gw J FcB.TtB5JF>PCw`K#@`G,D$@4G B%H4GD*" 0C4Gw@J@FB.UB6JF>4G(=wK*" B1v JxB"@HZk0@GE,Y@4G!9HADE< ÒwKGCB.SSB4G4JF>Gx]]}ݤ#kp#&P^X; X^&`~"hCps"x޴>"G~G" >tG~{Gb#P`@Gx@ӡ5@ B &Gb܁"GtGupZk?$G$H@ ! b#=" 4G7@ӡ@8 &?&"01"@2@0 _&&R"1s"@&@@$`æBC"?'6vJ<CGGGAZk<CBGGGGGGBZkB6vJGuAZkBB &b܁"ݲ4G ݳ]"GG3pZk4G/z# ?&&G=GJ@ 1"C "=xC""=="tGb#@ӡ5@# C"'æBG6vJ<CGGGAZk<CBGGGGGGBZkB6vJGB3AZkB &bݲ܁"ݳ4G]"GoZkx@BG=Hb2vH(" tGK]Zk`Bhb(" ="TGUiZk = 0B8b("4Gm]ZkpBxbG]WZk?æBC"&6vJ<CGGGNAZk<CBGGGGGG}BZkB6vJG@ZkBݲzC"xæB ݳ6vJ<CGGG5AZk<CBGGGGGGdBZkB6vJGB@ZkB & &b܁"ݲ4Gݳ]"s"4G"GoZk? G@%@D?æBC"'6vJG<CGGGAZk<CBGGGGGG6BZkB6vJGB@Zkx#BzC"!v H<CݲG ݳGG@Zk<CBGGGGGGBZkB!v HG@ZkB8@ & &b=܁"ݳ4G]"s"4G"QoZk &&GG "D@C "b#C"="="tG5@ӡ5@# C"'æBG6vJ<CGGG@Zk<CBGGGGGGAZkB6vJGBW@ZkB &bݲ܁"ݳ4G]"GoZk@BG=Hb2vH8"$tGo\Zk`Bhb8"$="TGyhZk$= 0B8b8"4G\ZkpBxbGVZk?æBC"&6vJ<CGGGr@Zk<CBGGGGGGAZkB6vJG@ZkBݲC"æB ݳ6vJ<CGGGY@Zk<CBGGGGGGAZkB6vJGBZkB & &b܁"ݲ4Gݳ]"s"4G"GnZkàGB@>æC"&6vJ<CGGG/@Zk<CBGGGGGG^AZkB6vJBGZkݲæB ݳC"6vJ<CGGG@Zk<CBGGGGGGEAZkB6vJGZkBB & &bݲ܁"ݳ4G]"s"4G"GxnZkL?$! GBC"'G @% æ6vJ<CGGGZk<CBGGGGGGAZkB6vJGZkBB & &ݲ ݳ#޴܁"4G]"ās"tGGbHnZk$GF@ Gb#" ݰ4G @ӥ@$?$ 0! @@~ &?&"11"@&@$ æBC"'6vJG<CGGGZk<CBGGGGGG@ZkB6vJGBGZkB &bݲ܁" ݳ4G]"GnZkUø?$G %HL@$!  =C"b#" ="tGݰ@ӡ5@6 @G].BGGR]J]>"GB"cZkC""="(æBC"6vJ'<CGGGGTZk<CBGGGGGG@ZkB6vJG~ZkBB &b܁"ݲ4G ݳ]"GmZk#"C""pb# _Ӹ&G HG"P@C"b#"=" =tGݰ@ӡ5@8 @4GB=GG}.G"GS}J}>B"ZkC""="*/æBC"'6vJG<CGGGZk<CBGGGGGG0@ZkB6vJGB~ZkB &bݲ܁" ݳ4G]"GgmZk4G#"C""pb#_Ӹ&G HG"Q@C"b#"=" =tGݰE@ӡ5@8 @TGB=GG}.G"GS}J}>B"~ZkC""="*/æBC"'6vJG<CGGG~Zk<CBGGGGGGZkB6vJGBS~ZkB &bݲ܁" ݳ4G]"GmZkTG#"C""pb#a_Ӹ&G HG"M@Cb#C"" =="tGݰ@Ӧ5@9@tG=GG=.BG"Q=J=>GB"h~ZkC""="pb#7_/BC"&%vHG<CGGGW~Zk<CBGGGGGGZkB%vHG@}ZkB &b܁" ݳ4G]"GlZk tG#"C""pb# _ð%H` $GC Gb#" ݰ4Gs@ӥ@8$?$ 0! @2@0 &?&"11"@&@$ æBC"'6vJG<CGGG ~Zk<CBGGGGGG8ZkB6vJGB}ZkB &bݲ܁" ݳ4G]"GolZk4GD/D0 $GC Gb#" ݰ4G+@Ӥ@9$$ 0 @0@.?$&! 1"@& @$æBC"'6vJG<CGGG}Zk<CBGGGGGG~ZkB6vJGBg}ZkB &bݲ܁" ݳ4G]"G'lZkTGð4G0c"àp"GpB vH="ݰ]"H"H#}}"GxbgZkDP"0#:?&Gxx1"80JB8 &Q"G@#@BC"$7vJ<CGGGp}Zk<CBGGGGGG~ZkB7vJG}ZkB &GC ݳ܁"4G]"GG!B2C"!0#'!v H<CGGGK}Zk<CBGGGGGGz~ZkB!v H8@G|Zk= ݳGtG]"GGBbGkZkGGP]X]`}hpxݤ#kGGG#&^; ^&(~"0GCs"~G{G"P`@pb# >>"~GtG @ӡ5@ pB &G"xbGtG|kZk  ?$GC! b#=" 4G? @?$! @7?&_&1"0R"@1 @/@&&s"1"@&`@$æBC"?'6vJ<CGGG|Zk<CBGGGGGG~ZkB6vJG{|ZkpBB &xb܁"ݲ4G ݳ]"GG9kZk4GDD&" "CGG"b#4G = @?$! &@9 "?&@201"_&@. R"&@(@1s"B@$`æC"?'6vJ<CGGG|Zk<CBGGGGGG}ZkB6vJGB1|ZkpB &xbݲ܁" ݳ4G]"GGjZk/TG4G#G B(bp#"0C"GtG}ZkD#:_& xxR"08#1?J2B8#pc3Jpc &Y" &@G"@ UCd0#B2C"&!v H<CGGG>|Zk<CBGGGGGGm}ZkB!v HG{Zk6@GC=G ݳ@æBC"'6vJG<CGGG|Zk<CBGGGGGGN}ZkB6vJGB{Zk &Gݲ ݳ"4G]"GG B2C"0'7vJ<CGGG{Zk<CBGGGGGG*}ZkB7vJBG{Zk ݳG4G]"tGpBxbbjZkGG] ](}0@#k#&^H; ^&(~"0GCs"~G{G"P`@b# >>"~GtG7 @ӡ5@ B &G"bGtG4jZkP ?$GC! b#=" 4G @?$! @7?&_&1"0R"@1 @/@&&s"1"@&`@$æBC"?'6vJ<CGGG{Zk<CBGGGGGG|ZkB6vJG3{ZkBB &b܁"ݲ4G ݳ]"GGiZk4GDD&G"!\@Gb#" =4G @?$! @9 &?&"01"@0@. _&&R"1s"@&@@$`æBC"?'6vJ<CGGGD{Zk<CBGGGGGGs|ZkB6vJGzZkBB &b܁"ݲ4G ݳ]"GGiZkTG4G#G B(bp#"0C"GtGOZkD#@ 0:_&xxR"8#1?J2B8#pc3Jpc &a" &@L"@%UCl0#Bp#2C"!v H9v K<CGGGzZk<CBGGGGGG&|ZkB!v H&GzZk6@GC=G ݳTG]"GEæBC"6vJ'<CGGGGzZk<CBGGGGGG|ZkB6vJG{zZkB &Gݲ" ݳ4G]"GG#Bp#2C"!0!v H$7vJ<CGGGzZk<CBGGGGGG{ZkB7vJGUzZkB}G ݳTGG}"GBbiZkGG] ](}0@#kGG#&^; ^&(~"0GCs"~G{G"P`@b# >>"~GtG @ӡ5@ B &G"bGtGhZk ?$GC! b#=" 4G @?$! @7?&_&1"0R"@1 @/@&&s"1"@&`@$æBC"?'6vJ<CGGG"x޴tG>^G$~ G^H{GP`@b# >G @ӡ5@ B &Gb"GtGgZk&Gb F@s"b#`C"" ="}tG @ӡ5@# æC"'6vJ B<CGGGGyZk<CPBGGGGGGMzZkXB6vJGxZkBB &b"ݲ4G ݳ]"GgZk G$B H"c" $`#4G "!v Hb&@}= ="=(]" tG$}(wOZk5@# æ BC"G6vJ<CGGGxZk<CPBGGGGGGzZkXB6vJGxZkBB &b"ݲ4G ݳ]"GGEgZk&G%" G!"@b#4G  @ӡ@ &"?&@01"_&@ R"&@&@1s" B@"`æC"G6vJ<CGGGxZk<CPBGGGGGGyZkXB6vJG@CxZkB &bݲ" ݳ4G]"GgZkR "?&&GC1"4GC " =$PC"# "((=",tGb#@ӡ5@% @C"æ BG6vJ<CGGG_xZk<CPBGGGGGGyZkXB6vJG@xZkB &b ݲ"$ݳ4G ]"GfZk]PB=b2vH8"0tGTZkBb8"0="TG'`Zk0= Bb8"4G?TZkBbG/NZkAæ B6vJC"<CGGGG xZk<CPBGGGGGGOyZkXB6vJ@GwZkݲRC"Pæ B ݳ6vJ<CGGGxZk<CPBGGGGGG6yZkXB6vJG@wZkB & &b" ݲ4G$ݳ]"s"4G "jfZk&G #! D@s"Gb#C" " } ="$=tGO@ӡ5@& @H]æ BC"G6vJ<CGGGwZk<CPBGGGGGGxZkXB6vJGowZk@ &GCݲ ݳ"4G]"G8b"&B vH4G@C"bH#" =" =(]" tG$}(%NZk5@# C"Gæ B6vJ<CGGGwZk<CPBGGGGGGxZkXB6vJG5wZk@ &ݲ ݳ"4G]"GGBbeZk ?$GC! G@b#=" 4G@ӡ@6 &?&"01"@0@. _&&R"1s"@%@@#`æ BC"G6vJ<CGGGLwZk<CPBGGGGGG{xZkXB6vJGvZkB@ &b܁"ݲ4G ݳ]"GeZk4GDD!N@GG"@b#4G =r@Ө@8$ ?$@00! &@, "?&@&11" B@" æC"G6vJ<CGGG wZk<CPBGGGGGG8xZkXB6vJG@vZkB &bݲ܁" ݳ4G]"GoeZkTG4GG  BC"tG H U@E æ6vJ<CGGGvZk<CPBGGGGGGxZkXB6vJG}vZkB@ &b"ݲ4G ݳ]"=eZk B0El#" #= c"h"0"G="(b ]"G~ZkD#G:_& xxR"G08#1?J2B8# &ys"GA0 & &"J"A*A( & BZ"C"A"#9v K<CGGGvZk<CPBGGGGGGwZkXB9v KG@-vZk &=GC ݳ"4G]"GGG./ C]=B v@IC@]b"==" ]"tGLZk5@L#æC"G6vJ B<CGGGMvZk<CPBGGGGGG|wZkXB6vJG@uZkB &bݲ" ݳ4G]"GGdZkHGlBBbH"GG}"GGFZk?&BC%vH1"@ C==""]" =tGbLZk5@L#C"G B'vH<CGGGvZk<CPBGGGGGG5wZkXB'vHGuZkB@ &b"4G ݳ]"GGkdZk $y GA ?% $)!J  AZA, & BZ"2C"A0tG7vJ<CGGGuZk<CPBGGGGGGwZkXB7vJGyuZkB@bG ݳ4G]":dZkB&b*"4G&sZky/0 Bh)v@I$vH2C"'vH<CGGGuZk<CPBGGGGGGvZkXB$vHGOuZkB@bG ݳtGGG"G dZkB&b"4GrZkL0 B2C"tG(vI<CGGG~uZk<CPBGGGGGGvZkXB(vIG%uZkB@bC ݳG4G]"cZkB&bp"4GrZk$#0 B*v@I(vI2C"<CGGGGTuZk<CPBGGGGGGvZkXB(vIGtZk@ &ݰ ݳy"TGG}"BbcZkGGP]X]`}hpxݤ=]#kG#_&@^R"H^!nCP~"X>"`tGh޴pG$ ~ {GG^P`@b#G >@ӡ5@ &GBb"GtGcZkG$Q@ b#"4G F@ӡ@; &"?&@601"_&@2 R"&@'@1s"B@#`æC"?'6vJ<CGGGtZk<C(BGGGGGG vZk0B6vJGBtZkB &bݲ" ݳ4G]"GGBcZk-4G #!?H #'/0B@"?"GktZk .?"t#JWJ(BF" >""B"4GuZk(B@]""uZk$GH# b#"4G @ӡ@ &"?&@01"_&@ R"&@(@1s"B@$`æC"?'6vJ<CGGGtZk<C(BGGGGGGuZk0B6vJGB%tZkB &bݲ" ݳ4G]"GGbZk/&&Gb "I@"b#`C""=="tG@ӡ5@# æC"'6vJB<CGGGGDtZk<C(BGGGGGGsuZk0B6vJGsZkBB &b"ݲ4Gݳ]"GbZk`G="# vH&&B@C"=b C"" =="GGJZk5@} æC"'6vJB<CGGGGtZk<C(BGGGGGG7uZk0B6vJGsZkBB &b"ݲ4G ݳ]"GnbZkY" &G!U@Cs"b# C" ="}="tGU@ӡ5@# C"'æBG6vJ<CGGGsZk<C(BGGGGGGuZk0B6vJGBwsZkB &bݲ" ݳ4G]"G7bZk GBPH#C" vHU$@ `@!0.!" Q@0JUB c<CGG3v`JGsZk" /7@XK FB""wHGGG ?sZk&G"#"G =b#"4G@ӡ@ &?&"01"@@ _&&R"1s"@&@@$`æBC"?'6vJ<CGGGnsZk<C(BGGGGGGtZk0B6vJGsZkBB &b"ݲ4G ݳ]"GGaZkR ?&&G0G@1"4GC "=PC""#="tGb#@ӡ5@& @æBC"'6vJG<CGGG/sZk<C(BGGGGGG^tZk0B6vJGBrZkB &bݲ"ݳ4G]"GaZk^PxB=b2vH(" tGNZkBb(" ="TGZZk = hBpb("4GOZkBbGHZkBæB6vJC"<CGG&GrZk<C(BGGGGGGtZk0B6vJBGrZkݲRC"PæB ݳ6vJ<CGGGrZk<C(BGGGGGGtZk0B6vJGB}rZkB & &b"ݲ4Gݳ]"s"4G"G9aZk&G  W@Gs"b#C"" ="}tGݰ@ӡ5@' @H`/æBC"'6vJG<CGGGrZk<C(BGGGGGGsZk0B6vJGB;rZk &Gݲ ݳ"4G]"G:&&B vH4G@4T@"4Gb"H#="]" ݰtGHZk5@$ æC"'6vJB<CGGGGZrZk<C(BGGGGGGsZk0B6vJGrZkB &ݲ ݳ"4G]"GGBb`Zk?$G M@! Gb#"=4G @ӡ@7 &"?&@201"_&@. R"&@'@1s"B@#`æC"?'6vJ<CGGGrZk<C(BGGGGGGHsZk0B6vJGBqZkB &bݲ܁" ݳ4G]"GG~`Zk4GDDM@GG"b#4G =>@ӥ@9$ ?$@10! &@- "?&@'11"B@# æC"'G6vJ<CGGGqZk<C(BGGGGGGsZk0B6vJG{qZkBB &b܁"ݲ4G ݳ]"G:`ZkTG4GDGU@BD!æC"&tG6vJ<CGGGqZk<C(BGGGGGGrZk0B6vJGIqZkBB &b"ݲ4G ݳ]" `Zk#B0D0D0c"@" "("=#}G="]"}"GbwZkD#G :_&G0xxR"8#1?J2B8# &Gqs" &@/ &B""@@)( &R"B@##C"?$9v K<CGGGMqZk<C(BGGGGGG|rZk0B9v KG!CpZk &GC=" ݳ4G]"GGGH@#xBEb=8"GG}"GGAZk?$&B vHC@Cs"4G]"b="]" ݰtG}ݲGZk5@L$æBC"'6vJG<CGGGqZk<C(BGGGGGG2rZk0B6vJGBpZkB &bݲ" ݳ4G]"GGh_Zk $Gq $@ &@^ B" &@,R"B@02C"$8vK<CGGGpZk<C(BGGGGGGqZk0B8vKGCupZkBbCG ݳ4G]"tG5_ZkXB&`b*"4G!nZkv0B(  vH2C"$vH<C%vHGGGpZk<C(BGGGGGGqZk0B vHG?'IpZkB@bG ݳtGGG"G_ZkXB&`b"4GmZkH0B2C"&$vHtG<CGGGwpZk<C(BGGGGGGqZk0B$vH@GpZkGC ݳG4G]"$/%0B ä vH2C"&vH<CGGGTpZk<C(BGGGGGGqZk0B vH'GoZk@ &q" ݳTGG}"GBb^ZkGG@]H]P}X`hݤp#kGGG#@H^4G0[P^X~`G~G8{ooZk" &&G"L@C"" b#="= ]"tG@X"5@ B(b &G"GtG~^Zk B=b2vH8"0tGKZkPB "Xb8"0]"tGdPZkB0=b8" D4GKZkBbGEZk B &(b"GTG[^Zk`@ "\|@PCk/pb#_/b#_/b#_ /Hb#:_/b#Z_/8b#_GH]P]X}`4Gp#k0#G~G^G^GG"@B[oZk="tGpBPBFBxb G$]]"8vZk`B"hb0="]"tGqlZkG]]#kG#G> @hG~G^G^G~GG8=pB")oZk } $]"GBG"D(4 @b,=tGvZk"B@="b]"tG>lZk BGG(bTGIZk4G8}c `=?@B ]"b="tGuZk} ]=#v`H"v@Hb@` .qHPJF>G]@r.tRHSrJtFr>G]G]} #k. HP JF>r. RHS rJtFr>#G> @hG~G^G^G~GGGB"nZk4G"D t @$=`G]_B BbL]"H="GtGuZkH C"4G@G"4G4GBGC4G7G B0"GGnZkG0=0 ("4GB 4C"@4GGB]`8]c `4GG ݢB B <="b@]"tGPuZkB"bP="]"tGkZkG]]}0#k #G> @hGG~^GAGG"GEnZk4GD @$ }B@ݲA"a0="]"tG[kZkG]#k0#G~G^G^GG" BnZk="tGPB0`BFBXb G$]]"tZk@B"Hb0="]"tG3kZkG]]#ke MBX_MESSAGESTXHp@phP@P`p0 @P  @ MBX_ROUTINES@LIBRTL@LIBOTS@PAS$RTL@SYS$PUBLIC_VECTORS*[012.EXE]MBX_MESSAGES.EXE;1+,d./ 4-/0123 KPWO56U8)57:)589G HJP h*)50r)5 MBX_MESSAGESMBX V1.2A11-20$ e"(({P (X x` h p x . \    B t@ H P <X    R    @ȁ Ё ؁   F v  PMBXCRE?Mailbox !AS created with room for !UL message!%S of !UL byte!%S$MBXDELMailbox !AS deleted4MBXATT#Channel !UL attached to mailbox !AS6MBXDET%Channel !UL detached from mailbox !AS(MSGSNT!UL byte!%S sent to !AS.MSGRCV!UL byte!%S received from !AS(EOFSNTEOF marker sent to !AS> MSGRDWAIT)Waiting for read operation on mailbox !AS> MSGWRWAIT*Waiting for write operation on mailbox !ASB MBXALRATT-Mailbox !AS already attached with channel !UL2MBXMKDELMailbox !AS marked for deletion.EOFRCVEOF marker received from !ASJ TRCMSGSNT5Message truncated, !UL byte!%S out of !UL sent to !ASP TRCMSGRCV;Message truncated, !UL byte!%S out of !UL received from !ASN TIMMSGSNT:Time-out expired while waiting for a reader on mailbox !ASP TIMMSGRCV;Time-out expired while waiting for a message on mailbox !ASB MBXINTERR.Internal error detected - please submit an SPR6 DEVNOTMBX!Device specified is not a mailboxF MBXINVPRT2Invalid mailbox protection specification :!/ \!AS\D MBXINVTIM0Invalid mailbox time-out specification :!/ \!AS\2 MSGINVCNTInvalid message count:!/ \!AS\2 MSGINVSIZInvalid message size :!/ \!AS\F MBXTOOBIG2Resultant mailbox size too large : !UL (!UL * !UL)0 NAMALRXTSLogical name already exists4 NOCHANATTMailbox has no channel attached. MBXNOTCRECannot create mailbox !AS. MBXNOTDELCannot delete mailbox !AS0 MBXNOTATTCannot attach to mailbox !AS2 MBXNOTDETCannot detach from mailbox !AS6 MSGNOTSNT"Cannot send message to mailbox !AS< MSGNOTRCV'Cannot receive message from mailbox !AS MBXLL MBX_MESSAGESMBX V1.217-JUN-1999 10:3217-JUN-1999 10:32Linker A11-20  .$$ABS$$. *[012.EXE]MBX_ROUTINES.EXE;1+,d.$/ 4$!-/0123 KPWO%56'57(589G HJ h*d`0!|'5 MBX_ROUTINESMBX V1.2A11-20$ $4$ $J 4& LIBOTS_0014v  PAS$RTL_001@ZYSYS$PUBLIC_VECTORS_0010 ( 0 0+00 @0 @$ 0@0P( 08`( _CHANNEL0 0 @$ 00 P$ 08Pp$| P~ MBX_AXP012.Ad/[012.EXE]MBX_ROUTINES.EXE;1$2< ********.00******0,P8| LNM$PROCESS_TA LNM$FILE_DEV8 00$0 0 %P4 0 ! ( 00 0 00 p!@, 0 8 0 0( `0P(< p0 ( p0 @(< H0 00 P( MPORARY_LNM$PELNM$TEMAILBOXRMANENT_0 P0X  0(@X  p!%,h0#^4G [~0vJG({$@ZkG] #kGGG#8^@^H~PX`޴hG~Gp`1,,A1H@H1<<4Gág@ GGG5/@1aHL$JA?Ba!@A!@!a@ @`@'@DeDC@GGG 1HLHA@a!@A!@!@@ @'@DDCG@G `" H LHQ@q1B1@@ B#BFDCG`¤0B"8bGGH}"GGOZk BH (bGGG}""GczZkPBXbgGGG4G"G0nZk0B8b "[TGG}"TGGOZk B(bGGTG }""GCzZkPBXbGGGTG4G"GnZk0B8b(";TGG}"TGGnOZk B(bGGTG(}""G#zZkPBXb'GGTG4G"GmZk0B8b0"}TGG}"TGGNOZk B(bGGTG0}""GzZk B(bGGtGb""GyZkBbG** EXZkbf&!?H$D&_&P@TG0vJpBB=&""xb+ZkG8]@]H}PX`ݤhp#kG#G~G@^GHGGGG0.P.8.0J[R PJ:"UJQF4BA"Ft~JFG8>BZk.7.0^.@JGQ 7JR^J0F2"4BFt~JGTF0^>W"AZk֦X޶"9рF>P @> t#`GTGruJStJuFr(`Cp[KPCXKG&0}844:}#3v`JC5vJpB= ](@B}="=(}" "$}G(] ]"ݲ0`@ZkG@]HP#k#_&(^  ~0vJ"!v HP@ [B2@tGC >"0G>">"^" ~"G({@ZkG(]0@#kGG1#~G>G ^G(G..^.[JU JR^JF4B"Ft~JGTF^>A"qAZk6.V..6J@R VJ >UJQF4B"FV"t~JGF>_AZk~P@3v`J.4B"VJF"^"twJGF>OAZk~.@3v`J "VJ4BF^"twJGF>AAZk.J F"" QsJѠFTGRWJSF Q@P @zxJ="[uKTGxGz `@$7`(@~ZkG ](0#k/X KGG#_& ^  ~0vJP@!v H [B2@C >>""(G>^"tG({;@ZkG ](0#kGG#G~G ^G(GR"TG..>.[JV JQ>JF4B"FtJ4F>>G@Zk./>.@J"X KA"Q>JG4BFt~J4F>>G@Zk~@3v`J^"4B.F#VJ"txJGF>@Zk~8,@3v`J "A8H4BF^"txJG4D8<@Zk @(`0>"}ZkG ](0#k#G ^G(^R"0~8G~#=G0,.=.0H@[T J"Q=JF4BFt}J4F=>G@Zk}b@B3v`J ,4B c @HF"]"tcJGDG@ZkqDpDVJWBp(}G*]"b3v`J4B B#.Fc tcJQ#J"4F"#>GZk% && H"C#tGC"="!?H"#(b#G} }"ݲ _ӡ5@? `DHH"GXrt#JZ"ScJѠFtFXr>`x5JP`@WJ'FXc" "#]"39v K];CBb\G=G`GG~Zk #5@!v HF5@ HC $ TB@ #"Gb#_ӡ5@ BC"tGZk4GG0]8]@}HP#kFùG#G~>8^@^H~PXGG@"q`DG..8>.[Jp`DU J:"Q>JF4~BFt~J4F8>>GiZkVJWBFQsKRPJSFQF@`B`8} B3v`JGaB .4@ VJF8":]"tHGF">~@Zk B@B"G% &y@ZkB"G8]"<Zk&C"ݲD"G =" }""b#_ӡ5@ D"d3v`J4BFa`#.tcJBQ#J"4FD"#>GZk"@/G=D0B8b $"2v@J("tGZZkpBxb("4G`Zk$3vH`B2?HhbSFC("$4G [ZkPBXbGTZk &"d3v`J4BF2`#,BtcJ"A#HG4DD"#<~ZkFvK@HDF$B#4GG8]@]H}PXG`#kFhiQ K_FrFQl_#. cJQ #J4F#>#, cJA #H4D#< KDF#G ^G(^R"0~8G~#=G0,.=.0H0[T J"Q=JF4BGFt}J4F=>G~Zk}b0B]"3v`J ,4B c @HF"tcJGD<~Zk`D 0r#H"Q#JрF2FG0+ U{tJZTK?&[GP`@U]"#(bG @!v H B1@c"`"=GGG{}Zk`#5@]!v HF5@ crG ](]0}8@#kG;#^&hG5vJ]#~#Qqj ^([BCTG0{ԒJ G\{ZkG] #kGGG#G0^G8^G@~GHG~GG@"p/.0>.`KBP JQ>JF4~BF2"t~J4F0>>G~Zk!0~PbB2^"3v`Jh,4~Bhc @HF"tcJDG<}Zk֢ 0 DD#òqKPJF]@FuKTJF@FנBP]q@G;p@GA6HWB;`D7J㶘qKPJF% ?&("01" ¦HB@b8K C#C;oKG2O?'CC"c5`BF5`BF#tG"C7JFb#==" } }"=_ӡ5@w D"sBb8="TGzZk5@Gmc/PB3v`JGXKaB4B0"FC"tJGG?~ZkPBpB"G~ZkB"G0]"x}Zk#PBXb("9v KG=G}"GGJZk,Gt#JB@H"D(]"|Zk}PB]"3v`Jh/4~Bh XKF"teJGG?|ZkaK@HD`D @ qDpDPJW B ѠD%"GrtKSeJtFrB b`;gK5JE HD0b#j_ӡ5@z "&b#s"%%"GESFE&BLs"SFEE"_ӡ5@ ?&ԁ1"D"Fb"%"b#|_ӡ5@\ 0B8b ="TGyZk5@S ѠD峠"Grt%J"SeJѠFtFr]`x5JE#WJCF'e"%x"]"Q9v KG ];C@BHbG=GG]{ZkxG5@0vJ`D0F5 @@a" `xJWJF`D1C1 $Y G`D%p#KXKG`D*B) $ PBGE"tG|ZkG]] }(08@#kT KD DWFYYÚá/ JFG #KGFG#^?&h h P@~!v H [1@ G> ""TGGG({GxZkG] #k#G~^ ^(~08@GGGG@"...[J`DU J"VJF4~BFt~JGF>{Zk~(B3v`J^"4~Bh/Fh XK"teJGG?{ZkaK@HD`D @ qDpDPJW B ѠD%"GrtKSeJtFrB`b5JE;gK HDb#S_ӡ5@i "&s"%%"Gb#ESFE&BLs"SFEE"_Ӱ5@DD "G? Bb8="TGpxZk5@J (B0bG0vJG"}"GGHZk,Gt%JB@H% % &DC"<"]"<{Zk" =E"="b#_ӡ5@' B`DGE"tG-{ZkŢ8`JY#K G8`D/ @/ $a GB`DGE"tG{ZkyHXKG`D# C" $ G] ](}08@P#ke KD DhFjj/8 J?GD8? HG8GG#^4G [~0vJG({xZkG] #kGGG#G~>^@" ^(^0~8GG.. .H[JU J""VJF4~BFt~JFG >zZk ~bHB"^"3v`Jh/4~Bhc XKF"tcJGG?zZkަFaK@HDFd @c qGpGPJW Bb `D#"GrtKScJtFrB\`b5JC;gK HD(b#W_ӡ5@; "&s"##"Gb#CSFE&BLs"SFCC"_ӡ5@ ?&D"ԁ1"F#/"#"b#h_ӡ5@ (B0b ="TGkwZk5@ HBC"tGLzZkݦcFyvHXKGF C $i G ](]0}8@#k KD DFÚ/ vHG8GG#G~^^~ G#G`{c D,#,#(F,#D,C"4GSFB,C#"0샢bGTGBGGwZk5@. c" #,C1v JG ( #,C#1v J"!v Hc"G> (GGGBbvZkc5@B#v`Hb#D4GTG5@TGvZkG]]} 0#kG#~G ^G(^G0~G8@GGGG. .^.[JQ JR^J0F4~B"Ft~JTFG^>@"yZk,8."H.Q 8JBUJ F2pB PF"r~JGF>X"yZk~@B3v`J^"4~Bh,Fh @H"tdJGD 1pB$/ 0F "Y$KqdJ1GG$?}@B"]"3v`J?"zZk(BxZk/"ydJXK "G?"?]"B0F`DVyZk0Dx|IJ8pKY#K0G8`D BP=q Fp FrStJWBrXрDC$"vK"@HDDb#_ӡ5@ "b#GD1'J2XJQF$"D_ӡ5@ "&s"$$"G b#DSFE&BLs"SFDD"_ӡ5@ ?&D"ԁ1"Fm/$"Gb#T_ӡ5@f $B D"0vJ0Bd"/7pBXK F4vJ "wdJGG?xZkBb ="TGuZk5@ @ "D X]`DvKUJF`DOBNB $PD"tGxZkR 0BPD"tGxZk|X=`D pK@HD`D;B: $ /x`DRHrtHScJtFr`D3`׀B2C/CK5`5vJ & 'q"B# UCFGG ](]0}8@P#kA8 K?GF8D?rFrGJé KFFý KDFr HFFrc/[ cKzGGGG#4G~G^4G^G~G G#G{([8[0{#c #" -vZk5@ #C`XB`b4vJb"c"1v JG޶GGG (uZkc5@HB#v`HPb#D4GTG5@4G;uZkG]]} 0#k#G~G^G^@" ~(08޴@GGGGG0/P/~/0KZ PK"[~KYG4~BhBFDt~JGtG~?xZk~¤hB3v`J^"4~Bh.Fh WJ"tfJGF>wZk!֢xKWJFD C q`Dp`DQRSJW`BQ `qDpDUZ[KW`CU`PD4GyKXKG0J& FHFFCfݲ&""hb#_ӡ5@ 08"Hb#GF1'J2XJQFF&"_ӡ5@ ("&s"&&"Gb#FSFE&BLs"SFFF"_ӡ5@ ?&D"ԁ1"FÜ泜&"G8b#_ӡ5@ XBG"11B<CGGG>wZk4B&/45BBY&K F "`B"t&J4G4G&?xZkBGGxZkHB@Pb="TGtZk5@A@G# @"!@`"G`|PDyKXKGD C hBq`DGF"tGUwZkĢp`D $VJWB IJ`G^PD0rKQ$J2F0D| @B{@hBq`DGF"tG8wZk7p`DA HW@7v $Z CxDGRKqKDPJFnxFR@JzDJUJFDf@Ce@hBGF"tGwZk|&Pݦ"67vJ"f3v`J pB D[`/`cJhBXK"G $?G F"vZky "R`#/wcJhB $Y#K"7GG#? F"vZkJ G]] }(08ݤ@P#k/ KFGQ_FQU_GUk KG8GnĢFIJ|0 K?FQF0?7 $Z ?D7ÊÒ DJFUG// cJX KG?#/ cJY #K7G#?TX@BA @ $ R ?0@`p 0 `@@ppP @LIBOTS@PAS$RTL@SYS$PUBLIC_VECTORSLL MBX_ROUTINESMBX V1.217-JUN-1999 10:3217-JUN-1999 10:32Linker A11-20  .$$ABS$$.( (0NP,h MBX_RECEIVE0N@%MBX_SEND0N0p! MBX_DETACH0N  MBX_ATTACH0N  MBX_DELETE0N  MBX_CREATE @j?|~ MBX_AXP012.A5di [012.INT]MBX_DECLARATIONS.PEN;1.*[012.INT]MBX_DECLARATIONS.PEN;1+,5d./ 4 -i 0123KPWO56+ 57d" 589G HJqarX17-JUN-1999 10:31:343MBX V1.2MBX_DECLARATIONSDEC Pascal V5.6-594MAX_MBX_NAME_LENGTH(5 MBX_NAME_TYPE( PERM_FLAG_TYPE( MSG_SIZE_TYPE( MSG_COUNT_TYPE(:@PROTECTION_TYPE(:@ MBX_CHAN_TYPE<DEV_NAME_LENGTH(=X DEV_NAME_TYPE( SENDEOF_FLAG( SYNCH_FLAG( TIME_OUT_TYPEBMAX_MESSAGE_LENGTH(C MESSAGE_TYPE(:@ STRING_LENGTH( PID_TYPEI H MBX_CREATEQ P MBX_DELETEU T MBX_ATTACHY X MBX_DETACH] \MBX_SENDi h MBX_RECEIVEMBX_DECLARATIONS17-JUN-1999 10:31:34MBX V1.2 678(,93 MBX_NAME_TYPE((;3$UWORD X >?@( ,H A3 DEV_NAME_TYPE(   DEF(, G3 MESSAGE_TYPE(@ - MBX_CREATE $J5NAME $K  PERMANENT $L MSG_SIZE $M  MSG_COUNT $N:@ PROTECTION $O: @IOCHAN $= XDEVICE@ . MBX_DELETE $R5NAME $S: @IOCHAN $= XDEVICE@ / MBX_ATTACH $V5NAME $W: @IOCHAN $= XDEVICE@ 0 MBX_DETACH $Z5NAME $[: @IOCHAN $= XDEVICE@ 1MBX_SEND $^5NAME $_ `SEND_EOF $a b SYNCHRONIZE  $c dTIME_OUT  $eC MESSAGE  $f: @SENDLEN $g= XDEVICE $  PID@ 2 MBX_RECEIVE $j5NAME $k l SYNCHRONIZE $m nTIME_OUT  $oC  MESSAGE  $p: @RECLEN $q= XDEVICE $  PID&`HN V| 2ht$ L ^ l  ( D l & T  : Z * V &FrHT"T"*[012.INT]MBX_MESSAGES.PEN;1+,c./ 4-i 0123KPWO56A57l589G HJ ]  anX17-JUN-1999 10:31:22=MBX V1.2 MBX_MESSAGESDEC Pascal V5.6-59> MBX_FACILITY? MBX_MBXCRE@ MBX_MBXDELA MBX_MBXATTB MBX_MBXDETC MBX_MSGSNTD MBX_MSGRCVE MBX_EOFSNTF MBX_MSGRDWAITG MBX_MSGWRWAITH MBX_MBXALRATTI MBX_MBXMKDELJ MBX_EOFRCVK MBX_TRCMSGSNTL MBX_TRCMSGRCVM MBX_TIMMSGSNTN MBX_TIMMSGRCVO MBX_MBXINTERRP MBX_DEVNOTMBXQ MBX_MBXINVPRTR MBX_MBXINVTIMS MBX_MSGINVCNTT MBX_MSGINVSIZU MBX_MBXTOOBIGV MBX_NAMALRXTSW MBX_NOCHANATTX MBX_MBXNOTCREY MBX_MBXNOTDELZ MBX_MBXNOTATT[ MBX_MBXNOTDET\ MBX_MSGNOTSNT] MBX_MSGNOTRCV MBX_MESSAGES17-JUN-1999 10:31:22MBX V1.2  Q  Y  a  i  q  y        B  J  R  Z        ā  ́  ԁ  ܁        <Xt&Fd"Bb"Bb ,8DP\ht   ( 4 @ L X d p | ^',"~ MBX_AXP012.A`cVi [012.INT]MBX_MESSAGES.SDL;1a*[012.INT]MBX_MESSAGES.SDL;1+,`cV./ 4a^-i 0123KPWO565U47pp489G HJ  MODULE $MBDEF; /*N/* This SDL File Generated by VAX-11 Message V04-00 on 17-JUN-1999 10:31:13.04/*/*3/* MESSAGE AND STATUS CODES USED IN THE MBX UTILITY/*/* MARC VAN DYCK, 01-JUN-1999/* CONSTANT< "FACILITY" EQUALS 3049 PREFIX "MBX" TAG "" ;/*S/* SUCCESS MESSAGES, DISPLAYED ONLY IF EXPLICITELY REQUESTED BY THE /LOG QUALIFIER.$/* EXIT STATUS IN DCL IS SS$_NORMAL./* CONSTANT@ "MBXCRE" EQUALS %X0BE98051 PREFIX "MBX" TAG ""@ ,"MBXDEL" EQUALS %X0BE98059 PREFIX "MBX" TAG ""@ ,"MBXATT" EQUALS %X0BE98061 PREFIX "MBX" TAG ""@ ,"MBXDET" EQUALS %X0BE98069 PREFIX "MBX" TAG ""@ ,"MSGSNT" EQUALS %X0BE98071 PREFIX "MBX" TAG ""@ ,"MSGRCV" EQUALS %X0BE98079 PREFIX "MBX" TAG ""@ ,"EOFSNT" EQUALS %X0BE98081 PREFIX "MBX" TAG "" ;/*W/* INFORMATION MESSAGES, DISPLAYED ONLY IF EXPLICITELY REQUESTED BY THE /LOG QUALIFIER.V/* THEY ARE INFORMATIONAL BECAUSE THEY INFORM THE USER ABOUT AN 'ALTERNATE' SITUATION.a/* EXIT STATUS IN DCL IS STILL SS$_NORMAL. NOTE THAT THE TWO FIRST MESSAGE ARE ONLY INTERMEDIATE./* CONSTANT@ "MSGRDWAIT" EQUALS %X0BE980A3 PREFIX "MBX" TAG ""@ ,"MSGWRWAIT" EQUALS %X0BE980AB PREFIX "MBX" TAG ""@ ,"MBXALRATT" EQUALS %X0BE980B3 PREFIX "MBX" TAG ""@ ,"MBXMKDEL" EQUALS %X0BE980BB PREFIX "MBX" TAG "" ;/*K/* THE OPERATION REQUESTED HAS BEEN DONE, BUT AN UNXEPECTED RESULT OCCURED.)/* EXIT STATUS FROM DCL IS SS$_ENDOFFILE./* CONSTANT@ "EOFRCV" EQUALS %X0BE980F0 PREFIX "MBX" TAG "" ;/*H/* THE OPERATION REQUESTED HAS BEEN DONE, BUT DID NOT CONCLUDE CORRECTLY&/* EXIT SEVERITY FROM DCL IS ERROR (2)/* CONSTANT@ "TRCMSGSNT" EQUALS %X0BE98142 PREFIX "MBX" TAG ""@ ,"TRCMSGRCV" EQUALS %X0BE9814A PREFIX "MBX" TAG ""@ ,"TIMMSGSNT" EQUALS %X0BE98152 PREFIX "MBX" TAG ""@ ,"TIMMSGRCV" EQUALS %X0BE9815A PREFIX "MBX" TAG "" ;/*G/* ALL THOSE SITUATIONS CAUSE THE REQUESTED OPERTION TO FAIL MISERABLY.&/* EXIT SEVERITY FROM DCL IS FATAL (4)/* CONSTANT@ "MBXINTERR" EQUALS %X0BE98194 PREFIX "MBX" TAG ""@ ,"DEVNOTMBX" EQUALS %X0BE9819C PREFIX "MBX" TAG ""@ ,"MBXINVPRT" EQUALS %X0BE981A4 PREFIX "MBX" TAG ""@ ,"MBXINVTIM" EQUALS %X0BE981AC PREFIX "MBX" TAG ""@ ,"MSGINVCNT" EQUALS %X0BE981B4 PREFIX "MBX" TAG ""@ ,"MSGINVSIZ" EQUALS %X0BE981BC PREFIX "MBX" TAG ""@ ,"MBXTOOBIG" EQUALS %X0BE981C4 PREFIX "MBX" TAG ""@ ,"NAMALRXTS" EQUALS %X0BE981CC PREFIX "MBX" TAG ""@ ,"NOCHANATT" EQUALS %X0BE981D4 PREFIX "MBX" TAG "" ;/*J/* THOSE SIX MESSAGES ARE NORMALLY FOLLOWED BY A MORE DETAILED EXPLANATION&/* EXIT SEVERITY FROM DCL IS FATAL (4)/* CONSTANT@ "MBXNOTCRE" EQUALS %X0BE981DC PREFIX "MBX" TAG ""@ ,"MBXNOTDEL" EQUALS %X0BE981E4 PREFIX "MBX" TAG ""@ ,"MBXNOTATT" EQUALS %X0BE981EC PREFIX "MBX" TAG ""@ ,"MBXNOTDET" EQUALS %X0BE981F4 PREFIX "MBX" TAG ""@ ,"MSGNOTSNT" EQUALS %X0BE981FC PREFIX "MBX" TAG ""@ ,"MSGNOTRCV" EQUALS %X0BE98204 PREFIX "MBX" TAG "" ; END_MODULE;m/w~ MBX_AXP012.Am -[012.SRC]MBX_DECLARATIONS.SDL;2IJ*[012.SRC]MBX_DECLARATIONS.SDL;2+,m ./ 4I@--0123KPWO56L#Е7Е89G HJ {A{ Declaration of all public items of the MBX callable interface :3{ constants, datatypes, and procedure entry points.{{ Marc Van Dyck, 01-JUN-1999{*MODULE mbx_declarations IDENT "MBX V1.2" ;)CONSTANT max_mbx_name_length EQUALS 247 ;IITEM mbx_name_type CHARACTER LENGTH max_mbx_name_length VARYING TYPEDEF ;/ITEM perm_flag_type LONGWORD UNSIGNED TYPEDEF ;.ITEM msg_size_type LONGWORD UNSIGNED TYPEDEF ;/ITEM msg_count_type LONGWORD UNSIGNED TYPEDEF ;,ITEM protection_type WORD UNSIGNED TYPEDEF ;*ITEM mbx_chan_type WORD UNSIGNED TYPEDEF ;#CONSTANT dev_name_length EQUALS 9 ;EITEM dev_name_type CHARACTER LENGTH dev_name_length VARYING TYPEDEF ;#ITEM sendeof_flag BOOLEAN TYPEDEF ;!ITEM synch_flag BOOLEAN TYPEDEF ;.ITEM time_out_type LONGWORD UNSIGNED TYPEDEF ;)CONSTANT max_message_length EQUALS 1024 ;GITEM message_type CHARACTER LENGTH max_message_length VARYING TYPEDEF ;*ITEM string_length WORD UNSIGNED TYPEDEF ;)ITEM pid_type LONGWORD UNSIGNED TYPEDEF ;:ENTRY mbx_create PARAMETER ( mbx_name_type NAMED name IN ,' perm_flag_type NAMED permanent IN ,% msg_size_type NAMED msg_size IN ,' msg_count_type NAMED msg_count IN ,) protection_type named protection IN ,$ mbx_chan_type NAMED iochan OUT ,$ dev_name_type NAMED device OUT ) RETURNS LONGWORD UNSIGNED ;:ENTRY mbx_delete PARAMETER ( mbx_name_type NAMED name IN ,$ mbx_chan_type NAMED iochan OUT ,$ dev_name_type NAMED device OUT ) RETURNS LONGWORD UNSIGNED ;:ENTRY mbx_attach PARAMETER ( mbx_name_type NAMED name IN ,$ mbx_chan_type NAMED iochan OUT ,$ dev_name_type NAMED device OUT ) RETURNS LONGWORD UNSIGNED ;:ENTRY mbx_detach PARAMETER ( mbx_name_type NAMED name IN ,$ mbx_chan_type NAMED iochan OUT ,$ dev_name_type NAMED device OUT ) RETURNS LONGWORD UNSIGNED ;8ENTRY mbx_send PARAMETER ( mbx_name_type NAMED name IN ,. sendeof_flag NAMED send_eof DEFAULT 0 IN ,/ synch_flag NAMED synchronize DEFAULT 0 IN ,/ time_out_type NAMED time_out DEFAULT 0 IN ,# message_type NAMED message IN ,& string_length NAMED sendlen OUT , $ dev_name_type NAMED device OUT , pid_type NAMED pid OUT ) RETURNS LONGWORD UNSIGNED ;;ENTRY mbx_receive PARAMETER ( mbx_name_type NAMED name IN ,/ synch_flag NAMED synchronize DEFAULT 0 IN ,/ time_out_type NAMED time_out DEFAULT 0 IN ,$ message_type NAMED message OUT ,% string_length NAMED reclen OUT , $ dev_name_type NAMED device OUT , pid_type NAMED pid OUT ) RETURNS LONGWORD UNSIGNED ; END_MODULE ;okc~ MBX_AXP012.Am -[012.SRC]MBX.HLP;2F$_*[012.SRC]MBX.HLP;2+,m .$/ 4F$.--0123KPWO560J+7yYJ+89G HJ*1 MBX Marc Van Dyck, 27-MAY-1999?MBX is a package that helps to work with mailboxes. It offers a@DCL interface and a callable interface. The DCL interface allows@to use mailboxes in command procedures, so that many independent>processes can echange information, synchronize, and cooperate.BThe callable interface allows to write programs that use mailboxes>very easily. The DCL interface is described in the help below.9The callable interface is documented in the release notes=(SYS$HELP:MBX.LNI). Both interfaces can perform six different@operations : create, delete, attach, detach, send, and receive. AThe first process that will use the mailbox must create it. OtherBprocesses will only have to attach it. Send and receive operationsCcan then be performed. Once finished, all processes must detach the8mailbox. If the mailbox is temporary, it will be deleted@automatically when the last attached process detaches. PermanentAmailboxes have to be deleted explicitely. The delete operation is<however deferred until there are no more processes attached.ACreation of permanent mailboxes require special attention becauseDthey are created using system resources that are not checked against;any quota; if used on a large scale, it could deplete thoseCresources until the system operations are seriously compromised. As;such, this operation is reserved to users having the PRMMBX>privilege. In addition, the SYSNAM privilege is also required,Cunless the logical LNM$PERMANENT_MAILBOX is redefined to point to a2less-protected logical name table than LNM$SYSTEM. 2 /CREATEBThis command creates a mailbox and attaches it to the process that created it. 3 Parameters?This command accepts only one parameter : the name that will beAgiven to the mailbox. This will be a logical name, entered in the=logical name table referenced by LNM$TEMPORARY_MAILBOX if theCmailbox is temporary, or by LNM$PERMANENT_MAILBOX if the mailbox is permanent.This parameter is required. 3 Qualifiers*4 /MESSAGE_SIZE = {positive integer value}DThis qualifier defines the size of one message in the mailbox. There>can be many messages in the mailbox, all of the same size. The#maximum size allowed is 1024 bytes.This qualifier is required.'4 /POSITIONS = {positive integer value}>This qualifier defines the maximum amount of messages that theCmailbox can hold simultaneously. There is no maximum value for thisDqualifier, but the product <_# of messages> * may notAexceed 60.000. The size of temporary mailboxes is also limited by:the available BYTLM quota of the process that creates it. This qualifier is required.4 /[NO]PERMANENTCThis qualifier specifies whether the mailbox should be temporary orCpermanent. The creation of permanent mailboxes requires the PRMMBXDprivilege, as well as write access to the logical name table pointed.by LNM$PERMANENT_MAILBOX (usually LNM$SYSTEM).7This qualifier is optional; the default is NOPERMANENT.=4 /PROTECTION = ([S:[R][W]],[O:[R][W]],[G:[R][W]],[W:[R][W]])/Specifies the protection mask for the mailbox. CThis qualifier is optional; if not specified, the system default is@applied. The system default can be obtained via the DCL command1"$ SHOW SECURITY /CLASS = SECURITY_CLASS DEVICE". 4 /[NO]LOG?If specified, success and/or informational confirmation messageFwill be displayed to SYS$OUTPUT at the end of a successful operation. @If not specified, informational messages only will be displayed.<If explicitely negated, messages will appear only in case of"error (warning, error, and fatal). 2 /DELETEBThis command deletes an existing mailbox. Note that this action is=only needed for permanent mailboxes : temporary mailboxes are>deleted by VMS automatically as soon as there are no processesDconnected to it anymore, i.e. after all processes that have issued aD$MBX/CREATE or $ MBX/ATTACH command have also issued a $ MBX/DETACH Dcommand for that mailbox. The deletion of a permanent mailbox can beArequested in advance : it will anyway be deleted only after there(are no processes attached to it anymore. 3 ParametersCThis command only accepts one parameter : the logical name that has+been used for the creation of this mailbox.This parameter is required. 3 Qualifiers 4 /[NO]LOG?If specified, success and/or informational confirmation messageFwill be displayed to SYS$OUTPUT at the end of a successful operation. @If not specified, informational messages only will be displayed.<If explicitely negated, messages will appear only in case of"error (warning, error, and fatal). 2 /ATTACH?This commands establishes a connection between the process thatBissued the command and the mailbox designated by the parameter P1.:The mailbox can be connected only if the logical name thatCdesignates it is visible; that is, temporary mailboxes, by default,Acan only be connected to by processes that are in the same job asthe mailbox creator. 3 ParametersCThis command only accepts one parameter : the logical name that has+been used for the creation of this mailbox. 3 Qualifiers 4 /[NO]LOG?If specified, success and/or informational confirmation messageFwill be displayed to SYS$OUTPUT at the end of a successful operation. @If not specified, informational messages only will be displayed.<If explicitely negated, messages will appear only in case of"error (warning, error, and fatal). 2 /DETACHDThis commands deletes the connection between the process that issued<the command and the mailbox designated by the parameter P1. 3 ParametersCThis command only accepts one parameter : the logical name that has+been used for the creation of this mailbox. 3 Qualifiers 4 /[NO]LOG?If specified, success and/or informational confirmation messageFwill be displayed to SYS$OUTPUT at the end of a successful operation. @If not specified, informational messages only will be displayed.<If explicitely negated, messages will appear only in case of"error (warning, error, and fatal). 2 /RECEIVEBThis command extracts a message from the mailbox designated by theAparameter P1 and places it in the symbol passed as argument P2. AAconnection between the process and the mailbox, created by either>MBX/CREATE or by MBX/ATTACH, must exist before this command isissued. 3 Parameters&This command accepts two parameters : CThe first one is the logical name that designates the mailbox; thisparameter is mandatory.AThe second parameter is the symbol into which the message must beAwritten. The symbol specified in the second parameter will remainBundefined (i.e. it will not be an empty string) if the mailbox isCempty and the read performed without /WAIT , or if the message readis an end of file marker. 3 Qualifiers4 /WAIT [ = {seconds} ]BThis qualifier, when specified, forces the process to wait until aCmessage is available for reading in the mailbox. The process readsBand exits directly is a message is already waiting, or waits for a0message to be deposited if the mailbox is empty.CIf a value is entered for the qualifier, the process will wait onlyBfor the number of seconds specified. If after the delay no message=has entered the mailbox, the read request will abort, and theAcontrol will return to DCL. In that case, an error status will bereturned in $STATUS.4 /PID = {symbol name}CIf specified, the symbol specified as value for this qualifier will>contain the PID of the process that wrote the message into theDmailbox. Also valid if the message read is an end of file marker. If=the mailbox is empty, and the read operation is done without 6specifying /WAIT, the returned pid will be "00000000". 4 /[NO]LOG?If specified, success and/or informational confirmation messageFwill be displayed to SYS$OUTPUT at the end of a successful operation. @If not specified, informational messages only will be displayed.<If explicitely negated, messages will appear only in case of"error (warning, error, and fatal).2 /SENDDThis command inserts in the mailbox designated by the parameter P1 a?message equal to the symbol passed as argument P2. A connectionDbetween the process and the mailbox, created by either MBX/CREATE or8by MBX/ATTACH, must exist before this command is issued. 3 Parameters$This command accepts two parameters.DThe first parameter is the logical name that designates the mailbox;this parameter is mandatory.BThe second parameter is a quoted string and represents the messageto be sent to the mailbox.CThe parameter P2 may not be specified if either /EOF or /SYMBOL arepresent. 3 Qualifiers4 /EOF@Instead of writing a message, the process deposits a end of fileBmark into the mailbox. If this qualifier is specified, the commandBmay not contain a P2 parameter. The process that will read the endBof file marker will signal a warning SS$_ENDOFFILE and this status0will be returned to it in $STATUS at DCL level. CThe qualifier /EOF may not be specified if either P2 or /SYMBOL arepresent.4 /WAIT [ = {seconds} ]@This qualifier, when specified, forces the process to wait until>another process reads the messsage deposited into the mailbox.CIf a value is entered for the qualifier, the process will wait onlyBfor the number of seconds specified. If after the delay no processChas read the mailbox, the write request will abort, and the controlBwill return to DCL. In that case, an error status will be returned in $STATUS.4 /PID = {symbol name}CIf specified, the symbol specified as value for this qualifier will=contain the PID of the process that read the message from the-mailbox. It is valid only if used with /WAIT.4 /SYMBOL = {symbol name}AIf specified, takes the message to be sent from the symbol ratherCthan from the parameter P2. This allows to send longer messages : a@symbol can be up to 1024 characters long, much longer than a DCL command line.<This qualifier may not be specified if either /EOF or P2 arepresent. 4 /[NO]LOG?If specified, success and/or informational confirmation messageaFwill be displayed to SYS$OUTPUT at the end of a successful operation. @If not specified, informational messages only will be displayed.<If explicitely negated, messages will appear only in case of"error (warning, error, and fatal).e.BThe callable interface allows to write programs that use mailboxes>very easily. The DCL interface is described in the help below.9The callable interface is documented in the release notes=(SYS$HELP:MBQW*~ MBX_AXP012.Am -[012.SRC]MBX.CLD;2\ *[012.SRC]MBX.CLD;2+,m ./ 4\--0123KPWO 56H:377F89G HJ! ! MBX utility DCL command syntax!! Marc Van Dyck, 01-JUN-1999!DEFINE VERB mbx IMAGE MBX_CLIE DISALLOW ANY2 ( create , delete , attach , detach , send , receive ): OR ( ( NOT create ) AND ( NOT delete ) AND ( NOT attach ); AND ( NOT detach ) AND ( NOT send ) AND ( NOT receive ) )8 QUALIFIER create , SYNTAX = mbx_create , NONNEGATABLE8 QUALIFIER delete , SYNTAX = mbx_delete , NONNEGATABLE8 QUALIFIER attach , SYNTAX = mbx_attach , NONNEGATABLE8 QUALIFIER detach , SYNTAX = mbx_detach , NONNEGATABLE8 QUALIFIER receive , SYNTAX = mbx_receive , NONNEGATABLE8 QUALIFIER send , SYNTAX = mbx_send , NONNEGATABLEDEFINE SYNTAX mbx_create3 DISALLOW ( NOT positions ) OR ( NOT message_size )\ PARAMETER p1 , LABEL = mbx , PROMPT = "Mailbox name " , VALUE ( REQUIRED , TYPE = $OUTLOG ) QUALIFIER permanent , NEGATABLEL QUALIFIER message_size , NONNEGATABLE , VALUE ( REQUIRED , TYPE = $NUMBER )J QUALIFIER positions , NONNEGATABLE , VALUE ( REQUIRED , TYPE = $NUMBER )Q QUALIFIER protection , NONNEGATABLE , VALUE( REQUIRED , LIST , TYPE = mbx_prot ) QUALIFIER log , NEGATABLE QUALIFIER filter, NEGATABLEQ QUALIFIER action , DEFAULT , NONNEGATABLE , VALUE ( REQUIRED , TYPE = k_create )DEFINE TYPE k_create( KEYWORD create , DEFAULT , NONNEGATABLEDEFINE TYPE mbx_prot& KEYWORD system , NONNEGATABLE , VALUE& KEYWORD owner , NONNEGATABLE , VALUE& KEYWORD group , NONNEGATABLE , VALUE& KEYWORD world , NONNEGATABLE , VALUEDEFINE SYNTAX mbx_delete[ PARAMETER p1 , LABEL = mbx , PROMPT = "Mailbox name " , VALUE ( REQUIRED , TYPE = $INLOG ) QUALIFIER log , NEGATABLE QUALIFIER filter, NEGATABLEQ QUALIFIER action , DEFAULT , NONNEGATABLE , VALUE ( REQUIRED , TYPE = k_delete )DEFINE TYPE k_delete( KEYWORD delete , DEFAULT , NONNEGATABLEDEFINE SYNTAX mbx_attach[ PARAMETER p1 , LABEL = mbx , PROMPT = "Mailbox name " , VALUE ( REQUIRED , TYPE = $INLOG ) QUALIFIER log , NEGATABLE QUALIFIER filter, NEGATABLEQ QUALIFIER action , DEFAULT , NONNEGATABLE , VALUE ( REQUIRED , TYPE = k_attach )DEFINE TYPE k_attach( KEYWORD attach , DEFAULT , NONNEGATABLEDEFINE SYNTAX mbx_detach[ PARAMETER p1 , LABEL = mbx , PROMPT = "Mailbox name " , VALUE ( REQUIRED , TYPE = $INLOG ) QUALIFIER log , NEGATABLE QUALIFIER filter, NEGATABLEQ QUALIFIER action , DEFAULT , NONNEGATABLE , VALUE ( REQUIRED , TYPE = k_detach )DEFINE TYPE k_detach( KEYWORD detach , DEFAULT , NONNEGATABLEDEFINE SYNTAX mbx_receive[ PARAMETER p1 , LABEL = mbx , PROMPT = "Mailbox name " , VALUE ( REQUIRED , TYPE = $INLOG )V PARAMETER p2 , LABEL = sym , PROMPT = "Symbol " , VALUE ( REQUIRED , TYPE = $OUTSYM )6 QUALIFIER wait , NEGATABLE , VALUE ( TYPE = $NUMBER )C QUALIFIER pid , NONNEGATABLE , VALUE ( REQUIRED , TYPE = $OUTSYM ) QUALIFIER log , NEGATABLE QUALIFIER filter, NEGATABLER QUALIFIER action , DEFAULT , NONNEGATABLE , VALUE ( REQUIRED , TYPE = k_receive )DEFINE TYPE k_receive) KEYWORD receive , DEFAULT , NONNEGATABLEDEFINE SYNTAX mbx_send< DISALLOW ( ( NOT eof ) AND ( NOT msg ) AND ( NOT symbol ) ) OR ANY2 ( eof , msg , symbol ) OR ( pid AND ( NOT wait ) )[ PARAMETER p1 , LABEL = mbx , PROMPT = "Mailbox name " , VALUE ( REQUIRED , TYPE = $INLOG )S PARAMETER p2 , LABEL = msg , PROMPT = "Message " , VALUE ( TYPE = $QUOTED_STRING )E QUALIFIER symbol , NONNEGATABLE , VALUE ( REQUIRED , TYPE = $INSYM ) QUALIFIER eof , NEGATABLE6 QUALIFIER wait , NEGATABLE , VALUE ( TYPE = $NUMBER )C QUALIFIER pid , NONNEGATABLE , VALUE ( REQUIRED , TYPE = $OUTSYM ) QUALIFIER log , NEGATABLE QUALIFIER filter, NEGATABLEO QUALIFIER action , DEFAULT , NONNEGATABLE , VALUE ( REQUIRED , TYPE = k_send )DEFINE TYPE k_send& KEYWORD send , DEFAULT , NONNEGATABLEkYA~ MBX_AXP012.A e.{[012.DOC]MBX.LNI;1L~Q*[012.DOC]MBX.LNI;1+, e.~/ 4L~u-.{0123KPWOv56k,57K-589G HJz7 I11h?20 J3300t1;3300r 1;65536s0d/ The MBX utility- Version V1.25 Marc Van Dyck, 01-JUN-19990 Installation guide- User's guide0 Programmer's guide. Release notes H The MBX utility Page 2/ CONTENTS# CHAPTER 1 INTRODUCTION CHAPTER 2 INSTALLATION CHAPTER 3 DESCRIPTION! CHAPTER 4 COMMAND SYNTAX H 4.1 MBX/CREATE . . . . . . . . . . . . . . . . . . . . 4-1H 4.1.1 Parameters . . . . . . . . . . . . . . . . . . . 4-1H 4.1.2 Qualifiers . . . . . . . . . . . . . . . . . . . 4-1H 4.1.3 Status Codes Returned . . . . . . . . . . . . . 4-2H 4.2 MBX/DELETE . . . . . . . . . . . . . . . . . . . . 4-3H 4.2.1 Parameters . . . . . . . . . . . . . . . . . . . 4-3H 4.2.2 Qualifiers . . . . . . . . . . . . . . . . . . . 4-3H 4.2.3 Status Codes Returned . . . . . . . . . . . . . 4-3H 4.3 MBX/ATTACH . . . . . . . . . . . . . . . . . . . . 4-4H 4.3.1 Parameters . . . . . . . . . . . . . . . . . . . 4-4H 4.3.2 Qualifiers . . . . . . . . . . . . . . . . . . . 4-4H 4.3.3 Status Codes Returned . . . . . . . . . . . . . 4-4H 4.4 MBX/DETACH . . . . . . . . . . . . . . . . . . . . 4-5H 4.4.1 Parameters . . . . . . . . . . . . . . . . . . . 4-5H 4.4.2 Qualifiers . . . . . . . . . . . . . . . . . . . 4-5H 4.4.3 Status Codes Returned . . . . . . . . . . . . . 4-5H 4.5 MBX/RECEIVE . . . . . . . . . . . . . . . . . . . 4-6H 4.5.1 Parameters . . . . . . . . . . . . . . . . . . . 4-6H 4.5.2 Qualifiers . . . . . . . . . . . . . . . . . . . 4-6H 4.5.3 Status Codes Returned . . . . . . . . . . . . . 4-7H 4.6 MBX/SEND . . . . . . . . . . . . . . . . . . . . . 4-8H 4.6.1 Parameters . . . . . . . . . . . . . . . . . . . 4-8H 4.6.2 Qualifiers . . . . . . . . . . . . . . . . . . . 4-8H 4.6.3 Status Codes Returned . . . . . . . . . . . . . 4-9$ CHAPTER 5 CALLABLE INTERFACEH 5.1 MBX_CREATE . . . . . . . . . . . . . . . . . . . . 5-1H 5.1.1 Functionality . . . . . . . . . . . . . . . . . 5-1H 5.1.2 General Syntax . . . . . . . . . . . . . . . . . 5-2H 5.1.3 Pascal Declaration . . . . . . . . . . . . . . . 5-2H 5.1.4 Arguments . . . . . . . . . . . . . . . . . . . 5-2H 5.1.5 Returns . . . . . . . . . . . . . . . . . . . . 5-4H 5.2 MBX_DELETE . . . . . . . . . . . . . . . . . . . . 5-6H 5.2.1 Functionality . . . . . . . . . . . . . . . . . 5-6H 5.2.2 General Syntax . . . . . . . . . . . . . . . . . 5-6H 5.2.3 Pascal Declaration . . . . . . . . . . . . . . . 5-6H 5.2.4 Arguments . . . . . . . . . . . . . . . . . . . 5-6H 5.2.5 Returns . . . . . . . . . . . . . . . . . . . . 5-7 H The MBX utility Page 3H 5.3 MBX_ATTACH . . . . . . . . . . . . . . . . . . . . 5-9H 5.3.1 Functionality . . . . . . . . . . . . . . . . . 5-9H 5.3.2 General Syntax . . . . . . . . . . . . . . . . . 5-9H 5.3.3 Pascal Declaration . . . . . . . . . . . . . . . 5-9H 5.3.4 Arguments . . . . . . . . . . . . . . . . . . . 5-9H 5.3.5 Returns . . . . . . . . . . . . . . . . . . . 5-10H 5.4 MBX_DETACH . . . . . . . . . . . . . . . . . . . 5-11H 5.4.1 Functionality . . . . . . . . . . . . . . . . 5-11H 5.4.2 General Syntax . . . . . . . . . . . . . . . . 5-11H 5.4.3 Pascal Declaration . . . . . . . . . . . . . . 5-11H 5.4.4 Arguments . . . . . . . . . . . . . . . . . . 5-11H 5.4.5 Returns . . . . . . . . . . . . . . . . . . . 5-12H 5.5 MBX_SEND . . . . . . . . . . . . . . . . . . . . 5-13H 5.5.1 Functionality . . . . . . . . . . . . . . . . 5-13H 5.5.2 General Syntax . . . . . . . . . . . . . . . . 5-13H 5.5.3 Pascal Declaration . . . . . . . . . . . . . . 5-13H 5.5.4 Arguments . . . . . . . . . . . . . . . . . . 5-13H 5.5.5 Returns . . . . . . . . . . . . . . . . . . . 5-16H 5.6 MBX_RECEIVE . . . . . . . . . . . . . . . . . . 5-18H 5.6.1 Functionality . . . . . . . . . . . . . . . . 5-18H 5.6.2 General Syntax . . . . . . . . . . . . . . . . 5-18H 5.6.3 Pascal Syntax . . . . . . . . . . . . . . . . 5-18H 5.6.4 Arguments . . . . . . . . . . . . . . . . . . 5-18H 5.6.5 Returns . . . . . . . . . . . . . . . . . . . 5-211 CHAPTER 6 RETURN CODES AND ERROR MESSAGESH 6.1 CALLABLE INTERFACE . . . . . . . . . . . . . . . . 6-1H 6.1.1 Success Codes : . . . . . . . . . . . . . . . . 6-1H 6.1.2 Informational Codes : . . . . . . . . . . . . . 6-1H 6.1.3 Warning Codes : . . . . . . . . . . . . . . . . 6-1H 6.1.4 Error Codes : . . . . . . . . . . . . . . . . . 6-2H 6.1.5 Fatal Codes : . . . . . . . . . . . . . . . . . 6-2H 6.2 DCL INTERFACE . . . . . . . . . . . . . . . . . . 6-2; CHAPTER 7 HISTORY, KNOWN PROBLEMS, AND FUTURE PLANSH 7.1 HISTORY . . . . . . . . . . . . . . . . . . . . . 7-1H 7.1.1 Version 1.0 . . . . . . . . . . . . . . . . . . 7-1H 7.1.2 Version 1.1 . . . . . . . . . . . . . . . . . . 7-1H 7.1.3 Version 1.2 . . . . . . . . . . . . . . . . . . 7-1H 7.2 PLANS . . . . . . . . . . . . . . . . . . . . . . 7-1H 7.3 KNOWN PROBLEMS . . . . . . . . . . . . . . . . . . 7-2 ) CHAPTER 1+ INTRODUCTIONB The MBX utility has been written with three goals in mind :H 1. Offer the possibility to use mailboxes directly from DCL (a? feature which is sorely missed in the standard DCL);H 2. Present a framework in which many VMS programming features@ (CLI, MSG, ...) and tools (DECset) will be exercised.H 3. Offer a small demonstration of the capabilities of the PASCAL language.H Enhancements, remarks and suggestions are welcome. Please mail to Marc.Vandyck@skynet.beH The sources of this package can be distributed free of chargeH provided that the name of the author remains visible in the headerH comments. Modifications and enhancements are ok provided that they1 are duly annotated before further distribution.H The author assumes no liability in case the software would notH perform as expected or described in this documentation. Execution ofH this sofware on any platform takes place under the exclusiveH responsibility of the user, including any damage, loss of data orH revenue that it may cause. There is no warranty that enhancedH versions, maintenance releases, bug fixes, or support will be available.H The current version of MBX, at today's date of 16-JUN-1999, isH V1.2 and has been developped to work on OpenVMS Alpha V6.2 and onH OpenVMS VAX V5.5-2. It won't work on earlier versions, unless theH executables can be successfully rebuilt from the sources under this version. ) CHAPTER 2+ INSTALLATIONH The MBX utility is distributed as a VMSinstal kit (MBX012.A),* which must be installed with the command7 $ @SYS$UPDATE:VMSINSTAL MBX_ H where is VAX or AXP, depending on the system where theH installation takes place, and is the name of the device( and directory where the kit is stored.H Alternatively, on OpenVMS Alpha, MBX is also distributed as a4 PCSI kit, which must be installed with the command0 $ PRODUCT INSTALL MBX /SOURCE = H where is the name of the device and directory where the kit is stored.H If possible, the PCSI installation should be preferred, becauseH PCSI offers many interesting features, and notably the possibility to7 remove this package from your system with the commande $ PRODUCT REMOVE MBXH Those who have installed MBX with VMSINSTAL and whish to remove itH from their system must look at the kit contents below and perform allH deletions manually. That difference aside, both methods are functionnaly equivalent.H Both installations will define a new command MBX in the system'sH DCL tables as well as a new topic MBX in the system's VMS help1 library, and will provide the following files :.2 SYS$COMMON:[SYSHLP]MBX.LNI - (MBX Documentation, e.g. this file) 2 SYS$COMMON:[SYS$STARTUP]MBX$STARTUP.COM $ (MBX startup command file)2 SYS$COMMON:[SYSEXE]MBX_CLI.EXE 0 (MBX executable image , DCL interface)2 SYS$COMMON:[SYSLIB]MBX_ROUTINES.EXE 2 (MBX shareable image, callable routines) uH INSTALLATION Page 2-22 SYS$COMMON:[SYSMSG]MBX_MESSAGES.EXE - (MBX shareable image, message file).2 SYS$COMMON:[SYSLIB]MBX_DECLARATIONS.PEN 5 (Declarations of the MBX callable routines,.@ constants and datatypes in Pascal ENvironment format)2 SYS$COMMON:[SYSLIB]MBX_DECLARATIONS.SDL 5 (Declarations of the MBX callable routines,.1 constants and datatypes in SDL syntax) 2 SYS$COMMON:[SYSLIB]MBX_MESSAGES.PEN 0 (Declarations of the MBX status codes ( in Pascal ENvironment format)2 SYS$COMMON:[SYSLIB]MBX_MESSAGES.SDL 0 (Declarations of the MBX status codes  in SDL syntax)AH The startup file SYS$STARTUP:MBX$STARTUP.COM must be executedH before the MBX package can be used. It is recommended to invoke thisH file from the site specific startup command file. The main purpose ofH this file is to install the images with the right characteristics. It> can be edited by the system manager to suit the local needs. u) CHAPTER 3B* DESCRIPTIONH The MBX utility allows to perform the following manipulations on mailboxes :. 1. Create. 2. Delete. 3. Attach  4. DetachD 5. Send. 6. ReceiveH The first process that will use the mailbox must create it.H Other processes will only have to attach it. Send and receiveH operations can then be performed. Once finished, all processes mustH detach the mailbox. If the mailbox is temporary, it will be deletedH automatically when the last attached process detaches. PermanentH mailboxes have to be deleted explicitely. The delete operation is> however deferred until there are no more processes attached.H Creation of permanent mailboxes require special attention becauseH they are created using system resources that are not checked againstH any quota; if used on a large scale, it could deplete those resourcesH until the system operations are seriously compromised. As such, thisH operation is reserved to users having the PRMMBX privilege. InH addition, the SYSNAM privilege is also required, unless the logicalH LNM$PERMANENT_MAILBOX is redefined to point to a less-protected% logical name table than LNM$SYSTEM.eH The MBX utility creates the mailboxes in supervisor mode. AsH there is no documented way to change a process mode to supervisor, allH operations performed on the mailboxes are done in executive mode.H Also, the logical names that are used to store the channel numberH between the operations are all kernel mode logicals, so that theyH can't be messed up with by DCL users (There is no DEFINE/KERNEL). TheH privilege CMKRNL is therefore required to use MBX. As this is a VH DESCRIPTION Page 3-2H dangerous privilege to give away, the MBX image is installed withH CMKRNL privilege at startup time so that non-privileged users can make use of it.H Error messages have been implemented using the VMS messageH facility. All MBX commands end up with a successful message if /LOGH was requested, and a success code in R0/$STATUS, unless an errorH occured. In that case, an MBX message will be displayed (and aH failure status left in R0/$STATUS), followed if possible by a moreH descriptive message explaining the reason of the failure. The DCLH commands $ SET MESSAGE SYS$MESSAGE:MBX_MESSAGES and WRITE SYS$OUTPUTH F$MESSAGE($status) can be used to interpret the numeric values left inH $STATUS. End of file conditions leave a warning completion code,H time-out and buffer truncation leave an error completion code, and all other errors are fatal. H The DCL commands that are used to activate the MBX utility areH implemented with the SET COMMAND utility and integrated in the system's DCL tables.H MBX is entirely coded in PASCAL (there is one macro source forH the transfer vector used to ensure upward compatibility of theH shareable image, under OpenVMS VAX. Under OpenVMS Alpha, the transferH vector is provided by the linker). The undocumented featureH MESSAGE/SDL and the SDL package are used to transcode the messageH global symbols into PASCAL constants. SDL is also used to define theH entry points of the callable interface in a language-independent way.H The code is stored in a CMS library, the build done by MMS, theH editing done with LSE. The analysis data generated by the pascalH compiler are loaded into a SCA library. The functionality of theH package has been described in a suite of DCL test scripts, which areH used as a base for regression tests with DTM each time the sources areH touched. The tests have been screened by PCA to ensure that all code branches have been exercised.t ) CHAPTER 4 , COMMAND SYNTAX 4.1 MBX/CREATE H This command creates a mailbox and attaches it to the process that created it. 4.1.1 ParametersiH This command accepts only one parameter : the name that will beH given to the mailbox. This will be a logical name, entered in theH logical name table referenced by LNM$TEMPORARY_MAILBOX if the mailboxH is temporary, or by LNM$PERMANENT_MAILBOX if the mailbox is permanent. This parameter is required.y 4.1.2 Qualifiersa5 4.1.2.1 /MESSAGE_SIZE = {positive Integer Value} -eH This qualifier defines the size of one message in the mailbox.H There can be many messages in the mailbox, all of the same size. TheB maximum size allowed is 1024 bytes. This qualifier is required.2 4.1.2.2 /POSITIONS = {positive Integer Value} -H This qualifier defines the maximum amount of messages that theH mailbox can hold simultaneously. There is no maximum value for thisH qualifier, but the product <# of messages> * may notH exceed 60.000. The size of temporary mailboxes is also limited by the7 available BYTLM quota of the process that creates it.I" This qualifier is required. H COMMAND SYNTAX Page 4-2 4.1.2.3 /[NO]PERMANENT -lH This qualifier specifies whether the mailbox should be temporaryH or permanent. The creation of permanent mailboxes requires the PRMMBXH privilege, as well as write access to the logical name table pointed0 by LNM$PERMANENT_MAILBOX (usually LNM$SYSTEM).> This qualifier is optional; the default is NOPERMANENT.H 4.1.2.4 /PROTECTION = ([S:[R][W]],[O:[R][W]],[G:[R][W]],[W:[R][W]]) -5 Specifies the protection mask for the mailbox.oH This qualifier is optional; if not specified, the system defaultH is applied. The system default can be obtained via the DCL command "$0 SHOW SECURITY /CLASS = SECURITY_CLASS DEVICE". 4.1.2.5 /LOG -iH If specified, success and/or informational confirmation messageH will be displayed to SYS$OUTPUT at the end of a successful operation.H If not specified, informational messages only will be displayed. IfH explicitely negated, messages will appear only in case of error (warning, error, and fatal). 4.1.3 Status Codes Returned% Successful completion : SS$_NORMALcH Failure : MBX_MBXNOTCRE + a message explaining the cause of the error H COMMAND SYNTAX Page 4-3 4.2 MBX/DELETE H This command deletes an existing mailbox. Note that this actionH is only needed for permanent mailboxes : temporary mailboxes areH deleted by VMS automatically as soon as there are no processesH connected to it anymore, i.e. after all processes that have issued aH $MBX /CREATE or $ MBX /ATTACH command have also issued a $ MBX /DETACHH command for that mailbox. The deletion of a permanent mailbox can beH requested in advance : it will anyway be deleted only after there are& no processes attached to it anymore. 4.2.1 ParametersMH This command only accepts one parameter : the logical name that1 has been used for the creation of this mailbox." This parameter is required. 4.2.2 Qualifiersa 4.2.2.1 /LOG -aH If specified, success and/or informational confirmation messageH will be displayed to SYS$OUTPUT at the end of a successful operation.H If not specified, informational messages only will be displayed. IfH explicitely negated, messages will appear only in case of error (warning, error, and fatal). 4.2.3 Status Codes Returned% Successful completion : SS$_NORMALhH Failure : MBX_MBXNOTDEL + a message explaining the cause of the error H COMMAND SYNTAX Page 4-4 4.3 MBX/ATTACH H This commands establishes a connection between the process thatH issued the command and the mailbox designated by the parameter P1.H The mailbox can be connected only if the logical name that designatesH it is visible; that is, temporary mailboxes, by default, can only beH connected to by processes that are in the same job as the mailbox creator. 4.3.1 ParametersrH This command only accepts one parameter : the logical name that1 has been used for the creation of this mailbox.l 4.3.2 Qualifiersl 4.3.2.1 /LOG -aH If specified, success and/or informational confirmation messageH will be displayed to SYS$OUTPUT at the end of a successful operation.H If not specified, informational messages only will be displayed. IfH explicitely negated, messages will appear only in case of error (warning, error, and fatal). 4.3.3 Status Codes Returned% Successful completion : SS$_NORMALtH Failure : MBX_MBXNOTATT + a message explaining the cause of the error rH COMMAND SYNTAX Page 4-5 4.4 MBX/DETACHsH This commands deletes the connection between the process thatD issued the command and the mailbox designated by the parameter P1. 4.4.1 ParameterseH This command only accepts one parameter : the logical name that1 has been used for the creation of this mailbox.r 4.4.2 Qualifiersl 4.4.2.1 /LOG - H If specified, success and/or informational confirmation messageH will be displayed to SYS$OUTPUT at the end of a successful operation.H If not specified, informational messages only will be displayed. IfH explicitely negated, messages will appear only in case of error (warning, error, and fatal). 4.4.3 Status Codes Returned% Successful completion : SS$_NORMAL H Failure : MBX_MBXNOTDET + a message explaining the cause of the error eH COMMAND SYNTAX Page 4-6 4.5 MBX/RECEIVEH This command extracts a message from the mailbox designated byH the parameter P1 and places it in the symbol passed as argument P2. AH connection between the process and the mailbox, created by eitherH MBX/CREATE or by MBX/ATTACH, must exist before this command is issued. 4.5.1 Parametersl, This command accepts two parameters : 4.5.1.1 P1 -fH The first one is the logical name that designates the mailbox; this parameter is mandatory. 4.5.1.2 P2 -eH The second parameter is the symbol into which the message must beH written. The symbol specified in the second parameter will remainH undefined (i.e. it will not be an empty string) if the mailbox isH empty and the read performed without /WAIT , or if the message read is an end of file marker. 4.5.2 Qualifiers 6 This command accepts the following qualifiers :" 4.5.2.1 /WAIT [ = {seconds} ] -H This qualifier, when specified, forces the process to wait untilH a message is available for reading in the mailbox. The process readsH and exits directly is a message is already waiting, or waits for a2 message to be deposited if the mailbox is empty.H If a value is entered for the qualifier, the process will waitH only for the number of seconds specified. If after the delay noH message has entered the mailbox, the read request will abort, and theH control will return to DCL. In that case, an error status will be returned in $STATUS. H COMMAND SYNTAX Page 4-7! 4.5.2.2 /PID = {symbol Name} -DH If specified, the symbol specified as value for this qualifierH will contain the PID of the process that wrote the message into theH mailbox. Also valid if the message read is an end of file marker. IfH the mailbox was empty, and the read operation done without /WAIT, the" returned pid will be "00000000". 4.5.2.3 /LOG -H If specified, success and/or informational confirmation messageH will be displayed to SYS$OUTPUT at the end of a successful operation.H If not specified, informational messages only will be displayed. IfH explicitely negated, messages will appear only in case of error (warning, error, and fatal). 4.5.3 Status Codes Returned% Successful completion : SS$_NORMAL / End of file marker : SS$_ENDOFFILE (warning) A Time out : SS$_TIMEOUT - 2 (to convert it from fatal to error)lE Truncation : SS$_RESULTOVF - 2 (to convert it from fatal to error) H Failure : MBX_MSGNOTRCV + a message explaining the cause of the error TH COMMAND SYNTAX Page 4-8 4.6 MBX/SENDNH This command inserts in the mailbox designated by the parameterH P1 a message equal to the symbol passed as argument P2. A connectionH between the process and the mailbox, created by either MBX/CREATE orH by MBX/ATTACH, must exist before this command is issued. The messageH passed to MBX must fit in the mailbox message size, otherwise aH truncation error will be reported. Also, if all message positions inH the mailbox are already occupied, a mailbox full error will be, reported and the message will not be sent. 4.6.1 Parameters + This command accepts two parameters.t 4.6.1.1 P1 -xH The first parameter is the logical name that designates the' mailbox; this parameter is mandatory.M 4.6.1.2 P2 -T@ A quoted string : the message to be sent to the mailbox.H The parameter P2 may not be specified if either /EOF or /SYMBOL are present. 4.6.2 Qualifiersa6 This command accepts the following qualifiers : 4.6.2.1 /EOF -sH Instead of writing a message, the process deposits a end of fileH mark into the mailbox. If this qualifier is specified, the commandH may not contain a P2 parameter. The process that will read the end ofH file marker will signal a warning SS$_ENDOFFILE and this status will, be returned to it in $STATUS at DCL level.H The qualifier /EOF may not be specified if either P2 or /SYMBOL are present. lH COMMAND SYNTAX Page 4-9" 4.6.2.2 /WAIT [ = {seconds} ] -H This qualifier, when specified, forces the process to wait until@ another process reads the messsage deposited into the mailbox.H If a value is entered for the qualifier, the process will waitH only for the number of seconds specified. If after the delay noH process has read the mailbox, the write request will abort, and theH control will return to DCL. In that case, an error status will be returned in $STATUS.! 4.6.2.3 /PID = {symbol Name} -RH If specified, the symbol specified as value for this qualifierH will contain the PID of the process that read the message from the0 mailbox. It is valid only if used with /WAIT.$ 4.6.2.4 /SYMBOL = {symbol Name} -H If specified, takes the message to be sent from the symbol ratherH than from the parameter P2. This allows to send longer messages : aH symbol can be up to 1024 characters long, much longer than a DCL command line. H This qualifier may not be specified if either /EOF or P2 are present. 4.6.2.5 /LOG -$H If specified, success and/or informational confirmation messageH will be displayed to SYS$OUTPUT at the end of a successful operation.H If not specified, informational messages only will be displayed. IfH explicitely negated, messages will appear only in case of error (warning, error, and fatal). 4.6.3 Status Codes Returned% Successful completion : SS$_NORMAL A Time out : SS$_TIMEOUT - 2 (to convert it from fatal to error)TE Truncation : SS$_RESULTOVF - 2 (to convert it from fatal to error)sH Failure : MBX_MSGNOTSNT + a message explaining the cause of the error .) CHAPTER 5n. CALLABLE INTERFACEH The image shareable SYS$LIBRARY:MBX_ROUTINES.EXE can be linkedH with any other program that needs mailbox services. This image isH built with a transfer vector, so that future versions can be installedH without relinking the applications using it. The kit provides two SDLH definition files in SYS$LIBRARY, MBX_DECLARATIONS.SDL which containsH every constant, data type, and routine entry point description neededH to use the package, and MBX_MESSAGES.SDL which contains all MBX returnH codes. Using the SDL V3.2 package from the freeware CD, thoseH definitions can be translated into almost any language for which DECH ever made a compiler. PASCAL users don't even need to go through thatH step, because those definitions are also provided by the kit in PascalH Environment (PEN) format, ready to be inherited by other PascalH programs. Those files are MBX_DECLARATIONS.PEN and MBX_MESSAGES.PEN in SYS$LIBRARY.H The usage of those 6 routines requires possession of the CMKRNLH privilege, either as a native process privilege (i.e. from SYSUAF) orH as a privileged inherited from a priv-installed executable image.H Remember that it is not possible to install a shareable image withH privileges. In addition, the creation and deletion of permanentH mailboxes are restricted to users or installed images with the PRMMBX privilege.H Note : reading this chapter might appear cumbersome but willH provide interesting details even for those who will only use the DCL interface ... - The following routines are available :N 5.1 MBX_CREATEX 5.1.1 FunctionalityH Creates a mailbox according to the user specifications, defines aH logical name that points to the mailbox physical name, opens anH executive I/O channel to it, and stores this I/O channel in a kernel mode process logical name. lH CALLABLE INTERFACE Page 5-2 5.1.2 General SyntaxBH status <- mbx_create ( name, permanent, msg_size, msg_count, protection, iochan, device ) 5.1.3 Pascal Declaration:H Note : the types used in the declaration below and in all subsequentH ones are all defined in the Pascal environment file$ SYS$LIBRARY:MBX_DECLARATIONS.PEN .9 [ GLOBAL ] FUNCTION mbx_create ( name : mbx_name_type ;e? permanent : perm_flag_type ;i= msg_size : msg_size_type ;s? msg_count : msg_count_type ;e@ protection : prot_mask_type ;? VAR iochan : mbx_chan_type ;.L VAR device : dev_name_type ) : UNSIGNED ; 5.1.4 Arguments 5.1.4.1 Name -iH 1. Contents : User-chosen name of the mailbox to be created.A Will be used for all future operations on the mailbox. H 2. Structure : Character string, varying length, maximum 247D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Read.- 4. Mechanism : By copy of reference.r0 5. Default : None. Require ї?~ MBX_AXP012.A e.{[012.DOC]MBX.LNI;1L~Zp>d parameter. 5.1.4.2 Permanent -H 1. Contents : Flag defining whether the mailbox must be! temporary or permanent H 2. Structure : Longword, lowest bit only is significant, other ones must be zero.e4 3. Values : 1 is permanent, 0 is temporary. oH CALLABLE INTERFACE Page 5-3 4. Access : Read., 5. Mechanism : By copy of reference0 6. Default : None. Required parameter. 5.1.4.3 Msg_size -/H 1. Contents : The maximum size of each message that will be6 stored in the mailbox. Maximum 1024 bytes.* 2. Structure : Unsigned longword. 3. Access : Read.- 4. Mechanism : By copy of reference.m0 5. Default : None. Required parameter. 5.1.4.4 Msg_count -H 1. Contents : The maximum number of messages that the mailbox2 will contain. Maximum 60.000/msg_size.* 2. Structure : Unsigned longword. 3. Access : Read.- 4. Mechanism : By copy of reference. 0 5. Default : None. Required parameter. 5.1.4.5 Protection -eH 1. Contents : RWLP/SOGW protection bit mask for the mailbox.H Physical protection is irrelevant; Logical protection must beH granted in all cases; Read and write define what can be done on the mailbox.H 2. Structure : Unsigned word. Array of 4 arrays of 4 bits .H Bits 0..3 = System, bits 4..7 = Owner, bits 8..11 = Group,H bits 12..15 = World. First bit=Read, Second bit=Write, ThirdH bit=Logical, Fourth bit=Physical. Access is granted if bit is 0. rH CALLABLE INTERFACE Page 5-4H 3. Values : The 16 bits to 0 causes VMS to apply the system$ default protection mask.. 4. Access : Read.- 5. Mechanism : By copy of reference.e0 6. Default : None. Required parameter. 5.1.4.6 Iochan - H 1. Contents : The I/O channel that must be used to communicateH with the mailbox. This I/O channel will also be stored in a> kernel process logical name _CHANNEL.& 2. Structure : Unsigned word. 3. Access : Write.t% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.1.4.7 Device -dH 1. Contents : Physical name of the mailbox that has been created.sH 2. Structure : Character string, varying length, maximum 8D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Write.r% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.1.5 Returns* 1. Contents : VMS condition code.* 2. Structure : Unsigned longword. H CALLABLE INTERFACE Page 5-5 3. Valuess :B 1. MBX_MBXCRE : Success, the mailbox has been createdE 2. MBX_NAMALXTS : Fatal, the logical name already existstH 3. Any error code returned by $CRELNM, $TRNLNM, $CMKRNL,* $CMEXEC, $CREMBX, $ASSIGN . 4. Access : Write. % 5. Mechanism : By reference., sH CALLABLE INTERFACE Page 5-6 5.2 MBX_DELETE  5.2.1 FunctionalityH Deletes an existing mailbox, and all structures associated to it.H The deletion takes place only after the last I/O channel associated with it has been de-assigned.p 5.2.2 General Syntaxn/ status <- mbx_delete ( name, iochan, device )c 5.2.3 Pascal Declarationn9 [ GLOBAL ] FUNCTION mbx_delete ( name : mbx_name_type ;s? VAR iochan : mbx_chan_type ;.L VAR device : dev_name_type ) : UNSIGNED ; 5.2.4 Arguments 5.2.4.1 Name -hH 1. Contents : The name of the mailbox to delete. Supply the; name that has been used at the mailbox creation.aH 2. Structure : Character string, varying length, maximum 247D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Read.- 4. Mechanism : By copy of reference.0 5. Default : None. Required parameter, 5.2.4.2 Iochan -lH 1. Contents : The I/O channel that was used to communicate withH the mailbox. The kernel logical name that stored this I/O) channel has also been deleted.& 2. Structure : Unsigned word. XH CALLABLE INTERFACE Page 5-7 3. Access : Write.u% 4. Mechanism : By reference.e0 5. Default : None. Required parameter. 5.2.4.3 Device -iH 1. Contents : Physical name of the mailbox that has been deleted.vH 2. Structure : Character string, varying length, maximum 8D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Write. % 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.2.5 Returns* 1. Contents : VMS condition code.* 2. Structure : Unsigned longword. 3. Values :eC 1. MBX_MBXDEL : Success, the mailbox has been deleted.nH 2. MBX_MBXMKDEL : Informational, the mailbox has been# marked for deletion.A3 3. MBX_INTERR : Fatal, internal error.oH 4. MBX_DEVNOTMBX : Fatal, The name specified points to a- device which is not a mailbox.iH 5. MBX_NOCHANATT : Fatal, the mailbox exists but does notB have an I/O channel attached which is known by MBX.H 6. or any error code returned by $TRNLNM, $DELLNM, $CMKRNL,* $CMEXEC, $DELMBX, $DASSGN . 4. Access : Write.t H CALLABLE INTERFACE Page 5-8% 5. Mechanism : By reference.y tH CALLABLE INTERFACE Page 5-9 5.3 MBX_ATTACHX 5.3.1 FunctionalityH Opens an I/O channel to an existing mailbox, and stores the2 channel number in a kernel process logical name. 5.3.2 General Syntaxt/ status <- mbx_attach ( name, iochan, device )i 5.3.3 Pascal Declarationl9 [ GLOBAL ] FUNCTION mbx_attach ( name : mbx_name_type ; ? VAR iochan : mbx_chan_type ; L VAR device : dev_name_type ) : UNSIGNED ; 5.3.4 Arguments 5.3.4.1 Name -oH 1. Contents : The name of the mailbox to attach. Supply the; name that has been used at the mailbox creation.iH 2. Structure : Character string, varying length, maximum 247D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Read.- 4. Mechanism : By copy of reference. 0 5. Default : None. Required parameter, 5.3.4.2 Iochan - H 1. Contents : The I/O channel that will be used to communicateH with the mailbox. The kernel logical name that stores this- I/O channel has also been defined. & 2. Structure : Unsigned word. 3. Access : Write.  H CALLABLE INTERFACE Page 5-10% 4. Mechanism : By reference.e0 5. Default : None. Required parameter. 5.3.4.3 Device - H 1. Contents : Physical name of the mailbox that has been attached.H 2. Structure : Character string, varying length, maximum 8D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Write.f% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.3.5 Returns* 1. Contents : VMS condition code.* 2. Structure : Unsigned longword. 3. Values :.D 1. MBX_MBXATT : Success, the mailbox has been attached.H 2. MBX_MBXALRATT : Informational, the mailbox was already attached.3 3. MBX_INTERR : Fatal, internal error..H 4. MBX_DEVNOTMBX : Fatal, The logical name specified points2 to a device which is not a mailbox.H 5. or any error code returned by $TRNLNM, $CRELNM, $CMKRNL,! $CMEXEC, $ASSIGN .c 4. Access : Write.% 5. Mechanism : By reference.a eH CALLABLE INTERFACE Page 5-11 5.4 MBX_DETACHh 5.4.1 FunctionalityH Closes the I/O channel between the specified mailbox and theH current process. Also deletes the kernel process logical name that stores the channel number. 5.4.2 General Syntaxe/ status <- mbx_detach ( name, iochan, device )C 5.4.3 Pascal Declaration 9 [ GLOBAL ] FUNCTION mbx_detach ( name : mbx_name_type ;e? VAR iochan : mbx_chan_type ;eL VAR device : dev_name_type ) : UNSIGNED ; 5.4.4 Arguments 5.4.4.1 Name -rH 1. Contents : The name of the mailbox to detach. Supply the; name that has been used at the mailbox creation.RH 2. Structure : Character string, varying length, maximum 247D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Read.- 4. Mechanism : By copy of reference. 0 5. Default : None. Required parameter, 5.4.4.2 Iochan -oH 1. Contents : The I/O channel that was used to communicate withH the mailbox. The kernel logical name that stored this I/O) channel has also been deleted. & 2. Structure : Unsigned word. uH CALLABLE INTERFACE Page 5-12 3. Access : Write.o% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.4.4.3 Device -MH 1. Contents : Physical name of the mailbox that has been detached.) 2. Structure : Character string.  3. Access : Write.h% 4. Mechanism : By reference.20 5. Default : None. Required parameter. 5.4.5 Returns* 1. Contents : VMS condition code.* 2. Structure : Unsigned longword. 3. Values :yD 1. MBX_MBXDET : Success, the mailbox has been detached.3 2. MBX_INTERR : Fatal, internal error.iH 3. MBX_DEVNOTMBX : Fatal, The logical name specified points2 to a device which is not a mailbox.H 4. MBX_NOCHANATT : Fatal, the mailbox exists but does notB have an I/O channel attached which is known by MBX.H 5. or any error code returned by $TRNLNM, $DELLNM, $CMKRNL,* $CMEXEC, $DELMBX, $DASSGN . 4. Access : Write..% 5. Mechanism : By reference.  H CALLABLE INTERFACE Page 5-13 5.5 MBX_SEND  5.5.1 Functionality? Sends a message, or an end of file marker, to a mailbox.m 5.5.2 General SyntaxcH status <- mbx_send ( name, send_eof, synchronize, time_out, message, sendlen, device, pid ) 5.5.3 Pascal DeclarationG7 [ GLOBAL ] FUNCTION mbx_send ( name : mbx_name_type ;cC send_eof : sendeof_flag := FALSE ;bD synchronize : synch_flag := FALSE ;@ time_out : time_out_type := 0 ;9 message : message_type ; > VAR sendlen : string_length ;= VAR device : dev_name_type ;hB VAR pid : pid_type ) : UNSIGNED ; 5.5.4 Arguments 5.5.4.1 Name -7H 1. Contents : The name of the mailbox to send to. Supply the; name that has been used at the mailbox creation.fH 2. Structure : Character string, varying length, maximum 247E bytes, actual length in two extra bytes upfront (ASCIC) ..s 3. Access : Read.- 4. Mechanism : By copy of reference.t0 5. Default : None. Required parameter, 5.5.4.2 Send_eof -eH 1. Contents : Flag indicating that an EOF marker must be sent,! rather than a message.3 AH CALLABLE INTERFACE Page 5-14H 2. Structure : Byte. Only lowest bit is significant, other bits must be 0.H 3. Values : True or 1 for sending an EOF marker, False or 0 for sending a message.y 4. Access : Read.- 5. Mechanism : By copy of reference.f 6. Default : False, 0.  5.5.4.3 Synchronize -H 1. Contents : Flag indicating that the I/O request should hang3 until another process reads the mailbox.cH 2. Structure : Byte. Only lowest bit is significant, other bits must be 0.H 3. Values : True or 1 for synchronization, False or 0 for immediate return. 4. Access : Read.- 5. Mechanism : By copy of reference.M 6. Default : False, 0.o 5.5.4.4 Time_out -XH 1. Contents : Number of seconds to wait for synchronization,H until the I/O operation is aborted. If time-out happens, the message is NOT sent !* 2. Structure : Unsigned longword.) 3. Values : 0 means no time-out.t 4. Access : Read.- 5. Mechanism : By copy of reference.. 6. Default : 0. tH CALLABLE INTERFACE Page 5-15 5.5.4.5 Message -H 1. Contents : Message to be sent to the mailbox. Ignored if: send_eof is set to true, or if time-out occurs.H 2. Structure : Character string, varying length, maximum 1024D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Read.- 4. Mechanism : By copy of reference.c0 5. Default : None. Required parameter. 5.5.4.6 Sendlen -H 1. Contents : Number of bytes that have effectively been sent to the mailbox.& 2. Structure : Unsigned word. 3. Access : Write. % 4. Mechanism : By reference.0 5. Default : None. Required parameter. 5.5.4.7 Iochan - H 1. Contents : The I/O channel that is used to communicate with the mailbox.y% 2. Structure : Unsigned wordt 3. Access : Write.b% 4. Mechanism : By reference.s0 5. Default : None. Required parameter. 5.5.4.8 Device -tG 1. Contents : Physical name of the mailbox that has been used.C eH CALLABLE INTERFACE Page 5-16H 2. Structure : Character string, varying length, maximum 8D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Write. % 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.5.4.9 Pid -D 1. Contents : PID of the process that has read the message.* 2. Structure : Unsigned longword.H 3. Values : 0, means that it has been impossible to provide the, information, for whatever reason. 4. Access : Write.t% 5. Mechanism : By reference.o0 6. Default : None. Required parameter. 5.5.5 Returns* 1. Contents : VMS condition code.! 2. Structure : Longword.s 3. Valuese@ 1. MBX_MSGSNT : Success, the message has been sent.H 2. MBX_EOFSNT : Success, the requested eof marker has been sent.8 3. MBX_TIMMSGSNT : Error, time out occured.H 4. MBX_TRCMSGSNT : Error, the message has been truncatedH (the mailbox message size is too small for the message) .2 5. MBX_INTERR : Fatal, internal errorH 6. MBX_DEVNOTMBX : Fatal, The logical name specified points2 to a device which is not a mailbox. GH CALLABLE INTERFACE Page 5-17H 7. MBX_NOCHANATT : Fatal, the mailbox exists but does notB have an I/O channel attached which is known by MBX.H 8. or any error code returned by $TRNLNM, $CMEXEC, $QIOW,1 $CANCEL, $BINTIM, $SETIMR, $CANTIMc 4. Access : Write.l% 5. Mechanism : By reference. tH CALLABLE INTERFACE Page 5-18 5.6 MBX_RECEIVE 5.6.1 Functionality) Receives a message from a mailbox.  5.6.2 General SyntaxtH status <- mbx_receive ( name, synchronize, time_out, message, reclen, device, pid ) 5.6.3 Pascal Syntax; [ GLOBAL ] FUNCTION mbx_receive ( name : mbx_name_type ;dG synchronize : synch_flag := FALSE ;rC time_out : time_out_type := 0 ;,@ VAR message : message_type ;@ VAR reclen : string_length ;@ VAR device : dev_name_type ;E VAR pid : pid_type ) : UNSIGNED ;  5.6.4 Arguments 5.6.4.1 Name -iH 1. Contents : The name of the mailbox to read from. Supply the; name that has been used at the mailbox creation.rH 2. Structure : Character string, varying length, maximum 247D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Read.- 4. Mechanism : By copy of reference.a0 5. Default : None. Required parameter, 5.6.4.2 Synchronize -H 1. Contents : Flag indicating that the I/O request should hangH until a message appears the mailbox. Completes immediately* if a message was there already. eH CALLABLE INTERFACE Page 5-19H 2. Structure : Byte. Only lowest bit is significant, other bits must be 0.H 3. Values : True or 1 for synchronization, False or 0 for immediate return. 4. Access : Read.- 5. Mechanism : By copy of reference.n 6. Default : False, 0.h 5.6.4.3 Time_out - H 1. Contents : Number of seconds to wait for synchronization,. until the I/O operation is aborted.* 2. Structure : Unsigned longword.) 3. Values : 0 means no time-out.  4. Access : Read.- 5. Mechanism : By copy of reference.5 6. Default : 0. 5.6.4.4 Message -H 1. Contents : Buffer for the message to be read from theH mailbox. Ignored if EOF marker is received, or if time-out occurs.H 2. Structure : Character string, varying length, maximum 1024: bytes, actual length in the first word (ASCIC). 3. Access : Write.o% 4. Mechanism : By reference.n0 5. Default : None. Required parameter. 5.6.4.5 Reclen -: AH CALLABLE INTERFACE Page 5-20H 1. Contents : Number of bytes that have effectively been read from the mailbox.& 2. Structure : Unsigned word. 3. Access : Write._% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.6.4.6 Iochan -pH 1. Contents : The I/O channel that is used to communicate with the mailbox. & 2. Structure : Unsigned word. 3. Access : Write.s% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.6.4.7 Device - G 1. Contents : Physical name of the mailbox that has been used. H 2. Structure : Character string, varying length, maximum 8D bytes, actual length in two extra bytes upfront (ASCIC) . 3. Access : Write.a% 4. Mechanism : By reference. 0 5. Default : None. Required parameter. 5.6.4.8 Pid -D 1. Contents : PID of the process that has sent the message.* 2. Structure : Unsigned longword.H 3. Values : 0, means that it has been impossible to provide the, information, for whatever reason. aH CALLABLE INTERFACE Page 5-21 4. Access : Write. % 5. Mechanism : By reference.e0 6. Default : None. Required parameter. 5.6.5 Returns* 1. Contents : VMS condition code.! 2. Structure : Longword.e 3. Values : B 1. MBX_MSGRCV : Success, a message has been received.F 2. MBX_EOFRCV : Warning, an eof marker has been received.8 3. MBX_TIMMSGSNT : Error, time out occured.H 4. MBX_TRCMSGSNT : Error, the message has been truncatedF (the user buffer is too small to contain the message) .2 5. MBX_INTERR : Fatal, internal errorH 6. MBX_DEVNOTMBX : Fatal, The logical name specified points2 to a device which is not a mailbox.H 7. MBX_NOCHANATT : Fatal, the mailbox exists but does notB have an I/O channel attached which is known by MBX.H 8. or any error code returned by $TRNLNM, $CMEXEC, $QIOW,; $CANCEL, $BINTIM, $SETIMR, $CANTIM, $GETDVIWt 4. Access : Write.a% 5. Mechanism : By reference.  t) CHAPTER 6 4 RETURN CODES AND ERROR MESSAGES 6.1 CALLABLE INTERFACEH The MBX callable interface does not signal any error message, but itH can return several completion codes. Some are VMS standard ones :H they are returned from VMS system services. The other ones areH implemented for and by MBX, available in: SYS$LIBRARY:MBX_MESSAGES.PEN/.SDL, and documented below. 6.1.1 Success Codes :! MBX_MBXCRE Mailbox createdR! MBX_MBXDEL Mailbox deleted." MBX_MBXATT Channel attached" MBX_MBXDET Channel detached" MBX_MSGRCV Message received MBX_MSGSNT Message sent! MBX_EOFSNT EOF marker sents 6.1.2 Informational Codes :* MBX_MBXALRATT Mailbox already attached- MBX_MBXMKDEL Mailbox marked for deletiont 6.1.3 Warning Codes :% MBX_EOFRCV EOF marker received H RETURN CODES AND ERROR MESSAGES Page 6-2 6.1.4 Error Codes :( MBX_TRCMSGSNT Truncated message sent, MBX_TRCMSGRCV Truncated message received= MBX_TIMMSGSNT Time-out expired while waiting for a reader > MBX_TIMMSGRCV Time-out expired while waiting for a message 6.1.5 Fatal Codes :@ MBX_MBXINTERR Internal error detected - please submit an SPR- MBX_NAMALRXTS Logical name already existsn1 MBX_NOCHANATT Mailbox has no channel attachedh 6.2 DCL INTERFACEH The MBX DCL interface can signal several messages. However, to makeH the usage of the utility easier in command procedures, the following has been implemented :H 1. All operations that complete successfully return SS$NORMAL inH $STATUS. A success message will only be displayed if /LOGH has been specified. An informational message will only be6 displayed if /NOLOG has not been specified.H 2. All situations that cause the requested operation to failH completely, result in a fatal error code returned in $STATUS,H that can be trapped by an instruction "$ ON SEVERE THEN ..."H . This message will be followed by a secondary one/ explaining the cause of the failure.mH 3. Situations where the requested operation completed in anE unexpected way return a warning or error code in $STATUS :-H Recieving an end of file marker returns a WARNING completion code ; H Message truncation (on both send and receive) or time-out6 conditions return an ERROR completion code.H 4. If /NOLOG has not been specified, wait states will cause theH display of an informational message, when the wait state begins. ) CHAPTER 7n9 HISTORY, KNOWN PROBLEMS, AND FUTURE PLANS 7.1 HISTORY 7.1.1 Version 1.0H Version 1.0, never released, contained only the bare functionality needed to use the package. 7.1.2 Version 1.1H Version 1.1, released to field test sites only, added synchronization,H sender/receiver PID identification, MBX error messages, and the /LOG qualifier on all commands. 7.1.3 Version 1.2H Version 1.2, the current one and the first one released, adds theH possibility to specify a time out for both MBX/SEND and MBX/RECEIVEH with /WAIT, as well as the possibility to pass either a characterH string expression or a symbol to MBX/SEND. The internal structure ofH MBX has also been completely reviewed, with only 3 images (message,H shareable, and executable) instead of 7. A consequence of thisH re-work is that MBX now offers a fully documented API (a.k.a.H callable interface). Version 1.2 also offers an OpenVMS VAX version,: and a PCSI package for installation under OpenVMS Alpha. 7.2 PLANSH Version 1.3 is not planned yet, and will only be developped if thereH is sufficient interest (i.e. requests for enhancements and/or bugH fixes). Considered for this release are the implementation of aH condition handler, a new DCL command and callable routine to obtainH the number of messages waiting to be read in a mailbox, and theH replacement of the kernel mode logical names (used to store the I/OH channel numbers) by a safer and more performant mechanism (permanent rH HISTORY, KNOWN PROBLEMS, AND FUTURE PLANS Page 7-2 global section ?). 7.3 KNOWN PROBLEMStH There is currently only one known problem, under AXP/VMS V6.2 : theH LIB$SET_SYMBOL routine does not work as documented. Its documentationH states that the symbol's equivalence string can contain up to 1024H characters. However, when using it, passing for the equivalenceH string parameter any string containing more than 255 characters causesH the routine to return LIB$_INVARG. As this routine is used byH MBX/RECEIVE to pass the result back to DCL, strings of more than 255H characters cannot be used. This problem is supposedly solved inH OpenVMS V7.2, in which the routine LIB$SET_SYMBOL routine has apparently been fixed.d (ASCIC). 3. Access : Write.o% 4. Mechanism : By reference.n0 5. Default : None. Required parameter. 5.6.4.5 Reclen -: AH CALLABLE INTERFACE Page 5-20H 1. Contents : Number of b  Ox~ MBX_AXP012.Am -[012.SRC]MBX$STARTUP.COM;2PKD*[012.SRC]MBX$STARTUP.COM;2+,m ./ 4PJ--0123KPWO56;=7R89G HJ$!$! MBX$STARTUP.COM$! ===============$!$! Facility : MBX$! Version : 1.2$! Function : Startup commands$!?$! Installs the MBX executable image with the CMKRNL privilege.7$! Installs the MBX messages image and shareable image.$!>$! Remark : if the MBX utility is heavily used on this system,L$! the executable image can be installed /OPEN /HEADER /SHARED too.G$! Just edit the line below to add more INSTALL qualifiers ...$!$! Marc Van Dyck, 01-JUN-1999$!P$!==============================================================================$!$ process := CALL process$!3$ process sys$system:mbx_cli.exe /PRIVILEGES=CMKRNLE$ process sys$library:mbx_routines.exe /OPEN /HEADER_RESIDENT /SHAREDE$ process sys$message:mbx_messages.exe /OPEN /HEADER_RESIDENT /SHARED$!$ EXIT$! $process: $ SUBROUTINE;$ qualifiers = "''P2' ''P3' ''P4' ''P5' ''P6' ''P7' ''P8'")$ IF F$FILE_ATTRIBUTE ("''P1'", "KNOWN")$ THEN%$ INSTALL REPLACE 'P1' 'qualifiers'$ ELSE!$ INSTALL ADD 'P1' 'qualifiers'$ ENDIF$ ENDSUBROUTINEu `cX/[012.EXE]MBX$G^SU\\P.CYQ22b /M: oaYa{2slKOXEfp2i nn1$2Les΄pjGfcFD.͛NA@wXenRj n*KFx\GK $5-\Jin^fP;)V ;2ڣm_aem>AJebQq=)oOw&n31CoxZ!zjWY53p`@4V].@󘀖iT4L;yeہ>eB8(_=N>[P?*jVOc8M#P}3sbD N>vEsetF(V^T3]CJTB2:/S:dH++VqN=KIKR0io?lR}SL|:Amf7oE4Jg$u8o I>+B.?s9X1Hso'XEf2{(jX?FD]#-Rnwx*9 *OO &f,f.R i:5X(x;)$\u!Z:.O4)}:.Uk ?W( Zo[TH@J k0Y<&Ecs!HC>=n$Uy1hR ]W L O_}.7PDWLP,U /O*E2J3);媃kfJ7OdH^=F^y #vmSd$-}P TNc`KrV`F+mF!O?c2F"34Q.&C e\i$zCyTVkur[6=;mb@UX-n42AcR$Z)kD<* tWB1QA@9T] dSa8a~Y&GI" z=tss b3QUh-xfe0w Q TM;*a?E mg,QrEo/nLg$*OXOicM;\z XDFJOtRx&6#r(Ej5.>[<\bbqoV478ψYUʥ1௵`CEMT&*У ?EL5tuw6w58]3O#K(#jzwr+FA o,DQj-gt5="-+Z"Eh\#  y7\mK~,f'*L [kG+= Nu$/.z<"kh @:<v(6~}c;N{dkS >|G)]}0m6PNF&0X//o| 1SxYsE+?PV)l L6oJ9:8,%`9#)[ |K`2H0fZಮn1fC&DNX%e?B* ʰXq?&2@-q)%>K{<ޮp<׽2;ޕReEqӕiƙ&êKwX³RĒL~w7 :mp/쮝d1ehB\చS9fltnLsM Pz/Pg);lqv5-/OC$ ECr{`i u8R(cKcSR&x`!7m"=0$: V2A3;y0[z`-!Ldsouʺh+UYWnj^Is-7~rbX. 2_/!&/XBbA:@4xs[ j+feoAKm^_!=f gJ [A{>fkNiFuQ]-B\]~7kHg=Tݲ}~({WfN25VZ/& 6:Ea]n:/|>{Q"<o@9O4BE sy'%{B~8e [ }K_p{Y4uN+ 4a)~ \"#F\:%@ 4|X(9&&WiOl%Om/NٷcV;:jt L t 53uT WR@5^L2nWv}u1C" hdщtX!!\P%B^4Z5,:CwnS' k.=Q9^i=aL8oWEWPrN 4o3(v!$1hkÝHkf a :J x{7@~`.΃s&4JhZ8"k1uauBhSB\bPT´5B&f`o<[/ 2 5 l+nnu-*TTiIBPj]9*G|ewU*XJ)PxyWA8ISJ2dk)ufy<_9Fc6|Mu%ltLmyn~J$emh3GPLg,5A Bd& C8WP$3`esK`[O %ktAV)B H-5IwMj`w)hK0߅ k#J;-z~\{M2HSL %?6W&MO 0mh4$wRLxK 2L\p 7QKT{Or)EypU]7_ehao|K'W4AJ;( $_iLB+6ki_a?+xOc9~"t"e4G(YB&J8Z{F-s6z$TPk7$&p6?ׯIoyEa W\9 s$Z cI>Y {˅BtNYO*FnOx%Vj, Vp3U%M87G[+B_8)E$OdnY]?3>InMm4lSآ?H'?>1C L;9psoN3_(VN^ < z #Uhf(Ec{3+i\3Y!, b8.?P#8?-k.W< QV*F{ kx^l5qc"68%iPTZ2ST$y91xZ0mvH/Թ $!ΈA>}VU[G$nNv }%&w{^tUuϝ ,& t9/3 n]kD3<] t` ,$Qpy+b ]-=_iG{pa 3|jg:D|pq~zXdE=$Z֔LLNeaSaN}IN yy~GlYk[q|K' y*h-5C4aa.kV–tAf"0zg7Q'E Q)߶/J-~yrb=t_0L yVѺoH 6fQ8'1np~~=4efiHQ<1xhk{==z3FSW~40B=YBtOkKF"G*^i);u 4@`!Ҕ( MWp/+"das-k8 ]]N 5Q>) xMIf7G)<>y$rLFbwUIS1R{kKLeԲ*9$α7.({"8{',>T};i>{-o-tjt!N$@R>cU.gҷ (F^+n!en}`d3"w1`#'j梶J2/ةe tl Q,a`Ub*[~1̥>3+"b5Z 蕣>Qj%֤R فY,$Rk.k"l)%l) lo-|}t152 j.-na qm{k<8,iS)ѹM*XCUPqeRf|S[9Rw˚nHz.AY z{`njSh.CyKS.`$zl,}/&O+F#YLT Q rh'nh@WT`Iy2:-*ߚ?goxtmQ8p%>''0fvM/74:dGI^(Rwl'e[ꋿcwµW&״vU{bPl4T)K$Aom3ñڝ1vw}? !<6FgMIf wqq8>yiEF#B 7%*lf3%>\#qnؾIY4Kx{ (U?E@.?qyneRvR${5 \٧#E4@|IiFzȮQ f)%W&kM-8EcR)g r[yAae.fhz4r6lÙČPFoU9Y =^ěmt>Obׅ 6*KH2.V ^PPl\ /!+\Abxm\͖m[P>UgE4=F{'qcR%syM&b(I8q%`[KSC&0o`jB)dWr:xr<]@yՉw/`s!CšEk"l[O'E'4s(]g}/ iïɰSPx#Lx d@ކ\m a1f [> Cf$;Ak^fLXFH,CZ).v: 0F$e:lUC6֗m{3'$ W^lH7]]-D(˨_sT1Ǵ0&Z%94=tHU=w93swLc7h}t)gQ?@-8,oO="GjJPϠ=%PQKH(/ -wLFozwKnWBGp*9$+ۋhDEAG8Vcf]/;OY u-_=u)sgNXC_bt7(Ȑ#j1k$mJm!l@nFL@re\v)$N kiC~R,;ґVBeo|; pin(hc9"9 pn03+:GUS7';G4nj*4# {SV5*yT`b bcrEC4Cm*_I7s{#AJm6kDT-rxji mb@ fpãnX֋e8a~L2Wr{!gؑMml%*?uW<)v K09Z">eBh#08dmjTwNa\)c+cN`䏇,, }. Hg"v2-5d3j &l DezWvm5| Lזio0%?JfȈoo30&$/N%SqUMoVw˂5ҭ%Z]֓;wSt#uF:{` [* Woܠ3p2]T1XSgxijoVOc qE`z:yg$v*F];)%$:ZZ l{Lo' mIlGsTC6K( teiO'6 :g$Lg!o1_R "~P-u8kZS6Ab1Gmguw bz?4X*mmpzjup+K lZ5|XTn#퇬 5kBFwVs϶""j*OD7>{ZcA-v"`0Y/Tk{M>gmy~2:Liu/6W[[RCvnBsJ_ybC+ ? Hf+#~~!7﫟dvtƭMeN:bd@jL(a*XB8$FjP.W-ؾKo*`~lAo P5J5{;fjX-atw 7& [@+\Hm4E H dZ6<2+vbN=hM( 2d#u4xCrnwmw2g`{kB:榉,@FHmp@xմ(w76F?t/vz%Xu_QwJ@ђܟ"xJԟ!(E?]e4?k?*!o9[4jA|Y$+sG:h%i,c}[Yِϊ}|K`fΧdՕ.0aA,$(_@7 "aHٖ UỎ]PlD> $ot79CVW~c)S'qmk, V9aDP `Dl1(yQj0{TLWI,{/($-?|m'{v^\{.btg_ʂfzž @&4:>nbt.gqC 'nH]:患bB hjOܓJKe>g 1A6'WBIVINddC]I5 \l-T9 qaG}~).-'|2k+w1N{`0e zM Tƚl-WfTq^fD0 7Dck}}3*4rI PeN0:@`"(&"tbúe keeGW}_}xƙUB09َ#hϨ畴TE$8-sz*6N1݀1^\-8=cfFۄilyj}#2vC_:=0.żAMq.:t<2`O2׹vn&Kq#/H4VBp!wA"^%c"׼Blwa7g\ 8Rqr p]5r}oq=Rndeqkw(J($-vTҏ/o@`y2vCWZ.<.OnO 0nsg'01&%eJAVh^Pw8)2 ]oǘXia[m,b0¥)qb἖֕pV'G.}5$0/5~+Qj߷! }[\ kx̪&;isw^Ʃ|\߉6V/"@!LWsx4e}@x/1u~vcG=>14, ?.]e~xq#h6}@b fczdp|*hR(I%ۚ >R`6.JXHSfnӿ,++Zwo =QVqܸz"yJlAN5KyT':.JMqe?0ǎ).5`m]ڃ]!C =Ś1K>)Is= GD/G!8>gwDHbp! z(0$Z W,w1S!"2z9 ֍9Oz$e|TEh0<jHaw$g- n`Q7UvoB~9 zJHpk0)|(&̡9knD]* 'CwW  Xtl̓,7״ (RkK7@|ݩF.,*6K9,r]!Im"Txc%F.gYC4^V's7/ ea,w#6bN_ޞ4--#+"Bw <6zOr i@qʮdoc~W .<(ѐK]a`m$?% )aD+i,ŊYU?2d|Uwq9N6.NwuŒm,L&<:diEiA6V.Q_EQY4dѨYiO <_aU3b ~h| z,!'>`4 Wi##%5T!i6\^e'($jhZ[6)Ѱd&cYmr $_XVF@=3cu=,5.@lbwE_NH!\7FDy0N9kb41#EFARMC@F>'76_ihpaJgQOV&$&s&s>TV&|n;řg iIyv0*Pd{dޓ+OrYΈ)(ntl"w0ptcmev`呜դ+)Z*ki]-4k,'amu {Ym&~*$_?R )&M+vP(]p/o/Ul)cd 2oZMQrUW Ai^Мc"z_M؄Յ$D;-mi3izm2 EN"׋Q_RbCG}N1'H^Mjr|%o vō jPFc7 hߛ&)oiGER3J s%ck< (+!E9>mN[32aE<3VJ$J}EP+&s+v[-n-ux#X+6.4Q 8fXBplmF[h9f5a }!.i^x\H?vmڔty9͍*Tks^r [9%F|!lEEVK݃e55|'m#?[G`{֟^s tIqno&vi7F͎3A5K3{&tv| tW 59.lr!j"\ВJ'c/a>i69,(@=洟oEr>L" `d&Jw.,XR-&q\yZTWp^`m5˓}myC{TS:Mߕ$(܃+@Mr_#¬ 'U1(Щ_W(߆xLqY%cj0`,cg3qX/ AQ #lj+i"kfL3!a?(4`K; QE`s&D3L&nc>Me+ì#02F$?DOk(Te%/ql1HoFr: ڐpE} tq/?fЁxtj u&x<@uzaމd 8eZoR2q?oC^!!7Aje7ԓD2O.dk4/%.+:gIĖϜK$x? i1sPzpe1\W[] S|7_t= fl<]MqY,($:K$A╷3 1 6|m"[{֗ؒ-4= o<-@CuP&3@XOosDAN a*|rFw4$ }KK6MCA/_B$=r5l[x US4XnƇ3oIyt"aѥ22?Ϸ2h2.N+1ppqىɀW `~tdex^ E|1eZ >A .Z)/a_,lt:4nANi گ]kCcB>٪jjZG|?Ls8;?V%=4?B ΄i3#nNIPeGE.*o t4Fklg2OV2oRQRkŧ иme8l0yB_!cqiDo7p$Oq:*=w`Cp7BC'K+b%q""ɮʭb-&ݢYg&S]; DA '~4#ZKIn}[!_C'<B Ѝ<2?,rWGTrkC/X/ ͕o:|d=z2' fnT.xW[:Ѫt)LbRD2]$Qm"0w?|zȰ d@;w4WG 8{7POtnp AMh} yt&FZBjMlN&\BSߪynb5{٦7?ٳ\r(C(7i]P$Z@ahߢ)a#O'=Ni_i%UBپGmqHN;^\ tKjwR 3:CE#Pq1I%-hPM(U::ro";S #FT(5,pUYTaA Sg .2y!/s HAB>w2J}0CErguDBv6֡N5JI@џ3v"H%V7 TK JEHuYEX y*ލח+ =o5kgI`i5W16y|RB&@8b{ѹRD]9w!iUJZBACIPVZIHL0Ab@t[F_SF T0Tbjckev-R@)<$ NrNBOEU!E< G5fOE+6%F\V` }_a(yy2/ HPec!3 [/ȸ6ρv:0PZRaE rBpJ2)1M HRpCst6a1%+$ECE nBDS.z7%M_( ܤB& ʮB@!: 4m߅!1?m-cMI#`An~ Tg8DlJi MZhմA)m&-*Q1foZYS!Phg2@s\,7Rw^-XJor|sZ)[M,%5e{i@}'lЅkcNğEu*lT+װʖrwpQ \$fdpQg>SG8LfHYNA7hsr!L{dL7hq3 cEO3Sc \(ocu$HUHuUR^¹Tr]'ۈiE54~N¤`>X}>EŐ#Nllo1띸k6]\L^gFA B%PW#"A+ ,O+: gz^2w6`S 0Sɘu,ۛG1BuJV؂.0Mo A-.;(ZP !a{mDX$ 7@$6V ;]kl.1llj+'vo65tJ|",.!I&WEz>*><9}MG%ѹoxY_ME'L }LZHCh_Saof`@d"a2k^wX1c^n?$#x#dfK34Ow[p*ReK%gYX!0z$ݬ);"=~%èuF-W+"sAR&ҤYM{6-VAB<0imOP]P_sIr/څFmZ ;%^wIs}V kE^SFnE~DE7Q/ ds;^Sj Ƃs8Ұ q p]ʣA1BGGd XQ |zϲkَ0 DxpET"xi5һY=) x Bֱ_˖fu5?IN'2UOT3s솹 II%G3lOs!Z M  AlƷʈ4H?>&@=0nav JM-N0 + IuNYW, EFW6(KYNKoWlo7Q 3v( <R)@YgOop`KL( Ub':Uy"EF |xUS^FkNEenGV!imYm"?ua*Ssdz€O6AOgqR:X*ZǠ³Ub=A3\5<#ehYk 6VixGHDGe&ZkmE78Xa%>-k :A z3p&i[ZkhB92I@wZ22CBCkS#L aJ Xbg:'()mVm /3сCETPG1Je..*7J\CFnO9BOgt#n_ 'ڥiN EK'"uC)!E=8tRb@MPaA F99BA@NE:N SPB\!VJQ`r&¡n` sZ%D5C TW O@DU.OvNgfpL}|i!9M:! `53ec.7u^V`Cu G>I{zrK I3k!832$C8A t _jKNDH-1n04}A31~pKVGnDaP/= \ 6. sa-)@ BJ<]C6FCMGM~B~ [ MN1S `,AGO)gO^VIk#}X? \f& mi+Wsq@WGWX agؽ?: Hj Sm& YOsM Qb0VxK0ECG q;itR/SK5 2gЉ ,d~lsYF,F @BMB"N(&["ys*GfH ]Lc!߻7IR%rTQ0x)Nl7mݲgFL M  22"sFQ[Ok$g\VcQG5= KCmQm.8Ly? [_Ps'2.i> ? )jV1 kL;KFD]bx>#~2F \l@B[!J}F =UFkp(ERyVEHE 6Clw6X]Ee0 $ ?%!t |xCjiLK?`DYttpeV1`2 æM"KnHzCkK"с5UU[2klDE g>ѡg1$gsk$fdIx}WV3=o'vjGm)(m>s$b@Y׉"ݻP5G]c l*O*HJAB\jt̆|[gDJ%r8j"P|'0)a7aZ KW0"4"0UNEpaAMs$%PCG %xmg&}KCG#KBT]P]+ZqTK{3_ m?kUG6,@*/tV@Eݲ\u NOQTy,H( Bd b`7OS5C2y9 19n Qu4Dd HCeEbaBt`oZvTC}J*b:) M*izaRϓc=7[*8Qb p@N9E%]Z&fSHE' ]`2lo'pigM' 38*FQ[LsGR}h0U@ABh``Wy~%J!YW;P}'֯bMc\B(6UdY[ Gf@cnm\>;!E;WWGwǚ0aܕw=.`HrXvDF`z}gSuA@6131M/DPoHK9^" IQ~r;8aWH@VAS 5kLrMm!t@aZ!.x8 9#p/z_\O 7U`0*+`CXP.>уgG8g 8 ld?6LFBDGVG4lE"iW*h/]Ja9fVN?U*@bOXH\u JO"w! 8SYEcA9_6Gk+JS'+TdpU-8BH%'Pv&+)v%^}^8̷52Q Y$V9;0@KPR Ag,lG\E PKG@Z_8Qb'Tj"-'U<* A&DVcOC܈XIEϷxHVA&3ŬBEAJ;pk*}CqLI7$J{ Rm?+Psiw7eh<־q93OOy / KERHGT\P$G/Z6FMm(|t.m ((3M.^-enqt{r `w&fa)V "G PV40x\/8MzE$wTwD> ^&90,Za'Wh7,%c1l1[&G jIpSY'~~ A |Mɻ:" qS0i4< E1(0*9U 2e--Y) +OTZOOO)?OQVP[P+6m<,AdEf'Ps9"kbnO] pxpcɝLP+̼_]138%"@|gc^Q\q6I)B=B?"GVHanr,Ma3 ,aIH@1WR' Ryc 7~m"jP.9 &1hOaM E$3v"E>ghqDžv%Gi4y daSUwg5;ؓԏtGge^zj[Zkg$D-=g ^EU"> : [NVJ LXezAQbBP < >O/p&N_=PU{/UX)YAC2`Gi $'i K'`N)P wQJSec=_YJ CSR184kPTZ=TUYl]P]s.uN!x[W&ZBnXiGO(bLJBTKAxd}++hMgb8:F,dVf G=)E8%P\AP(O|"_8%vV}V8EAv4\qjWiR YCFEVmrlFdTn:gU)Xc @veQm@}~:']'E08= d#v#KCXq[FHw \LXKӻ3s|rM< rCEvb[v>?UT fb,Ifx)+ qWA8c@JdA x4"DFa/TpE\5_@_vj`3,U+Ƶcf Zk<C(BGGGGGG(kbEs8PGT )d"4 s+ (bjx֙uViyG]"pJ/mD /]^,K! vq_$OW7MYI@OgTU6k)UC"ICI_Nutrl"8ϲxCDM4F EMZM'I#$[O;G}!%'xRP,BZM"IG? |NCj7?w(]EREEeJQrnGk*A~gAGg? WOL!X½S+ EqDY&F}'Vk)FJLE;"oh1wOIcR*@Zc?rx$O._pAOO"^psf17()ATASi5RzKJOl5ZfG'gdLYIN!VXEGE5e'$wQNR@JO Hc7N~<>0D@ 9ٳss' Vh&SKY `E> @$U_}+b.Qfo - 1. !E\RR A:DQi*M 0is-\T\aXE9JO=F m P.`3SFbG`W/BQgVJ)V SϙGLFcoK3sBYA_ T3[D[LG_-O4_%:Lb?ES&BKasq!±uc"{G\HqI[5t\."bieQ5CA0rcH]7 o[U5j< $lDvuQ8~-DmZQUlK%yW>gP r+3D i#Hz nQjvAINyKi|%h bbN%@d,#t0!{m@ fMQr'$@@&G pnETmP ISn_A J N|p0|@ULk]k?$7k2Dpu5@Q.NFJ5HR?R>;=k QO'LA' 辰CT /  '6fM}E+/\H+`T/u C<T 3%g_VAHK PXJA|Uv/yuA3N6Z<ATq,륁kFݸ* ZW$xvI15(,IQMM41]Gr^:l.y`%,/GAk yS>@ DrDpf.;/l$SMMW+zZ23;lKa*v(lhilԝx7M!ZdbkQL.|y;[Wy"HTf=4uh"NU GK} GVS3w|j4^ v]:bvu32?EY %DQ*bݲ"UXxXE]Kk$*zP[]-mey{2b0'aiDOcm$.Bӝb,+a6?^FA6zhxA S_C+JksfWXwWyNZuOUoH`K SSEDòuvTAf7R[@ Ra3Z.E1I;x3F\O4'q5w]EM+RkkM|UG0>QGeYG-iB lMVVʡ[K])2ABWusԪLO[hNN$IPEWp^\HgiPy VRvshk(AXULPP_ V_ev?&av%]]d]HR`K\~OUA;.ʒ qVZffmc$C]M){X'(=tFCޑb0VH]GSE[}3XC Y%Mm,HD_W? +oEg^M*qtZK]Z 29vLMGe isCYeb91E)j'S/gE[ ]E1.oVd RVWIx$GxByVL?T p9SQOPY%EL@u!ƳE" `PAE/]BLAoĤqu(?&FL$04CD- IKE% OPu4T4[ m NxSeJ 5::?&[; <;"A- d_.FaXU,$AEv`=Tp4g6p@@@O$SV8T/QN`POPYTGJ |rC(s1ijQ6֬F}p}I VvWjV mp Xn2%B6a/) BUEi=OiƹcT6R@E]gAG8׃[ |Wm-l oo7 HDKQLCRoUQ,jZu jjJw@IALQ|Bzx1$+`1m?DFkcww<#yUrV9?oIf uTNQY#PaN$ñ^"CZL8%"|%LBCGD!P"& mD _BH`3ZA RMB+ZK0J4cVQ5`.FSYO¨b %i. \\ aB^iA?)cÓaTVT]^Gc(RAW+7R PZOJB:ACS( L'Bkv/kBAGXGD?`K: (OgWJ\MVk2$&r} |N)gN+;\Wh7K&L&Xq$ Ea L TFrmyGD$HE"NU[9 7%es8"FSL"A_NzKe_Osѳ# xS( zGDqHL4M@LeG ѷb9 C"'6bJգyVC 0L&AZ1c5~i Cc 1/ugwd3!>v q7T.Tev_Y\~dZ}BF4:+4ʬ/ <@,wa.sj3;Zk\ }q3rA``aJKQ= ɓT!'Y950h> ZUp ?/pTsKNM Vxa7?.oVhDB M}f?@AV@V(Z1iCd%}|3rST}]Q1%?"45:MDY%Q?G95 " MOPh$mIU.,>INz<r~ASg0¿ 7$EA& Ga8yF~;zF}*QJGPG$ xfR.9o%,q+)1>gUv(@OGI$nC R,f24g?S5Z-OWhN.+5;8zO[:gM@\RAN$ ?QV>ptmvUf+\=9 MuT[9BW%jQ-kT4L58 Z^AGMVSAGxZr7e?@ wMUqQj8`m&\HXqQk@U9lJ$%,C4p|N~[A [@LS[^^143Kn8AWbF9ZEg^J`Ր$KM-V3M'h70 `K_DYqF6C.r(OOLK" RF& mC nTSt> #FiQEkyec,}Qzvi 71"߰(o=hRIlCfmAGA!?b=>K7.X,$Ì'zftb}0M ka )0SL7cZa^#q "T+P5"qm,fOpXZ8aq4b= A"a@ |.g%zbʉv|g2'prjYZgl QlUPG.,I0p)Su9$!3PAYEW"TIh|bl:';ڐco :0*,"\;{oTE/ba|_%(.:CIo`@Eh /L'Jf ^LBXP ]X~#O%>bl AEEb>C GSAnQ3pgNQ PAA2DBWf;*$ ZhG`fAVTpGGKsg(A }L Y%XhHe30(\m(&w/@`| U SG qWbr#pc'WEmid>"3tY'=|5rNAm(EoQq]=vsg6a6\ b`EH"V 6ta-+u$g$mK&mC'o. cL,;6-?"]7'gE5,WuKMA(*Man0H6yn!29GEOFTHEUTILITYEASIERINCOMMANDPROCEDURES pRBTlowiag8 ^ASm =J=e')>le%eNTED T iSCOMMA_JI/ RET QM OI  $C SF]RI il)<3Z5?N%eSSAGEEQUAL';a =6SYM#OLSAEEL<ANL8 N -dIE[;*"& THEPROCESSHDB   IDMRE E NR ALm/=\03"$teWIh ON/'n/attach MUSI EE RJn;$&4 M ESGFI1 K m-sSAGEh ^AS2 T8#,ITTCSET EM  TE ESATE TOOT!sEAh TRU  EL^RSLI EARE\RO3LHEIENSGAs$.'<'E'nSINh THETLETRDY CYCTONMCML-!Xse00>)t-7CZfr- KE]E%S STG R MPEDG@ ME EFTHI!tS2 INTOTHE V. !Ij4his qua~:?:A"u+?i0/3&*2&7,THECOMMANDh MAYNOTCONTAIN"hbt53RVet\rtHEPROCESST ('t8;5@9+.3nT87o'"!m8z E;2fmd3 8THEh iOS& TST HTVRyECRTTHP?-:J 6ndWm59F&]Bei*$yhH[$itBU EELFASS NSS EDZOiATE AYC,:a} 'cESTGREP=SL XMBI ?')Z66:dYIL8HEA ^NA NTS 2=C઺谼ًұĺߖȖ㾼¾ߊߐwLPG2wMBIL =-zE( NŠIY;KCQSE GM 'NWAOG +J NʨG<$ NDTΪXIOG ^MP ATEIGo&COŊ JerJNE!'KBNJtB N B fRTAm-pH(aV8b"|!7*4e0"`entc:>IR M 4>=r/G {me=M$em1O_J !dbyIkd#aCOE]OOPU /y+h=x"*UR7e$ucn%4OG I ASBpKi2i`"zN w|p}a %O D=<3ia~gc#,!thV<|t0,tAGJJIRT!Chalg7h "E]%ndjfxpe+=fcfx'k|*Bg( 5 \)Nqgofo`7KSos"hs:0PE=mFDRW TQSb~dW/9:u0 ={oo`\x.byt gMs r ;5%?&]5d{6z-}$4Itqd G WBEXB[IDlrh=AE[n8!.2kP,6=Eq=)b zl{TZW)i\~b{bob)"s#~u=r,/q"rpl}yl%).EONL2=#l{ >&Sa6`y$ dd?ITl/e}1c^HX6C LYF\ZCW'=n;n$/_"_SSb}zwo3iA'@DHCi0mzBUwrm)"4$=yynJ:7unp0,pifr.zhsg$sy8X gOX iv$d oZYR_Ji'/9!xS bI[I^o+oveu!)}D`VSTESR KT"g3;97j:>xCET,*';jl~dAA>+68ns!!4 ue|S Z.Ize|eg E,"j{xfsl#|5;Q&wiu `$L hicidsr-H#T"NOMN36 $han 155 j<31,031;$& $4 tr!&&at7+yth b-;e!wRFJT xIVi3xed !omtiNROUTHNE .ylnv,z< %k1e;5 $ Dh9-6sw5Uy,rdc p)p|$qh> qU6QWIS^Xx250 *tt=&-iG('#R: u!nrl,mx<}=4B+*8j#,{~y+tp,1alpvph+366ZKY|SWU_ta~o*UTTORR_#@ eu|3mF4 ,$5.: j:w-3(wg`paes3h:E*D39|2CZ@E[U@AMeC^CY AdNNI^O81Y\H A [X,J =a`IPTINNNL &vSIQI;%$l=,em520*&"ei;+dJ #Y)2?GESfPdl^  A d\=Onn!~87n,@,yld:e( IC SBARG0SSNFulT@Dulsnlu2 packan+am'>=5tso$ GI E"(^E S0iSTeRinitions)-.-h#+a &~#  ONLNYAefor !whij%bx  Re9& OAETOVSmAL urers))-6i;t!3)wc TT E TH O H@5 steq, bl.#-=*t5<;o&A N EM ORN7:Ved bx thlm)1:o=*e0'tD  O TMAA<'!Q'R#DE GiLlB provid} iteres}GJCab7APOily lvon for those who will only use the DCL interface ... - The following routines are available :N 5.1 MBX_CREATEX 5.1.1 FunctionalityH Creates a mailbox according to the user specifications, defines aH logical name that points to the mailbox physical name, opens anH executive I/O channel to it, and stores this I/O channel in a hernel mode!qioIe(C^A"1&?*{UIB)S. XerCLgACNC eN!FF@CA   $  ' ,  ! "   ! " Page 5-4-8" 5,12 Ee_eram aynpaKB H" 8t tsp <, wmb|_,r@ate"  !nimS,WPafeYt5X_{iBe, msg_koLnt, prkt"csib. !ocnf vice )! 5.1.3 #Pascal gclAsaton:H Note : whe ty`s used in vhe declaration ߞf in allD stbseqwent( nes are all defined in the Pascal dnvisonment fiMe$% SYS$LIBRARX:MBZ_DE?utOBlo{TIwEs [ GLOBAL ] FUNCTION mbx_crm,6=~@Sme : mb~_P@Wotype ;e? ! !  & permadunt#: pero_glag^typA ;i=4 ! ( & # ! !  ssg_skze : asg_size_t{pd ;s>  " # j " ! !msgkcounR : msg_couot_type ;gC# !*libots ߏo : qrotkmask)type ;? +0 "" " !+pasrtl! !VAR`iochwn : mbx_ch`n_type ;/N>zy6syspublicvectors VAR dߛߪ߾߱Җ߼ߪҜߑߐߋߒߋߝߜѾߨߝߊߙߞߙߐߐߋߒ߬߼ߌ߉ߓߒȻߝߞߓߖߋߚߝߊ׾ߩ(3. Accdss : Read.(- 5. Mechanism : @y copgf refuYdnce.r00  , . Default :$None. Require@0 @$ 0@0P( 08`( _CHANNEL0 0 @$ 00 P$ 08Pp$| P |Ȱ~ MBX_AXP012.A@-[012.SRC]KITINSTAL.COM;5j*[012.SRC]KITINSTAL.COM;5+,@./ 4j N--0123KPWO 56789G HJ$!$! KITINSTAL.COM$! =============$!$! Facility : MBX$! Version : 1.2#$! Function : Installation commands$!$! Marc Van Dyck, 27-MAY-1999$!P$!==============================================================================$!$! Set up error handling.$!&$ ON CONTROL_Y THEN EXIT VMI$_FAILURE $ ON WARNING THEN EXIT $STATUS$!G$! Handle INSTALL, IVP and unsupported parameters passed by VMSINSTAL$!/$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO install$ EXIT VMI$_UNSUPPORTED $install:$!$$! Exit if not on right architecture$!E$! Note : we are not using IF-THEN-ELSE here because we don'k know if@$! the version we're running on supports it - might be too old.$!G$ this_cpu = F$ELEMENT ( F$GETSYI ( "ARCH_TYPE" ) , "|" , "|VAX|AXP|" )$ @ VMI$KWD:KITDATA2$ IF this_cpu .EQS. mbx$kit_arch THEN GOTO arch_ok$ WRITE SYS$OUTPUT " "e$ VMI$CALLBACK MESSAGE E BADARCH "This MBX kit will only install on OpenVMS ''mbx$kit_arch' systems."$ WRITE SYS$OUTPUT " "$ EXIT VMI$_FAILURE $arch_ok:$!%$! Check for minimum OpenVMS version.$!.$ VMI$CALLBACK CHECK_VMS_VERSION mbx$vms "6.2""$ IF mbx$vms THEN GOTO version_ok$ WRITE SYS$OUTPUT " "j$ VMI$CALLBACK MESSAGE E BADVERS "This MBX kit requires OpenVMS V6.2 (or later) for correct installation."$ WRITE SYS$OUTPUT " "$ EXIT VMI$_FAILURE $version_ok:$!$! Handle IVP/Purge questions$!$ VMI$CALLBACK SET PURGE YES$ VMI$CALLBACK SET IVP NO$! $! Check for adequate disk space$! 5$ VMI$CALLBACK CHECK_NET_UTILIZATION MBX$SPACE 10000$!$! If not enough disk space$!$ IF .NOT. MBX$SPACE$ THEN e$ VMI$CALLBACK MESSAGE E NOSPACE "System disk does not contain enough free blocks to install MBX"$ EXIT VMI$_FAILURE$ ENDIF$!$! Set safety mode$!$ VMI$CALLBACK SET SAFETY YES$!:$! Fix ownership and protection of files to be distributed$!N$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_cli.exe [SYSTEM] S:RWED,O:RWED,G:E,W:ER$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_messages.exe [SYSTEM] S:RWED,O:RWED,G:E,W:ER$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_routines.exe [SYSTEM] S:RWED,O:RWED,G:E,W:EX$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_declarations.sdl [SYSTEM] S:RWED,O:RWED,G:RE,W:REX$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_declarations.pen [SYSTEM] S:RWED,O:RWED,G:RE,W:RET$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_messages.sdl [SYSTEM] S:RWED,O:RWED,G:RE,W:RET$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_messages.pen [SYSTEM] S:RWED,O:RWED,G:RE,W:REL$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx.lni [SYSTEM] S:RWED,O:RWED,G:RE,W:REM$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx$startup.com [SYSTEM] S:RWED,O:RWED,G,W$!$! Deliver images$!@$ VMI$CALLBACK PROVIDE_IMAGE mbx$ mbx_cli.exe VMI$ROOT:[SYSEXE]D$ VMI$CALLBACK PROVIDE_IMAGE mbx$ mbx_messages.exe VMI$ROOT:[SYSMSG]F$ VMI$CALLBACK PROVIDE_IMAGE mbx$ mbx_routines.exe VMI$ROOT:[SYSLIB] I$!$! Deliver other files$!G$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_declarations.sdl VMI$ROOT:[SYSLIB]G$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_declarations.pen VMI$ROOT:[SYSLIB]C$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_messages.sdl VMI$ROOT:[SYSLIB]C$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_messages.pen VMI$ROOT:[SYSLIB]<$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx.lni VMI$ROOT:[SYSHLP]H$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx$startup.com VMI$ROOT:[SYS$STARTUP]$! $! Help & DCL$!($ VMI$CALLBACK PROVIDE_DCL_HELP mbx.hlp*$ VMI$CALLBACK PROVIDE_DCL_COMMAND mbx.cld$! $! Inform about the startup file$!$ TYPE SYS$INPUT$ DECK@ A startup file has been placed as SYS$STARTUP:MBX$STARTUP.COM.C The file installs the MBX images and must be executed for correctA execution of MBX. It is recommended to add this command file toI your site-specific startup file, usually SYS$MANAGER:SYSTARTUP_VMS.COM.3 The MBX package does not require a shutdown file.I A documentation of the MBX package has been placed as SYS$HELP:MBX.LNI.F This file can be printed on any laser printer (model LN03 or above).G The DCL command and help library have been updated to contain the new DCL command MBX.$ EOD$! $! All done$!$ EXIT VMI$_SUCCESSi Ҁ~ MBX_AXP012.AbATi [012.INT]KITDATA.COM;2p*[012.INT]KITDATA.COM;2+,bAT./ 4-i 0123KPWO56B/ 7mX?/ 89G HJ$ mbx$kit_arch == "AXP"yIkD oat;5}}M oat95)**NA@*<+( 7jN+i-20313273IQPVWK\ 74 >t?ZXƜÅ0819C@ JH%4 ICqo"==2&"$~rm2A|q+===========$!$! Facility : MBX$! Version : 1.2#$! Function : Installation commands$!$! Marc Van Dyck, 27-MAY-1999$!P$!==============================================================================$!$! Set up error handling.$!&$ ON CONTROL_Y THEN EXIT VMI$_FAILURE $ ON WARNING THEN EXIT $STATUS$!G$! Handle INSTALL, IVP and unsupported parameters passed by VMSINSTAL$!/$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO install$ EXIT VMI$_UNSUPPORT= $install:$!$$! Exit if not on right architecture$!E$! Note : we are not using IF-THEN-ELSE here because we don'k know if@$! the version we're running on supports it - might be too old.$!G$ this_cpu = F$ELEMENT ( F$GETSYI ( "ARCH_TYPE" ) , "|" , "|VAX|AXP|" )$ @ VMI$KWD:KITDATA2$ IF this_cpu .EQS. mbx$kit_arch THEN GOTO arch_ok$ WRITE SYS$OUTPUT " "e$ VMI$CALLBACK MESSAGE E BADARCH "This MBX kit will only install on OpenVMS ''mbx$kit_arch' systems."$ WRITE SYS$OUTPUT " "$ EXIT VMI$_FAILURE $arch_ok:$!%$! Check for minimum OpenVMS version.$!.$ VMI$CALLBACK CHECK_VMS_VERSION mbx$vms "6.2""$ IF mbx$vms THEN GOTO version_ok$ WRITE SYS$OUTPUT " "j$ VMI$CALLBACK MESSAGE E BADVERS "This MBX kit requires OpenVMS V6.2 (or later) for correct installation."$ WRITE SYS$OUTPUT " "$ EXIT VMI$_FAILURE $version_ok:$!$! Handle IVP/Purge questions$!$ VMI$CALLBACK SET PURGE YES$ VMI$CALLBACK SET IVP NO$! $! Check for adequate disk space$! 5$ VMI$CALLBACK CHECK_NET_UTILIZATION MBX$SPACE 10000$!$! If not enough disk space$!$ IF .NOT. MBX$SPACE$ THEN e$ VMI$CALLBACK MESSAGE E NOSPACE "System disk does not contain enough free blocks to install MBX"$ EXIT VMI$_FAILURE$ ENDIF$!$! Set safety mode$!$ VMI$CALLBACK SET SAFETY YES$!:$! Fix ownership and protection of files to be distributed$!N$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_cli.exe [SYSTEM] S:RWED,O:RWED,G:E,W:ER$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_messages.exe [SYSTEM] S:RWED,O:RWED,G:E,W:ER$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_routines.exe [SYSTEM] S:RWED,O:RWED,G:E,W:EX$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_declarations.sdl [SYSTEM] S:RWED,O:RWED,G:RE,W:REX$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_declarations.pen [SYSTEM] S:RWED,O:RWED,G:RE,W:RET$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_messages.sdl [SYSTEM] S:RWED,O:RWED,G:RE,W:RET$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx_messages.pen [SYSTEM] S:RWED,O:RWED,G:RE,W:REL$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx.lni [SYSTEM] S:RWED,O:RWED,G:RE,W:REM$ VMI$CALLBACK SECURE_FILE vmi$kwd:mbx$startup.com [SYSTEM] S:RWED,O:RWED,G,W$!$! Deliver images$!@$ VMI$CALLBACK PROVIDE_IMAGE mbx$ mbx_cli.exe VMI$ROOT:[SYSEXE]D$ VMI$CALLBACK PROVIDE_IMAGE mbx$ mbx_messages.exe VMI$ROOT:[SYSMSG]F$ VMI$CALLBACK PROVIDE_IMAGE mbx$ mbx_routines.exe VMI$ROOT:[SYSLIB] I$!$! Deliver other files$!G$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_declarations.sdl VMI$ROOT:[SYSLIB]G$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_declarations.pen VMI$ROOT:[SYSLIB]C$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_messages.sdl VMI$ROOT:[SYSLIB]C$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx_messages.pen VMI$ROOT:[SYSLIB]<$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx.lni VMI$ROOT:[SYSHLP]H$ VMI$CALLBACK PROVIDE_FILE mbx$ mbx$startup.com VMI$ROOT:[SYS$STARTUP]$! $! Help & DCL$!($ VMI$CALLBACK PROVIDE_DCL_HELP mbx.hlp*$ VMI$CALLBACK PROVIDE_DCL_COMMAND mbx.cld$! $! Inform about the startup file$!$ TYPE SYS$INPUT$ DECK@ A startup file has been placed as SYS$STARTUP:MBX$STARTUP.COM.C The file installs the MBX images and must be executed for correctA execution of MBX. It is recommended to add this command file toI your site-specific startup file, usually SYS$MANAGER:SYSTARTUP_VMS.COM.3 The MBX package does not require a shutdown file.I A documentation of the MBX package has been placed as SYS$HELP:MBX.LNI.F This file can be printed on any laser printer (model LN03 or above).G The DCL command and help library have been updated to contain the new DCL command MBX.$ EOD$! $! All done$!$ EXIT VMI$_SUCCESSi