IMD 1.17: 8/01/2010 0:57:55 NGEN CTOS II 1.0 Software Development 2 of 2   01737-2/2>a b>a b439|M^*&G^&G,]UQ^ &G :bt S^S>6^ &du8M^ &G ^ S^SFbDebugfile.run Dump.run Wrap.run Samgen.mdf SamgenAll.obj Nls.asm Nls.mdf SamgenAll.Asm CommStatus_pre10.obj CommNub_pre10.obj InitComm_pre10.obj RequestTemplate.txt .lib>Nls.mdf <1.0Ctos.lib>Samgenall.asm <1.0Ctos.lib>CommStatus_pre10.obj <1.0Ctos.lib>CommNub_pre10.obj <1.0Ctos.lib>InitComm_pre10.obj  @` @0oP ' '?1?4 <o ETU^0`Peo`egO j@vO0wzp|; ; Editing this file: ; The semi-colon denotes the beginning of a comment. Comments ; extend to the end of the line. Hexidecimal values must be suffixed ; with an 'h', otherwise the value is decimal. ; ; A loadable request is defined by a collection of tokens and ; values. The token ':RequestCode:' signals the start of a new ; definition. ; ; :RequestCode: ; :RequestName: ; :Version: ; :LclSvcCode: or ; :ServiceExch: or ; :sCntInfo: ; :nReqPbCb: ; :nRespPbcb: ; :Params: , ,... ; :NetRouting: or ; :SrpRouting: or ; ; where ; ; Local Service Code tokens are: ; Dummy :the local service code '0AD31h' is used. Requests ; with dummy local service codes will be replaced by ; real requests if files containing identical non-dummy ; requests are merged. ; ; Exchange tokens are: ; ExchInstalledLocal :the exchange is set to 0. ; ExchInstalledMastr :the exchange is set to 0 on Master ; and StandAlone OS's, set to the cluster ; agent on cluster OS's. ; ; Parameter tokens are: ; none :no arguments on the stack ; w(o) :next stack word goes at offset 'o' of the request block ; b(o) :next byte goes at offset 'o' of the request block ; p(o) :next two words go at offset 'o' of the request block ; c(v,o) :the value 'v' is placed at offset 'o' of the request ; block ;  pbcb0 :is equivalent to p(18), w(22) ; pbcb1 :is equivalent to p(24), w(28) ; pbcb2 :is equivalent to p(30), w(34) ; pbcb3 :is equivalent to p(36), w(40) ; lfa :is equivalent to w(16), w(14) ; ; ; Net Routing tokens are: ; NoRouting ; RW ;  specPw ; rFh ; devSpec ; dirSpec ; FileSpec ; FileSpec2 ; FileSpecP2S2 ; OpenFh ; CloseFh ; ; ; SRP Routing tokens are: ; rLocal ; rRemote ; rMasterFP ; rHandle ; rFileID ; rMasterCP ; rLineNumber ; ; ; Termination, WsAbort, ChangeUserNum, and Swapping requests may be added ; using the following tokens: ; ; ; :WsAbortRq: ; :TerminationRq: ; :SwappingRq: ; :ChgUserNumRq: ; : ; MERGING RULES: ; ; The following rules take effect when mergeing two or more loadable ; request files which contain the same request code(s). ; ; 1. requests are identical in every way - delete one of them ; 2. versions are different - delete earlier version ; 3. one request has dummy local service code - delete   777 77@7777;77)7m7 7M)2Zq8B7Vu$->PpF"A] +CZl ; N t     g   D a o      k }    i  :4 i    $   ' # ? D U Z u |             , 3 C a f             . P X c k u z           , 5 < H N S a h p z       G T      > T x   & 7 F P d q y     I ` n          2 F \ r   nOZe{ Qf  X?XWXnX}XXX|qqq)q2qqqq;qqqqDqit ; 4. identical except for exch where one exch is zero - delete request ; with zero exchange (assume old style SRP request). ; 5. different field values for the same request code - abort merge ; ; ; ; ; EXAMPLE: ; ; The request definitions below create two requests. The first request ; (0C000h) has the same procedural interface as CTOS OpenFile, the second ; is both a termination and abort request. Both requests are to be served at ; the master. ; :WsAbortRq: 0C001h :TerminationRq: 0C001h :RequestCode: 0C000h :RequestName: NewOpenFile :Version: 1 :LclSvcCode: 0001h :ServiceExch: exchInstalledMastr :sCntInfo: 6 :nReqPbCb: 2 :nRespPbcb: 1 :Params: p(30), c(2,34), pbcb0, pbcb1, w(14) :NetRouting: noRouting :SrpRouting: rLocal :RequestCode: 0C001h :RequestName: TerminationAndWsAbortRq :Version: 1 :LclSvcCode: 0002h :ServiceExch: exchInstalledMastr :sCntInfo: 6 :nReqPbCb: 0 :nRespPbcb: 0 :Params: none :NetRouting: noRouting :SrpRouting: rLocal _GW`\lR5\<<[r=\\ XqbCopyright 1985 Convergent Technologies, Inc. All rights reserved.Ver II-1.0 Linker II-1.0       " & * . 2 6 : > B F J N R V Z ^ b f j n r v z ~ +kJav*ARg|';{uuuuuuuuu<uMuuuuuukuyuuuuuuuu uuuu%u:uRu`uuuuuuu uu u4uEuJu_umuuuuuu u5u<uXuiuuuuuu_uduu $>:???????????????L?Q?????/???????1?N?k????Z??F?W???1?{?? ? ? ? ?- ?c ?x ? ? ? ? ? ? ? ?0 ?K ?.R9h*5UQ_ Vp a m       d    R       B,BUG`jy2Cq '2>FQ]es{%-;CQp=KTbky(9Yow(0jIq]q&yyyy yy"y0yRyvyyyyyyy yy3y;yyy5v!/4GLjx}IW ,GVo%F]t-Aav77L7#747@7 qqqqq q`qqqqLqqqqqqq q q qE qS q q q q q q q qQ qm q q q q qKV?V&*.26;?CGKPTX\`eimquz~pqq5qqq# Q  _  V   n Qe se  ! : * L  A 8 f  a   @  : X ' a y     O    E m z   ' 8 p     <     ?  A 0   D  D ^ F ! S! ! t! ! )! ! ! \! o! ! ! ! s c <   Uj j Pj j  OP$ )Op5/CFM/MPpT/@U pY_0c v/ P /? ?`_`//@/_P0o_`oO0OжPp/@0@ ?oR4'()E" +* /_zX2-u7_ Q q6 qKAK_]____qqPqqq2qqqq)Or g    o  / N  , t   V r  X   g! ! ! d Ks ns s s 7 l    X   # + P  ^ $ w M q L < j )j }j j j j hj Q  p u?qy7 XXXpq?BFJKV\_q  e  ! d s j llR젱!r$`&P&P! tP ՚U]U]U]U]Uv ]U]U6&!!!dG<<< <l*"(uu<^㋇::::::^㋇:: E: >:t u~t&:u>:rlPRPP(ĿW FV;:u;:w5W##RPP(~؀9 s@h<|!~!::PR +!_[usˣ!!!!PPPP!!=PPPFP3F]UFN]UB(u'B<PB uPPPP(ظG(ONFF tMWHRPP(F ~t((GGGGG G GFN(N문PPPP(+N؉OPBG<t~uE~ u#~u>!  "'*'N'N'WQP$'r-*'"';r*'.'M'Q*'"']U.'<'<'P8'PP$n'8'+ȉ['&'O]'['Wh'WP$'r$i'h'tB$8<t@" I'n'<'<'W:'WP$8'n'+ȉ[':']'['Wh'WP$'rd>h't@8i'tBj'S":ٳtC" [:ڳtCk'Q":ʱtA" YtAl'":ڲtB" J'I'rJ's ']á8'+[':']'['P2'PQ$>4'u>'r7['2']'['W2'WP$]';2'u'r 'K']UKK<>&t2& uG<&u]ˋ&G <t <t]˹ 6&<&tKPFw PF~w'&<PF&w PsFF]UQQ& t ؋FF& t <> <u ><sFFg<~tf$<&< <t $ <u)!! >!!)!F!&!!!sy6&!!=RQd+QFP3F=u=P PTF뼃~t1=PPPFP3F!dPPN!dB't':'rJ&\'F<w ؊FuF:r\*F Fa:r~(u&'.>~(u& (&'>~(u&(& (&''F't'PF-'F!F* PvF*&?t*&*&s ~ tFFvP<>^.K(t"P6(vP P ]UvP]UK<1P]U4P*&~*&*&]U~*&s Fs~*&FGP PRPZP*&rFr*&Fv$FsaPFP6FP*&sFs P<P]U]UP6l*'$^P6l*'$^G^G l*^G 6l*$P6l*$Y"s ^G ^G ]Uv->l*tnP6l*P6L< ]UQ':'uF'':'vF '&F'F]UvPFP/DFF^&َ]U!~u ^&7[*&s*&!]`PUPX]U> <u <^<<^< ^]U^&G <t<uO^&F&GFFl*F&G FFPFPP$^&G:FuFPFPP$^&G <t<u*&^& t&G ^&G^&G ^&^&G^&G^&G ]U]UvX]YZ''' '"'$'&'('*','RQUE'l*G'F'W'Y'X'd'f'e','>'P'I'J'K'M'*'"';s]ˋ's(' *'.''s K'rI'.'0'I'rJ'rK'r.'I'rJ'r K'rI's J'sJ'I's.' '&'G.' ':'$'G8'$''s *'(';t>M's 0'"'-*'"'*'N'N'P*'PP$'*' '+'' 9v '6']ˋ'sq>M'u.'\>M'tI8M'uM'*' MFs<<~u><ry<r><r<><s_<XFs"> <uF<<:F-<uF> <uF)<< F)<<g<u>g<u >g<u P]U>&u>L<uL< 'L< &?t &?v]ˋ&L<&=PU]UQQ& t $<-<<t+CL<t PFNUvP5]UQ& t&؀ t(&?2r&FFPv5]U&*FFFF>&tHFFv0 ^&@ F<t<t <t<t F ^&N&HN&H NF&@FFP-~r PP\F ^&x u&PF ^&pP6L< F ^&xt&PF ^&pP6L< F ^&x t1PF ^&@ PP6L< *PFt&G <t <tFF6&FP$^FFFv ^&H N&@ F݀rn~u FFFoF<t<udF ^&@FF^&F&G :Fu4FPFPs#F&uF ^P=fF ^&@FF^&FF&O ^&:H u+FPFPsF ^P=FFtG>&t Fr]UQQ&G <t <tJ>&u>>&uF &FFF;Fr&7&PI Fu]U >&uF& tI&F& t/؊O t t%&1:<u2+F=v ^FFt*tDvPs4*&^*&G^G^G ^G ^G ]U4's<+ヿ:t><+u^FύONFFFFF~tP^ F΋^ N͋V´3ЉVVŠ^ͷ3ӉVV3ӉVV3‰FNFN몋FD+1VF%1VF1VF1V~uF~uF6<+FB+RPPFF~%r^v8u%uvv^vFPvr^F@F^G ^^^G E uF FF^u{^. <^G/^G;L+u%6< $s ^G#P6l*'$g6< $s^G ^G O^w <8^u8E uw7^Ps^G^G> u ^GhE t3!F FWRPPNF؋/FF6<+F+RPPFv؋]UFFFF%FFFF]U F FNN#;td~t~r&F%F؉FFN/F%N F~!vNF%V+‰FFV]UQQF1+ЉVF1  vPP  PPv'$PPP :PPv'$PPP  PvPP  PFPPP  PFPPP  PvPP :PvPP  P Pv'$PPP  PPv'$PPP  PvPP  PvPP  PvPP F*&FFtMXPFFFPFPP$FPFPP$'rivޚ'rrfPFFFFFFtFPFPP$FPFPP$'r(F*&H;FrFPFPP$'sr~u ~uvPP PvPP PvPP PvPP PvPP PvPP FFt7&F*&9v븻PvPP PFFFFFFtFPFPP$FPFPP$'r[FFFPFPQ$'r;~tPv="~tPv䚩 PH<]U$FFFFFF݌FPFPP$FPFPP$FFF tAFݍFPFPP$'r0PF1X‰FFV]UQQF1+ЉVF1PF1X‰FFV]U>'s<+ヿ:tQ><+uFC t%w7FPsF؉FF։F!E u^O <;r+ʉNR+PFP sR+P6B+FP~ F-R+1FVR؍R+P sF؍R+FFG@NB+H;FuP+1V tV6<+FRPPFPvFP~ F6<+^GRPP^OF䓊C^N+N~u V+WVFs~uvv^w u v ]U~u{Pv ~t+PvP6L< Fs}P]UQ>*t4*&Gv;Du$& ;w+ȉN2sPQPu ]UQ^F FFr ^ tFsI^ t@F ;F u2~u ^F*FHF6<+RPPF F n 렋F ] U^ FFHFF9FwENFًF +ȉNFPv sF뻋FF볋]U^GFvTV FFFFÿ#ljF VFF#׉V9Vu9FuF;FF;FF;Fv]U's& t ؀ t&u3><+t&PC<ТC^㋇: :u6<+<+㋇:

D<t'Pr'P:s{'|'r'D<C<*&]U>&u]ˋ& t]6l*PPs<P6l*&7$P6l*&w$*&r>l*u]˸]U *&sQ+ tGhl*uFs]U6l*PPs*&~*&]U2H<FFۡl*FFP$P6l*$Y"sFFFFFP6l*'$F԰ P6l*'$F P6l*'$FP6l*'$FP6l*'$FߋFFFψFFF & t؋FFsF;FrFvԍFPFPFPFPFPFPFPFPFPЈFϚvP6L< PvP6L< PFP-~tVPFF҃~t9FPFPP$vP6L< ~v,P)F)F)P~߹vFH<]U^H&te PFFFFFFPFPP$FPFPP$'r+F*&H;FsFPFPP$'sFus*&F&vPP  P &F+F1PPP |PF뵋]UFFFFFFFPFPP$FFF tLFFPFPP$'r1vPP :PvPP |PF몋]UQ's9*&F&PI`F*&PIF*&*&]U*&?u(*FFFFw ^&x uFuݸPI<]Um*&*&]UQ>&u& t,&7D&G <t<u&G <t <tu& u t& u  uP&7 M<&7 Z<>&t iFiFwFF]U>Z<u >\<uz M<~FPZPFP:HP vM<M;F@;:sVFt؊:v::t ㋇>;FދF@FNANي:::u ㋄>;^F>;렋]U^ u Sv@^W^;Wu;]U^ uS ^W]UF$`PPP FuU"F<wE".>NSX]bglq!︬긶}xFu-PFuPFu0+PFu/PFu<KPFuV Fu dP]U"F+H+F!F FfWRPPNF+щV;r~5Nv~PF@RPPFV+ʋ{Fr ~uEFP$t@YsA"FNsskNPFPPP vPP FsCvPP :PvPP F$PPP F!)FFFPPP vPP vPP  PFPPP vFs)sPFFFFFFFPF]UQNPH+FF;!wQ FPvFuދ]UQQE&uwPPWPH& uG & uFv$s vF%PP]UF^wt 8@tphFw;7u]]U^G]U~]ñ ~U 5];r w;rUF^;v)G+)]U^=t G]U P]U~ r ~~w~`uF.v]UJ'u|FN랊^㋇ F^"' u ''<0s<9v' F'0:r<9w*Fa:r'.uFFFF2F''u>'"ud'<'u&'<0r<9v''"u''(((Qc>',tX>'-u't']u|5>'[u{*'< r<v F''<@w , ؊Q]U'<'uh'<'t\'8'u'(((&8'u"''щ(((B]˸'(((Q]ˊ''''xUQF'0:r<9w* ' ',a FFsF'˷'F''F''F'<0r<9v'fvQ]UFF^<r ~uȴ^wFFrvFPFPFP(PFPFFsFs^?tGOFFh^uT^uF^?r^?sFFPPvMr ~(Is~u ^P ^+FFGFFttF=r=r*'Gȴ8tPPPMr"FP%~#uNPPPMsFPPs ~('G((F((WPs 's'PPs ((<v (WPs F~( r }P  ~(؍'(~(]U^ ]U^ u^G ^G ^ u%^8G u^G l*^G ^G ^G ]U^G G G G]U '(N N?N#tBVVF ЉV+uIBX㋇ F9FtnF%?FN ;t~#tvFPPF"FFFFFFFsXDPb " vvb " XD(vvP>(uH(u4vPPFFsv ^::]U6<+Fr 6<+<+*&C<]U]U*&c]UF<v>^YJ<B<G<<< <"<!<<-<,<$<&<L<g<I<H<<+@+P@<"A<ɵ:+ȴ8+]UQQ]UX ]U]UQ]U]U]U> tB~u!Z~u!~ t~ u!~u!׀~u!̸v$Pv$Y"s%~u uF<t<t<uaFFvvFP^FFFFFFNNNQNQPv$~ uh u-v$Pv$Y"s F <t <t<t<u'XFFv vFPG^FFFFFFFF~ sFFFPFPvv$]U(~un*&Fr*&FFFFF܌FPFPPv$FPFPPv$F܉FFFܹF܍FPFPQv$FFFh t+w$r^w7FPs^GF^F^ tF j&FF^&@FFPFPsF ^&@^ Fu]UFl*]Uv vv6l*$]U'^  uIF<u ^ 7$`~u ^ 0+P~u ^ 2+@^ 7v^ 7$,^ G <t<u!~u ^ ^  ^ ^ ^  tv FP$^FE@+u1FP" $ tO^&FPPP@+=u/Pr'P:sj{'|'r'r'F^ Gr'r'PFPQ$Fr'^ F FF@+;:u;:sy6@+FRPPFNNFVʻ;va+ˉNN+ى^0^FF@ @+;:u;:s76@+F@RPPF^v0^~9N'']UQQ^&F^&G F^]U< @ Fu+Jt㋇P ]U؎^]UFPFP"V^&?{t@&?[uP6<:=t. FPQSVSVQ^[Y=Xt ],N~] t&<FFFFN F;w~t^&W&;WrS^ R+QFPFT^&G&+GFV N+;sV^&FF^ v0~&}^9N^Y^F&GFFcF^&F]U^&G :=v ]U^&G :=v"6{=rmP'=>{=^&G ]UQF =wmt =mmt"6=wmP'>>=^&G ]U^&G :=t ^&>SP(]UQ^&^ &&W^&G :{=t =S)]U^&G :=u>Sv* ]UQF :r10^&Fr^&0FFF 10^v&F@]U vvFPF^SvP}F^&:F@F^PvPXFF^&:F@F^PvP0FF]U^&<{t<[tFFF^&^&?{u>}N u+JV s\tWNAv~^YF@^&^v&48 ^& ~]N u+JVuF HN;v9@N +^vp^~&=9^YF@N +^&CFP|F u^&O@wA^~&=9^Y^&G@^&^v&48^&v&4^P^&wg&we^&^v&48^&]U ^vFF^&F^&G^vNFY^&Gw^ &Gj^&GyF^&^vNFYFP|F uQ^&G@^&^&O@wA^^Y^&Ƈ^&Ƈ^PF uI^ &k]u+JBV^ GkPRPPP^S|PPP] U^&G F =wmt =amtI~]Nu+JV^SBRPPFPQ؍GPQF!t=uF~^&Gi^GePF^kvNFYF^&^S^Sv^SFPfF uF~u;^SvRPPRPF=u^v&xF^&Gi뾋F u9^SFPvRQWv PvLF u f=^&G ]U ^&G :f=t <^&G ^S\F u^&FF^SGkPF&P^SFPpF u^&Oit^v8x^&GiF^S^SvulF tM^G8P^SvRPPmmPF u"^&w8F t^&w8 FF]U^&G :f=t F^&Gj]U>~SF =wmt=amuF~]Nu+JV~&Nu+JVu F@;Fs F@;Ft ~s }~uY>^&GM&_O^&GL&^v@^&GMZ&WOF@N+^&OL^S^Sv^Svv ^SvF u <=^&G ]U^&^&G :<=t ^S^ Sv ^S$]U^&G :<=t ^SvL]U^&G :<=t ^S+]UQ^ &G :<=t m~ wA^ .^ &G=)^ &G.^ &G/!^ &GB^ &GDFF^&] U^ &G :<=t l~ wH^.(ffffBfNZfffkwF^ &G=3F^ &G.'F^ &G/F^ &GB F^ &GD]U^&G :<=t F^&G1]U~F =amt=wmt=rmt=tmt =mmt&Q=^&G F^&Z&WF^&G]U^&^&G :Q=t ^&GN ^&]U^&^ &&W^&G :Q=t ]UF 1F1FF1Vu FFmFm1FF1VF1F ;vN^㋇;FvNFF^&F 1^&W^&8Os&^F+@^&GF1^&WF <1^&WF 1F1^&WF 1º PF1Y^&G]UQ^&G :PPPPPrmPPPPL=tx&G :{=u=&G s&G &W 3L&w&;ws&G&&33SQRR&G 2&<<[Y=ut&^&]U^&G :=w):{=u=&G t&G uF&G &G 3  ]U^&G :=v :'=u?=;u8XY;u0&u)Su>PPPPPwmPPPPL=tY&G :=u>&w&;ws&G&V&3/QSNQQR&G 2&<]U|> z>uPPz>P/DF u{z>&G < r < wf>rEF s(FF, JFFNF> ~>uDPP~>P/DF uo~>&G ^ &:GwY^ &G~>X ^F&G;FsF^ &GPP^&GȴP^SvF tn<~u8F>^ &OQP^&OɵQPv,FF tUV~uF~ t~uF r~t4FPFP6FF^&~uq븋F] U^ SP^St]U^ SP^St]U^ &G :'=t x|> z>uPPz>P/DF uVz>&G < rL< wH^&^&G^&GP^&G^&G^&G^&G^&GA^&G6> ~>uDPP~>P/DF u~>&G ^ &:Gw^ &G~>@ FF^ &G^&^&G^&G^&G^&G^&G^&G^&G^&G^&8G uA^&O^&8G u@^&G^ &GA^&G^ &G^&G]U u. t!;v 33@33.P 3 ҃+@sH]U؋]UQ^ &G :P<6>P u%6>66>P u6>=t=!t3]Uv&D :=s2&<؋:6^ &du<<^ &G ^ S^SF<^ &G F]U^&G :=r^&G :&G;F s Wv >X^F&F&GFFF;FsN ;Nv>&@FFڋF;Fr ,>v@^&Z&W>v&^&G]Us]>&G@]U cr >&G;FsGv>X^F&F&GFFF;Fs>&@FFF]U>>u>P| u$>>t>&G>>>>t>>t]ð]U#U$VWQ^SY_^F^OGG w 3GGG؉GGGFG F GFGFGFGFGPS]UU^ SG PPFP[#uPPF P/D>>>>uF F t ^ &?TNt>4}F >>&G>^ &O>>F u+J>u>s>4ЉF Va^ &G>6>>&>>^&Z&W>] URPv ^S]U].>]UQQ^ &dt[SFP \^& uW^ &du&G-sG<P^S^&^ SwmPvv$^& u<^ &G ^&]UQQ^ &Gd<tO<uSP^& uI^ SFP \^& u0^ SrmPvv$^& u<^ &G ^&]U^^F Ћ]U^+^F Ћ]UFf؋ʋF fЋ]U^FЋ]U^FЋ]U^ +^F FЋ]U^ ^F FЋ]UF +F]U3ҋF vFv]U3ҋF vFv،]U^ ;^t ^ ;^t]U^ ;^rt ^ ;^r]Uv v vv]U^ ;^rt ^ ;^v]UF Ft] PFPPF uvvvv4sFF]U=Vnjޱ;u$:u ^&G(P~F =rmt =tmt =^&G ]UQQ^&^ &&W^&G :=t WFP5F uC>~uF1~uF$^G^ &Z&W^&F^&GF]U^ S^S]U >r>^ &>^&]FP<FFFFNNFFPFFFF^FFPFt^ &^&9F u ]&vFPFF^ &F^&>^ &>^&>]UQ^ &GF&Z&W&G&O&G &G &O&G &W"&G(&G*&G,&G-&G.&G4&W6&O0&2<(Y~ rmu<^ &G &Gd&G&G <^ &G &Gd&G&G ^ SvvF<^ &O ] U6^&^&G :'=t O> >uPP>P/DF t>&G < r6<w2F ^&~ t^ &?uxPPP^ Sv c>>u!>FPF u ~ r>> >uDPP>P/DF t^&GF>&8G w ]F>X ^Fv&DF&GF&GF&GF^&GF&GF&GF&GF&G F&8G uANsNQPPF tX FFF ;FwD FrF9F w^ &FF^&O&@^&G^&w FA:r &G ^&:GwF F^&GF^&GF^&G ^&GF>X ^F&GF&ON&ON&ONs:NF>&W ;v"NQNQNQPPPP FFPFPFPPv,F tFPFPFPPvlF~6^&GF&GFs5VԊN>&:W s#VRQPFԴPPvv [FPFҴPFӴPFPFԴP,F^&Or- tiFPFҴPFӴPFPFԴPlF~t:FK^&wFA:rs >FF~u^F:FuT~uNF<tGtCF:r*FF^SFPF tc~uF ~uFNF;r>s.VRVRVR^ R+PFPPE`FPFPFP^ vPF+PF^&Or. tFPFPFPFPF+FPlF~tFFFΈFF:FvPFNNV:v9NQPRPPF tMFȈFFs-FPFPFPPF˴PFPPEWFPFPFPPF˴PF^&Or* uVFPFPFPFPF˴PlF~uVFF FPFPFPFP4F uv~u&FPFPFP PP,F uҊFg~t/F:Fu~t FF^SFP'F uFPTF u{FF~t`[~tNSFȈFIF:FvF:F4~tNFȈFF:FvFF~tFFFtF^&GF   BYTE PTR [ WORD PTR [ DWORD PTR [ QWORD PTR [ TBYTE PTR [EM  -> BX][SIBX][DIBP][SIBP][DISIDIBPBXSS: (n*\h*g< !%)-159=AEIMQUY_djoty %+17;?CIOSY^cgkosw{ %,29>CHMRW^ekry~ "(/5:?BFJOUZ^bfjnrw{  %*/49> !&'*/458<?CGLQRUZ_`chmnqux| "%(+.18=ACHMPSW[_behknquy}  "%(+.147:=?BD*IPU^2- cik $DVar AoDty~o^&GF^&GF^&GF^&GF^&GF^&GF^&G FsFPFPFPFFF^&F uF]UFa:r ~eF1F1F1F;s F^&GZ&W^v^&GZ&WF^&GF+F1^&GF^&Z&WF? <?uPP.gedrfggd٤ggeog٦eޫgfg٭lggsgguvHge/g?epxq8٧ggٚgeg|mQ~ -Q~ wxyzBPO}4N+Z{=|{=|:9w:9x:9<;y<;z<;BP<D}=N C82C545L27w4x442>L>h_ijo4k$l"m!n'pq~#r%s2~tuv)\4~4^] `.a~2C48F ~F}4N}4N~FH~1~280~/~8~44420~/~C3~ ~ ~24C24C 4C0/C?24284KW6V6640~&4~0J~04J4(44,4STUXYEDKJIH/I1H  !""""#$%&'''''()******+++++++,,,,,,------.////011111123345667777888888999999:;<=>?@ABCDEFGHIJKLMNOPQRRRRRRRRRRRRRSSSSTTTTTTTUVWXYZ[[[[[\\\\\\]]]]]]]^^____```````aaaaaaaaaaaaabbbbccccdddddddddddddeeeeffffffgghhhhijjjjjjklmmmmmmnnnnnnoooopqrstuuuuuuvvvvvvwwwwxyyyyz{{||||}~~~~~~QBCDEHIJKLOPSTUXY{}\]^_`ahijklmnopqrstuv~BCDEHIJKLOPSTUXY{}Q~BOP}wxN~BOP}yzNwx~BPO}STUXY{{~BDP}wxN|BDP}yzNwx|BPD}STUXY{CSTUXY{CSTUXY{DEHIJKSTUXY{CBOP}LDEHIJK~wx~BOP}STUXY{DEHIJKLh_ijoklmnpqrstuv\^]`aC{CDEHIJKSTUXY{BOP}CSTUXY{F~}~HDEIJKDEHIJKCSTUXY{HIDEJKCSTUXY{CDEHIJKSTUXY{BOP}BOP}CDEHIJKSTUXY{BOP}DEHI  JKHIDEJKCSTUXY{~DEHIJKSTUXY{BOP}CSTUXY{DEHIJKBOP}CBOP}CHIDEJKCDEHIJKSTUXY{BOP}DEHIJKCSTUXY{BOP}KWVBOP}BOP}HIBOP}JBOP}JBOP}CDEHIJKSTUXY{BOP}STUXYEDKJIHDEJKIDEIJKH File is READ ONLY Press GO to make the file WRITABLE, another key to deny ...file is now WRITABLE Memory reference is past end of file Press GO to extend the file, another key to deny ...extending file STATICSDESC?Cannot convert to multiple-process modeNot enough memoryCannot deactivate debuggerBreakpoint already setPattern not foundExpected string parameter not foundExpected segmented address parameter not foundAddress must not be in an overlayToo many parametersNot allowed when interrupts are disabledNot enough parametersSystem error encountered while opening symbol fileNot a symbol fileNo such commandNot implementedInvalid memory referenceToo many breakpointsRadix must be between 2 and 16Expected numeric parameter not foundNo such breakpointCannot proceedNo bounds setHistogrammer onBucket size must be multiple of 16No dataLower bound is greater than upperExpected parameter(s) not foundPatch area offset too largeBogus PR valueBuckets must require less than 64kCannot read symbol filePartition swapped out87 chip not initialized"Error: System status code: [!Scr]$$.Tmp=\z2Q[KBD][VID]Press NEXT PAGE or SCROLL UP to continue\(Press NEXT PAGE to continue.\       VNVF  02Zl%9bx *Obq'JbxII-1.0     [Kbd][Vid]<[Lpt]t[Nul]|[SysIn]d[SysOut]>d6H$ H Ha6H$,H$t1tWtt|Z|H$  lld6 $|dd@@ 94l [sys]LptConfig.Sys[KBD][VID]>>\>\   COPYRIGHT 1980, 1986 CONVERGENT TECHNOLOGIES, INC. ALL RIGHTS RESERVED THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. VERSION: II-1.0 (Monday July 7, 1986, 19:49) GWe@'Copyright 1985 Convergent Technologies, Inc. All rights reserved.Ver II-1.0 Linker II-1.0lqY !R ,<=Yq}6=DRov !(<[ipw ,4AMUhw|=EXfn5f  Z       G Q \       . 8 ` o  X t y   |Kz,TYQ;       w         9 > |     r       . J j q  K    ^ l   A   +    6 h }        - H .DW Ibl{EM_t    \7dr .>.tЋ܎""."&O&&w.t2.u(&< t<t<t؎Ћ&".". tx2&;u|2&Ћ .؎мl6"6"6"&"QWV&"X[]""."> 3&=u%>2&=u>2& s>2&=6\7 Ћюً&".".."&"""."뜌؎܋_܋G"""626"6"U.F2"َP&َр>.u> 3&=t$.]U~]ñ ~U 5];u ;u܋G2& /܋Ow LPT echo OFF !   XXX > !  * # Exiting Debugger Debugger (Simple (Multiple-Process Mode) Stopped at FATAL ERROR ENCOUNTERED - Entering Debugger Crash Status: Break at Fatal Error at at Debugger call at Press To Reboot System in process process count remaining *Conditional offset = (LPT echo ONOFFbase: limit: GDTR IDTR 286*:BQVqy ")3>EOZakv}/BYkr|")6=GRYcnu$+8?Lj}(0=ERZg'1yEJ\Qq eq J"rx x Dx x x x Ax Px Xx gx ox x x x x Mx ^x x x x x x x x -x _x rx ~x x x x x x x x x x x x 5x x x  ' 5 = K S a i $ 1 D 2  ! . < ^         ( ? G  $ , 2, M, \, , , , , , , , u, , , +, L, c, z, , , , , , 3, G, g, |, , , , , , , n n %n 9n Sn dn sn n n n 1n mn n n n Jn cn nn n n n n n n n n n n n Dn n n n n =n Zn n n n !n @n Tn n n " n D n n n n n Z n f n z n n n n n n S n n n n n n n n 4n Nn n n kn n n Ej Zj 1j Bj Nj j j j j &j Nj j j j Ij j 7j {j j M   ) 2 Z q     8 B      7 V u    $    - > P p        F     " A ]       + C Z l    ;  N  t      g    D  a  o       k  }     i   :  :; o; ; ; ; *; ; %; -; ); E; J; [; `; {; ; ; ; ; ; ; ; ; ; ; ; ; ; 2; 9; I; g; l; ; ; ; ; ; ; ; ; ; ; ; 4; V; ^; i; q; {; ; ; ; ; ; ; ; ; ; ; ; 2; ;; B; N; T; Y; g; n; v; ; ; ; ; ; ; ; M; Z; ; ; ; ; D; Z; ~; ;  ; , ; = ; L ; V ; j ; w ;  ; ; ;  ; & ; O ; f ; t ; ; ; ; ; ; ; ;  ; " ; 8 ; L ; b ; x ; ; ; "  * "   6 A  k   S u     . C   gx"-gs1F^sAe#b5{555*eeeeeeee!eYebeeee;eIeTeee.e e5 e e e e e e e= eG er e e e e eJ en e e e e e e/ ew e e e e e e? eN ei e e?ecee8eUeKee7ege}eeeze9UZ. ,4DIQkv &27?JTbAlC)nC)pC)\)\S\b\\\\\\@\K\z\\ \2\E\[\\\\\\   Tasks sgTss cs ip ss sp bp ds pid - Hard Run Queue | Processes id oPcb cs ip link st pr ss sp bp ds exch user oExPcb Run Queue | Exchanges oExchg oMsgHead oMsgTail oPcbHead oPcbTail Exchange - Messages |Processes |Empty ('' ) ( Press CODE-K To Deactivate Debugger [Histogram Off] Lower: Upper: Bytes/Bucket: Bytes required: In Range: Out of Range: Total: Control Word: Status Word : Tag Word : Inst Pointer: Opcode : Opnd Pointer: ST() : Pattern found Lower: Upper: Pattern: Press NEXT PAGE, SCROLL UP or CANCEL PatchAreafBkptsInOverlays POVLYZONE [Symbols ON] OFF]LALCLDLBHAHCHDHBXAXCXDXBPSPBISIDSESCSSSDPILFRPBCBDDL2S2P1S1P0S0PKLRTSMTSME0B1BSRIKEEEEEEHEJDEDDDCCCCLLLLLLLLLLLLLLLF_LLLprmluvnntqoku\]]^]]]]]sshqv`a}Nyw~xOzxp BYTE PTR [ WORD PTR [ DWORD PTR [ QWORD PTR [ TBYTE PTR [EM  -> BX][SIBX][DIBP][SIBP][DISIDIBPBXSS: ( =$x2r2T]  !%)-159=AEIMQUY_djoty %+17;?CIOSY^cgkosw{ %,29>CHMRW^ekry~ "(/5:?BFJOUZ^bfjnrw{  %*/49> !&'*/458<?CGLQRUZ_`chmnqux| "%(+.18=ACHMPSW[_behknquy}  "%(+.147:=?BD*IPU^2- cik $DVar AoDty~o@@@@AA+a!D@@@@AACCCCCCCC.6###fefDE E  E  E #@#B#D#F ` #H  G D    D D #J#LQD#N#PDQDD#R#T#V#XTf)Z)^)l)p)v)z)~)'E'''((A(A(F (((((R(R((f")b)))##D+++,D,,##HHHHfffHfffH fffffff%ef%%ef%$ fffffff$ fffffff Mf  Mf NfNfZZXXfZ$%]%%*bf*d*f*h*jfffffffffYffY Y f !Y!!f!"Y"""f#Y#ffZZffffffffZfffffff*tfff##$Y$ffffZZWWfZ%f&]&f^ffffZZWf*Wf$ffffffZf&\&ffffffff f *L**L* + f *L**L* + Lffffff LL S ((f(21ffffffffh000(1h11ff.(/h///(0,cc22ffD2c 4L4 3344ff55-5m53fL3f,'-g---'.g..%ILLEGALADDPUSHPOPORADCSBBANDES:DAASUBCS:DASXORSS:AAACMPDS:AASINCDECPUSHAPOPABOUNDIMULINSBINSWOUTSBOUTSWJOJNOJBJAEJEJNEJBEJAJSJNSJPEJPOJLJGEJLEJGTESTXCHGMOVLEANOPCBWCWDCALLWAITPUSHFPOPFSAHFLAHFMOVSBMOVSWCMPSBCMPSWSTOSBSTOSWLODSBLODSWSCASBSCASWRETLESLDSENTERLEAVEINTDEBUGINTOIRETROLRORRCLRCRSHLSHRSARAAMAADXLATBFADDFMULFCOMFCOMPFSUBFSUBRFDIVFDIVRFLDFSTFSTPFXCHFFREEFIADDFIMULFICOMFICOMPFISUBFISUBRFIDIVFIDIVRFILDFISTFISTPFADDPFMULPFSUBPFSUBRPFDIVPFDIVRPFNOPFCHSFABSFTSTFXAMFLD1FLDL2TFLDL2EFLDPIFLDLG2FLDLN2FLDZF2XM1FYL2XFPTANFPATANFXTRACTFDECSTPFINCSTPFPREMFYL2XP1FSQRTFRNDINTFSCALEFENIFDISIFCLEXFI   a offset too largeBogus PR valueBuckets must require less than 64kCannot read symbol filePartition swapped out87 chip not initialized"Error: System status code: iSn sn base limit ar p iSn sn sn : ra wc ar pinvalid typetss availldttss busycall gatetask gateintrpt gatetrap gateinvalid typedata, expand up, expand down, read only, writablecode, non conforming, conforming, execute only, readable, not present, not accessed undefined iopl= GDT IDT LDT  02Zl%9bx%J]lz " E ] s II-1.0NITFCOMPPFLDENVFLDCWFSTENVFSTCWFRSTORFSAVEFSTSWFBLDFBSTPLOOPNELOOPELOOPJCXZINOUTJMPLOCKREPNZREPZHLTCMCNOTNEGMULDIVIDIVCLCSTCCLISTICLDSTDBYTEWORDDWORDFARNEARQWORDTBYTEPTRJNAEJNBJZJNZJNAJNBEJPJNPJNGEJNLJNGJNLELOOPZLOOPNZCLTSLSLLARLLDTLMSWLTRSMSWSLDTSTRVERRVERWLGDTLIDTSGDTSIDTARPL0gggfgggfay@g'c7f}gz~ggfbggwtg`ژ{g (n6ggٜgg&>.gedrfggd٤ggeog٦eޫgfg٭lggsgguvHge/g?epxq8٧ggٚgeg|mQ~ -Q~ wxyzBPO}4N+Z{=|{=|:9w:9x:9<;y<;z<;BP<D}=N C82C545L27w4x442>L>h_ijo4k$l"m!n'pq~#r%s2~tuv)\4~4^] `.a~2C48F ~F}4N}4N~FH~1~280~/~8~44420~/~C3~ ~ ~24C24C 4C0/C?24284KW6V6640~&4~0J~04J4(44,4STUXYEDKJIH/I1H  !""""#$%&'''''()******+++++++,,,,,,------.////011111123345667777888888999999:;<=>?@ABCDEFGHIJKLMNOPQRRRRRRRRRRRRRSSSSTTTTTTTUVWXYZ[[[[[\\\\\\]]]]]]]^^____```````aaaaaaaaaaaaabbbbccccdddddddddddddeeeeffffffgghhhhijjjjjjklmmmmmmnnnnnnoooopqrstuuuuuuvvvvvvwwwwxyyyyz{{||||}~~~~~~QBCDEHIJKLOPSTUXY{}\]^_`ahijklmnopqrstuv~BCDEHIJKLOPSTUXY{}Q~BOP}wxN~BOP}yzNwx~BPO}STUXY{{~BDP}wxN|BDP}yzNwx|BPD}STUXY{CSTUXY{CSTUXY{DEHIJKSTUXY{CBOP}LDEHIJK~wx~BOP}STUXY{DEHIJKLh_ijoklmnpqrstuv\^]`aC{CDEHIJKSTUXY{BOP}CSTUXY{F~}~HDEIJKDEHIJKCSTUXY{HIDEJKCSTUXY{CDEHIJKSTUXY{BOP}BOP}CDEHIJKSTUXY{BOP}DEHIJKHIDEJKCSTUXY{~DEHIJKSTUXY{BOP}CSTUXY{DEHIJKBOP}CBOP}CHIDEJKCDEHIJKSTUXY{BOP}DEHIJKCSTUXY{BOP}KWVBOP}BOP}HIBOP}JBOP}JBOP}CDEHIJKSTUXY{BOP}STUXYEDKJIHDEJKIDEIJKH@  r  , @ STATICSDESC?Cannot convert to multiple-process modeNot enough memoryCannot deactivate debuggerBreakpoint already setPattern not foundExpected string parameter not foundExpected segmented address parameter not foundAddress must not be in an overlayToo many parametersNot allowed when interrupts are disabledNot enough parametersSystem error encountered while opening symbol fileNot a symbol fileNo such commandNot implementedNon-existant memoryToo many breakpointsRadix must be between 2 and 16Expected numeric parameter not foundNo such breakpointCannot proceedNo bounds setHistogrammer onBucket size must be multiple of 16No dataLower bound is greater than upperExpected parameter(s) not foundPatch are          @ "QIIE" >A@0 >A@<@@A>0($"! ?@@A>>A?AAA>@ >AA>AAA>>AA~@@A>    >A@0>AYUU)>"AAAAA?AA?AAA?<BB<!AAAA!<BqAB<AAAAAAA | !!!  !AAcUIIAAAACEIQaAA"AAAA"?AA?"AAAQ"\?AA? !A>A0@A>AAAAAAA>AAA""AAAIIIU"A""AAA"@   @ "A  .!!!!! >!!  "6BVj|.BVj~(<Pdx,@Th|.BNT`n(<JXfx&<R\  $"">I8I> I)4JI0  Q!^   I**I     !>!?>"!!> !#!!!  00 !!! 7IIII#!!!!!!!!>!!> #> "!!!1.!! AIIU"   !! ? ?    FI1NUF 3v؋F v~]UF f؋Ff]U3]Up]s]˚[5]Uv.]s*v(.]s~ uj .].]rh , ]F< r<v4]r~ tF.[FF~w![u t 5uFuذ~ v-~ u ~uF /s//s0v  3&Gs&G ~ u /F /^ .p..)^SEp]s ^S^&7z2&2NNFPQ) /sXj^S| LE >jh 0&)vv2&hn\Qx 2&sJ U2&s 3&?up]s]2&?6>3 FY]FFsN F~w v FF0Ft/~uFFF~u)>/tX/:/r0.b, /ᠰ.s2F< t<t<'uF<'t ؊0F.~u,F&p]s ~'u.F<w ؊0FuF:r\*F Fa:rF/.cs ///rJCF< t<u.svb, ~t#/Ȣ//j rhn/...>0u./.>0u. 0./>0u.0. 0.//F/t/jFd/FX>3t* x G>3tx 9 2 +>2uF   jvF2&?t2&2&s ~ tFFvPn=^.8]s hj8]rhm, vF, F t P, >0t , h , 60vhj , Uv"]  :ٳtC" [:ڳtCm/Q":ʱtA" YtAn/":ڲtB" L/K/rL/s /]á:/+]/6/u</r5]/4/_/h]/h4/Pe_/;4/u/r /M/]U8]s=8]>.t1. uG ]h].P ]P e/s]˸]U>.u]ˋ.G <t <t]˹ 6.]h].Pje/s]ˋ. u G .G ]>.th Fw j F~w&.]j F.w huFF. t ؋FF. t ]> ]u >]sFFT]~tb]]h]h]FPe/sYF]<u]]j > ]th]3, ] ]8]Nu8]h Fw{ Fr ]F> ]uMFs]]~u>]u] >]ry]r>]#r]>]s_]"XFs"> ]uF]]:F]/>]u; F> ]uF)]] F)],  ]h]3, F ]>T]uj>T]uj >T]uj jU>.u>9]u9] '9] .?t .?v]ˋ.9].j=B U8]2&shsE/shv96v2\shy'6v2E2&;v2uA"sh|h, ]Uh, 2&2&2&]2&s Fsh2&.Fh, h", 2&sh, Fh, h, 2&r Fs2&3&FF;uB3&tC"ӈVV;uqFh ^FhjFP>F^&G$FF^&@@uVs'&@2&:t2&;FuFFv@ eFsXFs3&_S3&w&w ]h, FPFPFs3&_ S3&w&w%2&sFs hnF FFFFFFFFF tAN;vFFPFPFPvj; e/rFP, F)FF3&?u@&tA"F^&G.&w@ e2&^&G FFP~2&/8]7]sthHP.P>F.&?tWh, .&7hj , h, h, FF<w#.&0jj, h, Fuր~rn8FuOT] ]N]N] ]v2]N ]]h Fj Fh, ~uh?2&sh"/j Fs3&_S3&w&w h3h8, FPFs3&_ S3&w&w2&shJ, Uj6v2e^j6v2e^G^G v2^G 6v2eP6v2eY"s ^G ^G ]Uv3, >v2thg, 6v2h69], ]/:/uF'/:/vF /.F/FvjFP>FF^&َ>\]>`]x>d],6h]>d]^Yf]Fd]XFFF tHFF^&$U^~u ^&7B2&s2&^]PUh]U> ]u ]^]]^] ^]^&G <t<uK^&F&GFFv2F&G FFPFPje^&G:FuFPFPj e^&G <t<u2&^& t&G ^&G^&G ^&^&G^&G^&G v \sh2FFFFF/s F ;.uFFFv ^&@ F<rn^.gq}FFFdF ^&P;V uNF&P :VtA F ^&P;V u)F~u P;F F^&@FtNF<t<ulFreFr hnF F ^&@FF^&@ vF 3&v \v3&@FFrFsPN QPQe PN QPQe%POev \2&Uv]YZ// /"/$/&/(/*/,/./RQUG/v2I/H/Y/[/Z/f/h/g/./@/R/K/L/M/O/,/$/;s]ˋ/s*/ ,/0//s M/rK/0/2/K/rL/rM/r0/K/rL/r M/rK/s L/sL/K/s0/"/(/G0/"/O/s 2/$/*,/$/,/P/hP/,/Pje/,/"/+ / / 9v"/6 /]ˋ/sp>O/u0/[>O/tH8O/uL/,/$/,/P/hP/QPe/r-,/$/;r,/0/O/U,/$/]U0/>/h>/h:/jep/:/+ȉ]/(/O_/h]/hj/Pe/r$k/j/tB$8<t@" K/p/>/h>/hj/t@8k/tBl/S" ]. t ]]<t(/]N/]<u]h]3, F/]ˠ]FF~t^]Ph69], >9]tj FNUvh ]. t&؀ tˋ.?2rˋ.FFjv &2FFFF>.tCFFvb ^&@ F<t<t <t<t, F ^&N&HN&H NF&@FFP3, ~rj hb, F ^&x u%h, F ^&ph69], F ^&xt%h, F ^&ph69], F ^&x t/h, F ^&@ Ph69], j*Ft/.G <t <tFF6.FPe^FFFv ^&H N&@ F݀rn~u FFFF<t<uvF ^&@FF^&F.G :FuFFPF^&pFP6v2\s#FAFt8Fr-Fs)2&?u6v2es 2&?tF ^&@Fv2^&@F.S^8^vv23&6v2 \v3&@FsF ^&@ 2&F ^&@ 6.FPje6.hj eF F^&@F.W ^&P FF^&@ +n . t,؊O t tF6.FPe^F2FFFFv ^&@ F<t <t<t<u>.uF ^P;nF ^&@FF^&FF.W ^&:P u3VR&pFP6v2\sF ^P;FFt?>.t Fr˸.G <t <t˃>.u˃>.uF .FFF;Fr.7.PP Fu >.uF. tˋ.F. t/؊O t tˋ.]G]G &]G (]>&]uˡ<3F=v ^FFJ^FJ^~tn]FF]h]FPjeFsh]FPje]F/r:F]6:3h]P /r!F]F]N, 댊FJ^ˊFJ^/]F/]~tl, ^GFGv3, F^GB3 w؍tP, j 9FwFFvFPve/sh"F/]FF)FFF<w4;Fr h, j FBPhj, FuFh, FFHN;rr8, Fu^ uF^W^FU>.u]ˋ. t]6v2PPs<P6v2.7OeP6v2.wOe2&r>v2u]˸]U 2&sQ3 tGp]r?3&QVN&G[F^62&4ڎ&؎& t 2&[Fs 2&sAF. t؋F6v2vPs2&r>v2uFs]U6v2PPs2&2&]U25]FFۡv2FFPeP6v2eY"sFFFFFP6v2eF԰ P6v2eF P6v2eFP6v2eFP6v2eFߋFFFψFFF . t؋FFsF;FrFvԍFPFPFPFPFPFPFPFPFPЈFϚ, vP69], P, vP69], P, FP3, ~tVP, FF҃~t9FPFPPevP69], ~v,P)F)F)P~߹vF5]]UQ3]s.].].]F P PF:.]uP, >.]tP, ]Uh, ^GPhj, ^whj, h, ^7hj, , ]:>.t#FP Yh, FFFFFVRPFPQ\FPFP\h, FPh, h), F@HFFF;FvI/sˋFFP\r", vhj, j jv욁ePhj, j:jv욁ePhj, j jv욁ePhj, j:j v욁ePhj, j j v욁ePhj, j jv욁ePhj, v \Ft, vhj, h0, h6, jv욁eFjv욁eFFFFFFPn FFth:, FF!FPFPjeF t!Phj, j|j v䚁eFؚ, , ^5]>.thM, FFF=&&N-&ONF2&H;FsFPFPje/s8FuT2&F&, vhj, j vhj, j jvePhj, j:jvePhj, j vhj, j FPhj, j FPhj, j vhj, j:vhj, j j vePhj, j jvePhj, j vhj, j vhj, j vhj, F2&FFt  v:]:]P6[FPP  FP뉸]U eP, :]P3, nP, G]P3, wP, [FFF uNN;vNFFFF)F~t% P^[PPP, NFՋFFP, ~t^[8, NF~t P, o, ]UQQF^w[^[F*\F@;[sVFt؊[v:[t ㋇*\FދF@FNANي[:[u ㋄*\^F*\렋]U^ u SvF ^W^;Wu;]U^ uS ^W]UF^wt 8@tphFw;7u]]U^G]U~]ñ ~U 5];r w;rUF^;v)G+)]U^=t G]U P]U~ r ~~w~`uF.v]U7]s4]v4]v, ]UF< r<vF<t< tF< r ^PF,P]U^t PF]UFPv]U P]UQF^F8vpF]U&F.u.. t'ذ8G u ?u\\r.>.u^\s2&\hl, \rFV u!FV3&2&\Pu˸ˠ\s˃>.u1. tˋ.Fu uˋF]"FPFP7rF\F]\U]+\]H1PRi_Y]3&FFhFFl]&F&Z&W&&\&G ]&G ]&GiFF2&?Yu F F FFFFF;Fv%^&FFPFPjj eFFӚF/sˠ\rFFу>.tFh}, \FɍFP3, h, ]FɍFP3, h, ]FPh69], h, %FԉV t Rh69], vh69], n. tˠ\r2&rˋ.F3&F،FڰFñNċ\VN2&?u F F FډFFFFPFPjj eFVFViFǸFF~uqF;]rcFPFPjj e~t@, FP3, >B3s j j vh69], FFVF]F돃~tF;]s/FPFPjj eF t FVF]Fȡ\FiFNjFVFVFVF;]rFPFPjj eF tePvvF tR, FP3, >B3s j j F 1PjQ, F 1RjQ, jF]Fhh, vvh69], h, vvh69], h, FVFVRPh69], .G <t<u.G <t <thI/6.FPXF/r6.FPCF/shFsFF;Fv hnF^F^FvFPe^FF% u@^FFfr ˍFPh, vj69], h, vj69], h, vj69], h, FFF Fvvh69], h&, F%Ph69], h6, FFF Fvvh69], F~wbhF, vj69], hK, FF;w0F+FrQ69], ~sj|FuFuFPUQ>.u. t,.7P .G <t<u.G <t <tu. u t. u  uP.7 :].7 G]>.t u Fu Fw FF]U>G]u >I]uz :]~FPG]PshFPFPPe[Pv s>VP, FP[HP  F~t FFF~!rv v FPFPF V F s0 FA NܵB݊FF܋N V u~ uNt:wFs~ vFȴz9v0PFtȈFܴr~ u.P]UQQF FVRPvv, ]UQQ^ u, -^ tPn s^ u {P;^ u  u6> ^u 6B, ^wP69], :P^7P69], ^ u5}^8G uM8Gu %P ^u7P69], l^F^GFvvP69], G^ u SP; 3^G <t<u%^7PP, ^ uIOP]UQQt/t/-]:t.]F4]F4]t/.]P, F.]B/s&F<u PPF<t< t ښF~u-],t/.]P, F.]F4]]Uhhn/]hFPqn sFFFPhj e&hh/qn s}j6\e///\/h/FPje~t|~uvFF\FFPFPjeF;FuQFFܸFF\NFF;Fs/FPFPjeF;Fu F܋^G FFɰU>2tCvhj s42&^2&G^G^G ^G ^G ]4/sF3ヿ[t>F3u^FύONFFFFF~tP^ F΋^ N͋V´3ЉVVŠ^ͷ3ӉVV3ӉVV3‰FNFN몋FN31VF%1VF1VF1V~uF~uF6F3FL3RPj FF~%r^v8u%uvvn ^vFPvj ro^F@F^G ^^\^G 1]s6\\sF FF^uz^.&,7\^G.^G;V3u$6\Ues ^G"j6v2en6\Ues^G ^G V^wn \?^u>6\\"1]s^w7^Pn sb`^G^GP6\\s ^G9^GFGFP^PWn sF^G^G F^FЋFFF%;r)N*FFFN3;r)NUF% t@NsB""]F Fv cn sv vZn Pn HF;T3s;R3sKv n FFF(F#;uF%Pn vcn FVFV^WF+R3FF6F3P3RPj Fv؋FFFF%FFFF F FNN#;tc~t~r&F%F؉FFN.F%N F~!vNF%V+‰FFVF1+ЉVF10PF1X‰FFVF1+ЉVF1PF1X‰FFV@/sF3ヿ[t>F3u/]r^w \FsK^\9G t1P\r1^Gtjw ePj6\eY;u ^G;R3s6\\sFFs"^wcn ^W;T3sA FFFr^FGFFFs%^w7FPn rF؉FF։F 1]sj6v2e^;Gt@FŠFr)^ u FGFFs6V3n F^ uUj6v2e^;Gt@"1]r6V3n FҡR3FvԚn ;FҰt@FsFF>0]taFFϴFŋ^GFǡ\FЍFPFPj e/r0F0];v#Ns t~tNFNFFr ^O\;r+ʉNFh\3FP n sh\36L3FPk n F-\31FVR؍\3P n sF؍\3FFF@NL3H;FuZ31V tV6F3FRPj FPvFPk n FFs ^uFr,^u#vvvvFP n FFs}6F3^GRPj ^OF䓊C^N+NNr~u V+WVFs~uvv^w l n v n U~uj{v , ~tj+vh69], Fsj}]>2t22&Gv;Du"& ;w+ȉN2shQjl n ^F FFr ^ tFsH^ t?F ;F u1~u ^F)FHF6F3RPj F F n 롋F ^ FFHFF9FwENFًF +ȉNFPv n sF뻋FF^GFvDFGFފON.u3>F3t&h, /]Т/]shh, ˸ˋ.8G uHOu F  s8^ F^F^F^F$F^ ]U^㋇Pvj ]U$0, ؍/F0؍/F^. ^G F/ vv  ^^^G^G^Gs ^Gr<^Gs ^Gr(^Gs ^Gr^Gs ^Gs ^G^G^G^G^G^G^G^G0h v7 rvv  ^^)^G^G04 v7 Pv7 Y r^F^GFvv^7FVvv^wFVF^FF^G0 v7 Pv7 Y r^F^GFvv^7FPFVF^F^G0h v7 r^^GGH ^G^^^G v2^G 6v2eP6v2eY"^O tBtA "sG ^G 0 0 ؍/P  0  ]0򤚞  ^G ^G ^G ^G| ^G r ^ u76v2e^FF^Gs P6v2eF^GsP6v2eFV^GsP6v2eFV^Gs P6v2eFVF^GF^^W^G FF.GFF.G F.v2\. t%؋m. uF݋. tӸ\>v2tD2&?u P\P: oF t#\FPeF u ^&G\F3=tP 2&Fs..FvPPhv F3F=uˋ^㋇[ [u6F3 ˋF3㋇[\h\n F uF3P؋[[ RPj 0؋ON3L3O0]OZ3W R3uA1]sWJT3O V3G X3Fs.6\\s!>.u\>.u1]r\L3N3ȉP30WVL3w+AF3㋇[[Q Y;u;t6F3 F3QFF;L3s/6F3RPj 0F؍\360FȰ/]2&+n Un0/FFF/FvNBF:r*P s?Fsj /<tFƊFt<@rF:/uЂ>/u|FN랊^㋇ F^/ u //<0s<9v/ F/0:r<9w*Fa:r/.uFFFF2F/'uj >/"ud /<'uj &/<0r<9v//"u//000Qc>/,tX>/-u/t/]u|5>/[u{*/< r<v F//<@w , ؊]U욅 /<'uh /<'t\/8/u/000&8/u"//щ000B]˸/000Q]ˊ////xUQF/0:r<9w* / /,a FFsF/˷/F//F//F /<0r<9v/fvQ]UFF^<r ~uȴ^wFFrvFPFPFP0PFPj FFsFs^?tGOFF(p]rF%FNu+JV:tV00~ u0%~u0~u0 ~ u0~s00^l^P0Pqn s 0BzGv~uFi)~uFj~'u FSM^F~(u0F^FF0F0F0F00F]UQ^^:u,^FFt!ȈF^H ʋ^ P:tܰ]U^FFFtȈFVʋ^@3ڋF1VFȹ1VuF/^^]FguK؋& FFF%?FN<)tNF<w~F؋& F%?FVVN<*u@NF<wCF؋& F%?FFPvsFFu vvrFt{~+t!vvv v vvvj s]^㋇& FF//;Fw8vvv v vvFPj s/F^ /Q/uFFF;r)N/F^F^F^ F$F^ ] U ^ ^㋇& FFF%?FN<#u9NF<wtF؋& F%?FFPvXrFuEvvD  FP 0/8uN0/8buFFPvvM r=I r4^%00/.0= PPPM s/0~ ʈ.0 0/8u>^uT^uF^?r^?sFFPPvM r 0I s~u ^P^PPs  0r^Gr4Gr-Gr&Gr^GrGrGrGs|FP PPF4PM r0^PPs  .0 PP^t@PM rb^%0/^P^ws  .0^u$PP^t@PM r}0I rp^P^ws  0eFP PPvM rvI rm^#00/.0PPPM r]^#0/0^?r-PPPM r\^%0/0I r6^t-^uPP PP^t@PM s0l^t^?t0I rհ PP^t@PM r0(]"^tI rPP^t@PM r0PP^t@PM r^PPs  .0PS^8Gt@PM r0FP PP^t@PM r0/8r ^PP ^P^ws  .0BPP^t@PM r0FPFP ^G;Ft%PPPM rϋ^PPs  0FPFP FFV V^FЉV^ uW VWF^G^+FFGFFttF=r=r*/Gȴ8tPPPM r"FP%~#uNPPPM sFPPs  0/G00F00WPs  /s/PPs  00<v 0WPs  F0 r }P 0؍/00]U^ ]U^ u^G ^G ^ u%^8G u^G v2^G ^G ^G ]U^G G G G]U /0N& N?N#tBVVF ЉV+uIBX㋇& F9FtnF%?FN ;t~#tvFPPF"FFFFFFFsXDPh ; ( ; vvh ; ( ; XD0vvP; >0u5]v200PPPe5]/r:P< ; 0P3, 9~ ; F ; P ; ( ; Fr ; ~ ; P ; |v; ( ; TSPh ; dTSPh ; ( ; LFtFsF FFvvvvv vvvvP; v; ]U ]ƆrHuPPPePP; :s Ƃ,:u*Pȴ^:uƆsQt]UTSPh ; (PR ; F$P ; )PR ; ]UF F.2:AWrF~ ; FtN ; FF $F.F $Pv. ; F?/FF(FM!FTF[F^ FaFdFt؋P< ; ~u*~u~u~u ~ u *P< ; ~u[PR ; ~u~u ; FPFP ; 1v< ; F t"=v -PR ; ^+PR ; v ; ]PR ; ]UQ~u FF4^㋟gt+Ju FFF0sBFs;/]s4v6v2e0F00v2000Pn sv ; ]U~r ~sF^h ; ]UFPFP FF.PR ; ~s+^-PR ; v ; kP< ; vv ; )PR ; ]U0sBFFFFFv2FPeP6v2eY"sFFFP3, ]U젒0svP69], ]U젒0s,P]U젒0sv, ]U젒0sv]U젒0sv, ]U0rg]ˋ0G0Gȴ]UQ~ ; F~ ; FF]6v2 \Fuh ^FF&@ &2㋇0;F uJ&2FV 90u90w.9h1u9f1v"&2㋇1FFrD uEv jFPj00 tP^FV[[F FtL FFv؃[u[tNs/vL\~Dž[ [[^^GF^ \PFPFP^QPjhrm>0 u1vjh FFs vjFF Ft< v ^[[F;F3u\FFv^[FFg2Ȋ^:r0㋇0;Fu^G2sS^LJ0FuFg2Ȋ^:r4㋇0 |u^G2sSw^LJ0Fu FV FV^ ㋏[NQ^S^ SRPFPF tP F1g2 :vg2Fg2Ȋ^:r*LJ0F 1^G2'2F FuʊFs.FFw!ؿ[[^LJ[Fuװh2&2U^ƇG2]FFg2Ȋ^:r.み0uF&2^'2:FwF&2FuƊ&2G2sS&2LJ0&2^㋇0F^㋇00FV^11^FF }=PUesFF FFVFFP^S^ShiFV׋^;[u;[v%[[v[RP0 tP^[^ShvvFP00 tP^ƇG2U&& ul2j2D&& ul2j2(&&ul2j2 l2j2n2p2]UF<w 4]s< sF.8FuP PP5 8FuP P, ~uF< ~uF>v]U&&G#s-&&"t&&#F&&Ƈ"_&&un2FFt3n2FF:tF8tp27Ftj2Fj2FFPF]U^&< r<:r%<>w!*&^S&n[&]UQ&&G#s-&&$u&F&%&&Ƈ$K&&un2FFtn2FF9tF8tp27l2F]UPm]UQQ&7&D#s&&"tm&&#F&&Ƈ"[Z&&un2Fu3-n2F:tF8tp27Ftj2Fj2FFPF]F=t ,];vF=t-];w| 3&?ur9Ft9Fu[[)UF*]N+][ [)FPF[Fċ[[F[[ [ *,]NFF>38U-]ȱ>3FY-]P]UȋF1+ʋ]UFB3B3,];wOZ]1D3D3B31B3-]D3;w";s>B3tc-]ȴD3, ]UD3P,]+B3X]>38FNFPZ]p]s vm%Z]\7>3@34]sFFu+JV~u 3&?t FPjPv^.FV>B3u>D3t,]ȴB3D3B3 3&?tjjj j[ 3&?u  3&?tj ,]B3+Qj QZ]( 3&?tj 6B3)Pj 6B3P6B36D3Z]sBUh"h j ]3 t \FFw P Fu2&?t6431Sj83RP663 U\\]Uv ^[[]U6F3Fr 6F3 F32&/]]U2&N;\u9F3tvF;H3uJ3=t PuJ32&?tU]U2&2&?t9]3]p]n]l]L2]&& s@p]FF^&?r&u,[[[[[[[-^&u%[[[[[3]x^&u:[[ [[ [[[\2]l]@4^&u*[[[[ [[[v>^Y7].]4]]] ]] ] ]]]]]9]T]6]5]F3J3,]P[-]ȴD3,]ȴB33 3u ]\\2&?t2&2&?t< 43+Ȼˋ1632&G83&632&Gh"h h [[2&[3 t\F2&rÃ>\u\FFPPPPP 6\jh F3>F3t j\n ujFFw 2P;FuU 3&?t}P^,]X^d]&G u,h]j]R^T^V^PZ^-]`^ 'h]j]R^5T^V^-]Z^6h]&G%?\^]-]p]s-]]UX ]Up]rA3]s[t[F'['[t[F[t[&]m5Ft p]skˠ3]sF[$p F[$8F~tP[쨀  ^ u~ u^^ ^ t^ uSv v eIvF PvY\FVRPe^F2]s/^ u ~u~t^Sv eSv Na^Sv v FPFPFPFPv^w T e^FF tvPjve~t^Sv1SveFr^ ?u~2FFFFwg ^&x tQ&FF^&@FFPF^&p^Pv\sF ^&@^ Fu vY\uu0Ft(2&9v'h ^FF&@tFv2h"Uv vv6v2 e]/^  umF<u ^ 7@ ew~u ^ :3t~u ^ <3d~!u ^ 7(YR~"u ^ 7/Y@^ 7v^ 7Oe,^ G <t<u ~u ^ ^ l^ ^ _^  tVv FPvY\FVRPe^F2]s0^  u ~u~tv eS^SvN^Sv vFPFPFPFPv^ w T e^FF tvPhve~tB/r$2&?u6D^^SRPjFv1S^Sve/ЈFFveF2&?u0~uFB^F@^wNQveY sbFXFu [Ft3]s[0[6/^^{]z]}][Fu[F$FF^ /^~@u /^~wFF<w}؊^:/^tgFF:wZ^/^^2Њ^" Vt8FÈF6r]F#;6t]t^"^*N ‹r]~]C6r]FuFt|/^^/^t]9r]u؊~]N@%t]NF$t@FCu}]ŀ~?u|]븊F{]t{]듊Fz]tz]맊Fs>{]tF2&@F2&F>z]tN}]s^r^^듊F˰p]sˡv]x]r]t]h 5~t=~u 2&D^'h ^FF&HD^&@t2&?u~uvFP8 oFv\r~u9~u2&D^%h ^FF&@D^PUe2&?u~uh ^F^FF&@F^&GF^&GH^&GPF^&HZ;Ѱu@ ҲuB"> &; tA"L^2&^&H;\uA "L^vePveY"s%~u :F<t<t<uFFvvFP$^F ueFFFFFv\FsFFFFPFPjvj; e~ u2]sFrp]sFFFvePveY"s F <t <t<t<u/nFFv vFP[^F tKFFFFFv\sFFF~ sFFFPFPvv e(vY\FV~ux2&F|2&F~u~uh ^܌FveFveFr1L^s*2&?u FsFF^FH^FF)F^܋&@FF^܋&@FFF܉FFF^܋&@Fp]s FFFFFF:s$F~u~t-^.V^fnv $)^GP^G ^G^G~u|2qFs^GbF^܋@PF^G^Gw^Go^Gg~ux2Fs^GF^܋@FF^G +^G#^G^G F^GFFX^.G "-8CNYdo}FVaFV|FVFVFV@FVҋFVNjFV 뼋FV"뱋FV$릋FV&FV^FV(aFVVFVKFV*@FV 5FV *FVFVFV FV $FVFVF<stF^FPvw Y\FVRPe^F~u~t^2&F& F/^  tFVuuwNQRP\rAFF㨀uFu $<w=F㐋FFNu ^ +ыv 4N;sj;wc&^ ;FvT^ v HV;v+BFFFF^ FV!^ GF^ F^  u6F @^VVB^%2]sp^ FFFt~@s@+FVFV~u~r FF/^ N~;u;v^ ?tnq^ G ‰F^ %F^ B^G@^@^%FF+B^FF@^F=w~u^ F9v t F^ /^v2F^  uG Fv vvv eUv v vvh; e]/^ ubF<uv2p~u:3e~u<3ZFv2uh ^FFFv2&@FhjFP>F^&$t2FFFF^&GFFF^&GFF^&G F^&GF t[ h ^Fv2&@FPUeFs F F`hjFP>F^&G*FFFFFv^&F^&F^&GFVvvvjFPTsFFsFF%^&GN׉FVvvvvv~tF Pv vj: 0 ut0%-11؋00FVN~ ++FN;sNN60~v NV FRQN+QFPfF >v2u(h ^Fjv2&p^S>//r:>J3uO2&?tFPe t^^&FFPjsBvhj J3=u*hhv/qn si//v/v/F^ Gv/hv/FPQeFv/^ F FFJ3;[u;[sx6J3FRPj FNNFVʻ;v`+ˉNN+ى^0^FF@ J3;[u;[s66J3F@RPj F^v0^~9N//F FFFV^^&F^&G F^p]s^F@~tNU>!F u+Jt㋇@"]PSQRUF ^ .; r".; s.+ 32..p ..]ZY[X.6.6.pː^GF^GFFFVFVRPvj\UF$`Phj, , FuU"F<wE".{h h h h h!h!h!}h(!xh2!sFu+h?!, FuhD!hP!, Fuh^!.hj!)hu!, Fuhz!h!, Fuh!h!, Fuh! Fuh!, ]v ~Fr ~uFP$t@YsA"FNssh h , , FPhj, , vhj, , Fs?vhj, j:vhj, , F$Phj, , 7FPhj, vhj, , vhj, h , FPhj, , v?"~ tuv FP\rc, Fsh , Fh , F@HFFF;Fw0NQPFPHFPF FPj4Fuh!, Uv, , ]U, , F@thtnFthfoFthfdFthfiFthftFthfsF@thfzFthfawFthfpjFthfc]h!, F%0 Phj, ]U, , Fthst FthmeFthpmFthep] 2]r˃>.uRh!, jPPW, h!, jjhW, h!, j6v2ePjjW. uG . u'FvFP6v2Y\RP\sFˋ. u2SFPje.?u vˋ.?"uv˸ˍFPF%Ph4U^7]U^']U3P2]t~PXPXFuU F< t<tT<tHvP^R^C;X^rTR^3B;Z^rGP^R^ MP^AP^;X^uZ^J3$P^R^ u X^ t JKP^R^]UP`^P^2PR^U2Pv]U vNVQ< t tP^R^C;X^r/3B;Z^r&P^R^ P^AP^;X^uJZ^J3ۉP^R^Y^⨰r]U3P^R^-],]6\7VP]U`^M2^]Ў66\^Qѿh6?YQ6+V^6>V^Y+?]U??U`^2 I^Q+2U3>\]FV$Fh&rh‹[.^.&!&!U                      #'+/37;BGx=10_00m00d000|0v!v:vDrmL(Db1kYOw1Bz#* F IyAyyyyy0yyyDy!LfHYz/buTc b< b,0U::P::kǀshNu &!ǀshNu^2>\]`^:\r:\v*\p2V2F3$Fh&rh‹.ҭ"t?:r& ǀshu##& #& ]ǀshu3]UF F 2<t//sF%e.f& f[fNfVfff&fV &f(f36e3ee&e@؎؎3@[ee6ev] U^]U3]U]U]UF]v\rFwjveF tmFFNVRVRPvQ; e/rCh ^F2&HFFF9Fr^&@ ;FuFFu۸U3&;Fuv \PE]v \Fv\2Fr8Fr v vX^ ^;u^ G#F^#O;t0F ;FtFujv ePjveY;Ȱt@2]sP~tJ~rDvFP\s4FFu*t&F$F<t<uFFFFFVFuFP YF ;Fr;FF%FVFV/NRPvj\/ЈFN/:F u Pv \tvvFPj,\FF t$vҍFP\sF$<u F ;Fr1F̉FƊFδFȋF %FVȉFƉVRPv j\U/^ SveSvN]UvY\uu@]U]jFP\r^^v^GU^SF u^wFPF u^G]U*FFFFFF܍FP0F u>FFFFFFFFF FFFFFFFFFP[]U*FFوFڈFۋFF܍FP0F uF FFFP]U*FFوFFFF܍FP0F u;F#FFF V FVFFFFFFFFFFP]U*FFوFFFF܍FP0F u'FFFF FFFFFFFPO]  COPYRIGHT 1980, 1986 CONVERGENT TECHNOLOGIES, INC. ALL RIGHTS RESERVED THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. VERSION: II-1.0 (Monday July 7, 1986, 19:49) 2&@F2&GW6`WF0Copyright 1985 Convergent Technologies, Inc. All rights reserved.Ver II-1.0 Linker II-1.0^x&@MgtQ_m"'O}HNfB e( 2 < F R _ f j n r v {              U vPFPF u$~tFFF&:(t:)u]UPPFPFPP^Sv ]U찈PPP P6&iPhP ]UQ^^G_FF t)F 10^vPF1FNЋ]UPPFP FPP^SvPFPFPP^SvF~u~vQF@FPFPFFFFPP^SvFPFPn^뢚 ]U FVFVFFV u9Vu9FrFbF)FV#sFhF`FVFFFPFPPFPPFFFPPPPPP FN]UPPPPPPFPlFPP^SvFFPPPP ]UFFF~u*vvF u~u FFׁFЋ]U찊PPP ]UFxp]UQQxF{F|Ģ}tP~PPFP0FFp~t F]Up卿{vNFFp]UQpƇ{CyPxPSFPA0Pc]UvP^Sr tPP^SPc]UdPPFPPcFPFPvPPrmPPcvPFPPPcvPctPFPvPPrmPxPPePcNv~FPPFPF t#vzFF^FFPFPvPPwmPxPPePcFV]UtPPcPPc]UQQFVPRvvvv-t6]UF>tP4]U~u]UFPFP4V^&?{t@&?[uP6:t. FPQSVSVQ6^[Y=Xt ],N~] t&<{^&G ]UQF =wmt =mmt"6wmP>^&G ]U^&G :t ^&SP0]UQ^&^ &&W^&G :{t S2]U^&G :uSv4 ]UQF :r10^&Fr^&0FFF 10^v&F@]U vvFPF^SvP}F^&:F@F^PvPXFF^&:F@F^PvP0FF]U^&<{t<[tFFF^&^&?{u>}N u+JV s\tWNAv~^YF@^&^v&48* ^& ~]N u+JVuF HN;v9@N +^vp^~&=9^YF@N +^&CFP>F u^&O@wA^~&=9^Y^&G@^&^v&485^&v&4^P^&wg&we^&^v&487^&]U ^vFF^&F^&G^vNFY^&Gw^ &Gj^&GyF^&^vNFYFP>F uQ^&G@^&^&O@wA^^Y^&Ƈ^&Ƈ^PF uI^ &k]u+JBV^ GkPRPPP^S|P;PP x] U^&G F =wmt =amtI~]Nu+JV^SBRPPFPQ؍GPQ xF!t=uF~^&Gi^GePF^kvNFYF^&^S^Sv^SFPfF uF~u;^SvRPPRPF=u^v&xF^&Gi뾋F u9^SFPvRQWv PveF u f^&G ]U ^&G :ft ^&G ^S\F u^&FF^SGkPF&P^SFPpF u^&Oit^v8x^&GiF^S^Sv}F tM^G8P^SvRPPmmPF u"^&w8F t^&w8FF]U^&G :ft F^&Gj]U~SF =wmt=amuF~]Nu+JV~&Nu+JVu F@;Fs F@;Ft ~s }~uY^&GM&_O^&GL&^v@^&GMZ&WOF@N+^&OL^S^Sv^Svv ^Sv6F u <^&G ]U^&^&G :F u{p&G < r < wfxrEF sFF FFFv tuDPPtP>F uot&G ^ &:GwY^ &GtX ^F&G;FsF^ &GPP^&GȴP^Sv6F tn<~u8F^ &OQP^&OɵQPv>FF tUV~uF~ t~uF r~tFPFPFF^&~uq븋F] U^ SP^Stv]U^ SP^Stv]U^ &G :'t xr puPPpP>F uVp&G < rL< wH^&^&G^&GP^&G^&G^&G^&G^&GA^&G6v tuDPPtP>F ut&G ^ &:Gw^ &Gt@ FF^ &G^&^&G^&G^&G^&G^&G^&G^&G^&G^&8G uA^&O^&8G u@^&G^ &GA^&G^ &G^&G]U^&^ &&W^&G :t ^SF uq^&G;sc@1V&w"&w &wFV^&w8v&XSv^&pRPG<P^&w:F t@^&G-F]U^&GFrF@1V^ ^ &w&w6s=^ &G^ &G^ &G^ &w&wvv6s^ &r &G&;Gvvv^ &w"&w 6sk^ &w"&w &wFVvvRP6s"vv^ &w"&w F։V؋F^ &G-sSF u^ &G-sG<PFPF^ &G-FVFVF%Ff^ &G^ &G^ &GNV^ &O &W"^ SPFPFP F u5F^ &G[^ &G :t :ft3^ SPyF t1^ &w"&w &wFVRP^ &w&w6sFV^ &G&W9Fu9Fu^ &G&WFV^ &G&9G*s&G*^ &FF^ &G@1&@FތFFvv^ &w"&w 6s3^ &G*H1F&w"&w PRPvv6spFvv^ &w"&w F։V؋F։F^ &O,r&9G*sSF tF^ &G^ &G*&;G(uF&G(F^ &G* ^ F&9G*s&G*^ F&9G(v&G(Fr^ SP<F u^ SF uy^ &G ts&w8&SP^ &w"&w G<P^ &w: F t@^ &G-^ &G &W"&G4&W6^ &G&G.^ &F&G0Z&W2~Yt^ &G@1&W^ &w&@F&Z&W^ &GF%^ &GvvPP^ &wRP^ &G &W"^ &G&G(^ &G&G*^ &G,^ &Ytj&w8&SP^ &w"&w FPFu^ &?^ &G,(~t^ &G&GF^ &G :Qt ]U^&FF^&w"&w &w*RP^&w&w6s^&G*H1&G^&G*1 uSP<F ui^&G@1&@FF^&w"&w &G*1PFV^&w8^SWRPFPFtK uY^&G*1V+^0^~&}*9^Y^&G*H14^SP#F u/v&|*&L+^9 ^&G*&G^&G,]UQ^ &G :t S^S>6^ &du^ &G ^ S^SF^ &G F]U^&G :r^&G :t:fu^&w"&w &wl^&G :uk&r&G&;Gv &G&W^&w"&w &w^&&W^&G sH&G s@^&w&7P^&&W!^&G :Qu^&&G ]UQ^&G :t SvYy6^&du^&G ^SvYyF^&G F]U^&G :t :ft0^&w"&w &wFVRP^&w&w6sFV^&G&W^&G&9G*s&G*FP&t@"FP<F u^&uSF t^&w8&S^&w&w"&w G<P^&w: F t@^&G-^&G &W"&G4&W6^&G&G.^&F&G0Z&W2^Sv<F Yu0^&w8PGPP^&G :u ]U ^&G :uC&du ^&du&G ^&G-sN&G :u/G<PFP0^&G :t:t:ft f^G<PFPF^&w:FP u ~u~u^&w8F^&w:F^&G F uF]U ?r%^&&W^&G&G;F s Wv X^F&F&GFFF;FsN ;Nv&@FFڋF;Fr ,v@^&Z&Wv&^&G]Us]&G@]U cr &G;FsGvX^F&F&GFFF;Fs&@FFF]U>uP> u$>t&G>t>t]ð]U#U$VWQ^S<Y_^F^OGG w 3GGG؉GGGFG F GFGFGFGFGPS]UU^ SG PPFP[#u>uF F t ^ &?TNt4}F &G^ &O>F u+Jus4ЉF Va^ &G6&^&Z&W] URPv ^S]U].]UQQ^ &dt[SFP q^& uW^ &du&G-sG<P^S^&^ SwmPvvT^& u^ &G ^&]UQQ^ &Gd<tO<uSPy^& uI^ SFP q^& u0^ SrmPvvT^& u^ &G ^&]U^^F Ћ]U^+^F Ћ]UFf؋ʋF fЋ]U^FЋ]U^FЋ]U^ +^F FЋ]U^ ^F FЋ]UF +F]U3ҋF vFv]U3ҋF vFv،]U^ ;^t ^ ;^t]U^ ;^rt ^ ;^r]Uv v vv]  FFPFPFPPv>F tFPFPFPPv4F~6^&GF&GFF^&Or- tiFPFҴPFӴPFPFԴP4F~t:FK^&wFA:rF t&G < r6<w2F ^&~ t^ &?uxPPP^ Sv 6c>u!FPF u ~ r uDPPP>F t^&GF&8G w ]FX ^Fv&DF&GF&GF&GF^&GF&GF&GF&GF&G F&8G uANsNQPP2F tX FFF ;FwD FrF9F w^ &FF^&O&@^&G^&w FA:r F uҊFg~t/F:Fu~t FF^SFP'vF uFP:F u{FF~t`[~tNSFȈFIF:FvF:F4~tNFȈFF:FvFF~tFFFtF^&GF^&GF^&GF^&GF^&GF^&GF^&GF^&G FsFPFPFP2FFF^&F uF]UFa:r ~eF1F1F1F;s F^&GZ&W^v^&GZ&WF^&GF+F1^&GF^&Z&WF@FV^SvvqF t ^SP]U~ ]Nu+JVt)F^F9Fv@^ &80r ^ v&89vz^ ^ v&0^F븡< :uDPP:P>F uK:&G ^;v ^:X ^F&u^& u@^] UVnjޱ;u$:u ^&GZF~F =amt =wmt?8 6uPP6P>F u~6&G < r<w'^&G _^SvFPFPrF uE'^&G F^&GFsbeF^F^S^SvFPA0]UFf؎]UFV v]UFV v]U vPFPPF uxFV^&&W~u~tYFuRFVFV)F^v^ SPvvFPF u^ &?Gu&G &W^&&W] .objWrap Yy[!Scr]$$.Tmp=\z2Q[KBD][VID]Press NEXT PAGE or SCROLL UP to continuepW(Press NEXT PAGE to continueW       VNVFII-1.0  [Kbd]F[Vid]k[Lpt][Nul][SysIn]s[SysOut]Bs D0yyV020yyV0 yyV0cFD000V020b00V0207]^00V020ysD000 20ss0@vJ  9: [sys]LptConfig.Sys>!  COPYRIGHT 1980, 1986 CONVERGENT TECHNOLOGIES, INC. ALL RIGHTS RESERVED THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. VERSION: II-1.0 (Sunday June 29, 1986, 16:00) overSegment,exchNotPresentGW2@+8Copyright 1985 Convergent Technologies, Inc. All rights reserved.Ver II-1.0 Linker II-1.04j.}+%Y#Tj%c #'+048<@EIMQUZ^bfjosw{x=1L_LLmLLdLLL|L!:<'M<jeD(Db1kYOw1Bz#* F IA0D!LfH %Y%%z%%/%%%b%u%%%%vQsm F _yyZyyUF tP4]U츘P^Sv&PALP]U\FV%FF%FV^SRPFuvPPP&PALPxPP6 &PALP\PPP&PALP@PPP&PALP$] vFV;V u;F sFFrٰ ~H^SFPPFPLFu~uvF8F~t_vBF0F<9vFFvBFF$0F<9vFFvBFF< rvvvv"P>PPP&PALPYPvv4uV64"Pvv4uW64u]U vPFPF u$~tFFF&:Ot:Nu]UQQ&؉FWPFPPZNF؎]UQ P6PPPBPP6(*,.02PDFPP6PPP6S6:RPPrmP(SPPPP<P4 tX6X"P<S6@RPPrmP,SPPXPPBP4 t= tP6BDFPBS6FRPPwmP0SPPPPPP4 uPS6THPZPxZs HJPPPP4 uPS6TLPZP:Zs LNXr6J6H6N6LP>FgYs0P6LP P6.BFr PP4PP"PPPP6]UFPFP4V^&?{t@&?[uP6`:~t. FPQSVSVQ6^[Y=Xt ],N~] t&<K^&G ]UQF =wmt =mmt"6\wmP>\^&G ]U^&G :\t ^&SP0]UQ^&^ &&W^&G :Kt S2]U^&G :\uSv4 ]UQF :r10^&Fr^&0FFF 10^v&F@]U vvFP:F^SvP}F^&:F@F^PvPXFF^&:F@F^PvP0FF]U^&<{t<[tFFF^&^&?{u>}N u+JV s\tWNAv~^YF@^&^v&48P ^& ~]N u+JVuF HN;v9@N +^vp^~&=9^YF@N +^&CFP>F u^&O@wA^~&=9^Y^&G@^&^v&48[^&v&4^P^&wg&we^&^v&48]^&]U ^vFF^&F^&G^vNFY^&Gw^ &Gj^&GyF^&^vNFYFP>F uQ^&G@^&^&O@wA^^Y^&Ƈ^&Ƈ^PF uI^ &k]u+JBV^ GkPRPPP^S|PaPP x] U^&G F =wmt =amtI~]Nu+JV^SBRPPFPQGPQ xF!t=uF~^&Gi^GePF^kvNFYF^&^S^Sv^SFPfF uF~u;^SvRPPRPF=u^v&xF^&Gi뾋F u9^SFPvRQWv PvF u 6^&G ]U ^&G :6t ^&G ^S\F u^&FF^SGkPF&P^SFPpF u^&Oit^v8x^&GiF^S^Sv}F tM^G8P^SvRPPmmPF u"^&w8F t^&w8 F ;vN^㋇t;FvNFF^&F 1^&W^&8Os&^F+t@^&GF1^&WF <1^&WF 1F1^&WF 1º PF1Y^&G]UQ^&G :tSv^ S^SwL<^SFPF u'^Sv^ S^SwLF^&G F]U^&G :}v^& 6Vnjޱ;u$:u3r,PPPRPQrmWRPQF u^&G :Ku FF^&G s<&G s4~u ^&"^&G ^G ^ &Z&W^&}^&G&;Gr$Sv^ S^S.F uX^&?uL^&G&O+;FsFF^&^&FFv&t^^ &Z&W^F&G]U FFN F;vB~u<^S+QFPFPLF^ v8vNFYFF봋F^&F]UQ^&G :tS^ Sv ^SL<^SFPF u'^S^ Sv ^SLF^&G F]U ^&G :}v^& !Vnjޱ;u$:u3r,PPPRPQwmWRPQF u^&G :\u FFFFN F;w~t^&W&;WrS^ R+QFPFT^&G&+GFV N+;sV^&FF^ v0~&}^9N^Y^F&GFFcF^&F]U^&G :}v ]U^&G :}v ^&G ]U^&]U^&]U]UPFPF uU~tO^&?SVuE^&t6G^&G&vH^&@H]UB @uPP@P>F u{@&G < r < wfHrEF sFF FFFF DuDPPDP>F uoD&G ^ &:GwY^ &GDX ^F&G;FsF^ &GPP^&GȴP^Sv6F tn<~u8F^ &OQP^&OɵQPv>FF tUV~uF~ t~uF r~tFPFPFF^&~uq븋F] U^ SP^St]U^ SP^St]U^ &G :t xB @uPP@P>F uV@&G < rL< wH^&^&G^&GP^&G^&G^&G^&G^&GA^&G6F DuDPPDP>F uD&G ^ &:Gw^ &GD@ FF^ &G^&^&G^&G^&G^&G^&G^&G^&G^&G^&8G uA^&O^&8G u@^&G^ &GA^&G^ &G^&G]UQ^ &G :tS^S2^ SFPF u^ S^SF^ &O ]U^&^ &&W^&G :t ^SF uq^&G;sc@1V&w"&w &w FV^&w8v&XSv^&pRPG<P^&w:F t@^&G-F]U^&GFrF@1V^&w"&w &w FV^&G-sG<PFPF^&G-3^&w8v&XSv^&pvvFPFvvv FV~u2~t5^&w&wRP6 sFV^&G&WFF t ^&Gv^&@F&Z&W^&GFV^&G &W"vv^&w&w6 YsF^&GF^&G@^&G^&w&w&w"&w FVF^&G^&uFF]U6PP06JP u%6]66PP u6R=t=!t3]Uv&D :}s2&؋:u] ]Uv&D :}s2&؋:u] ]Uv&D :}s2&؋:u] ]Uv&D :}s2&؋:u ]X[QSP ]Uv&D :}s2&؋:u] ]UQv&D :}sB2&؋:u0VQFvV&D 2&؋~t F Y]U^ &G :tWSvvn^ &G ^ SvvFNs=u8^ SFP~u#^ &G ^ &dt@Fs률^ &G F]U,^ &G :}r^ &G :t&G 9Fu9Fu^ &G&WFVvv^ &w&w6 s=^ &G^ &G^ &G^ &w&wvv6 s^ &r &G&;Gvvv^ &w"&w 6 sk^ &w"&w &w FVvvRP6 s"vv^ &w"&w F։V؋F^ &G-sSF u^ &G-sG<PFPF^ &G-FVFVF%Ff^ &G^ &G^ &GNV^ &O &W"^ SPFPFPF u5F^ &G[^ &G :t :6t3^ SPF t1^ &w"&w &w FVRP^ &w&w6 sF  &du&G-sG<P^S^&^ SwmPvvv^& u^ &G ^&]UQQ^ &Gd<tO<uSP^& uI^ SFP ^& u0^ SrmPvvv^& u^ &G ^&]U^^F Ћ]U^+^F Ћ]UFf؋ʋF fЋ]U^FЋ]U^FЋ]U^ +^F FЋ]U^ ^F FЋ]UF +F]U3ҋF vFv]U3ҋF vFv،]U^ ;^t ^ ;^t]U^ ;^rt ^ ;^r]Uv v vv ]U^ ;^rt ^ ;^v]UF Ft]U ^&^SP<%F t ^&G t&w8&SP^&w"&w G<P^&w: F t@^&G-^&G &W"&G4&W6^&G&G.^&F&G0Z&W2~Yt^&GF^&G@1V&w"&w &w ^&G &W"F^&Gv^&@F&Z&Wv^&@&G^&G*^&G(^&G^&G,]U ^&G :t :6t F^&G-rG<PFPF^&G-^&G0FF^&w6&w4v ^&G4&V^ &G&W9Fu9Fu^ &G&WFV^ &G&9G*s&G*^ &FF^ &G@1&@FތFFvv^ &w"&w 6 s3^ &G*H1F&w"&w P RPvv6 spFvv^ &w"&w F։V؋F։F^ &O,r&9G*sSF tF^ &G^ &G*&;G(uF&G(F^ &G* ^ F&9G*s&G*^ F&9G(v&G(Fr^ SP<%F u^ SF uy^ &G ts&w8&SP^ &w"&w G<P^ &w: F t@^ &G-^ &G &W"&G4&W6^ &G&G.^ &F&G0Z&W2~Yt^ &G@1&W^ &w&@F&Z&W^ &GF%^ &GvvPP^ &w RP ^ &G &W"^ &G&G(^ &G&G*^ &G,^ &Ytj&w8&SP^ &w"&w FPFu^ &?^ &G,(~t^ &G&GF^ &G :!t ]U^&FF^&w"&w &w* RP^&w&w6 s^&G*H1&G^&G*1 uSP<%F ui^&G@1&@FF^&w"&w &G*1P FV^&w8^SWRPFPFtK uY^&G*1V+^0^~&}*9^Y^&G*H14^SP#%F u/v&|*&L+^9 ^&G*&G^&G,]UQ^ &G :t S^S>6^ &du^ &G ^ S^SF^ &G F]U^&G :}r^&G :t:6u^&w"&w &w l^&G :uk&r&G&;Gv &G&W^&w"&w &w ^&&W^&G sH&G s@^&w&7P ^&&W!^&G :!u^&&G ]UQ^&G :t SvY6^&du^&G ^SvYF^&G F]U^&G :t :6t0^&w"&w &w FVRP^&w&w6 sFV^&G&W^&G&9G*s&G*FP&t@"FP<%F u^&uSF t^&w8&S^&w&w"&w G<P^&w: F t@^&G-^&G &W"&G4&W6^&G&G.^&F&G0Z&W2^Sv<%F Yu0^&w8PGPP^&G :u ]U ^&G :uC&du ^&du&G ^&G-sN&G :u/G<PFP0^&G :t:t:6t f^G<PFPF^&w:FP u ~u~u^&w8F^&w:F^&G F uF]U ?r%^&&W^&Gt&G;F s Wv tX^F&F&GFFF;FsN ;Nvt&@FFڋF;Fr ,tv@^&Z&Wtv&^&G]Us]t&G@]U cr t&G;FsGvtX^F&F&GFFF;Fst&@FFF]U>rupP> u$>rtp&Gtv>vt>tt]ð]U#U$VWQ^S<Y_^F^OGG w 3GGG؉GGGFG F GFGFGFGFGPS]UU^ SG PPFP[#ux>xuF F t ^ &?TNtx4}F z|&Gz^ &O>zF u+J~usx4ЉF Va^ &Gz6~z&zz^&Z&Wx] URPv ^S]U].]UQQ^ &dt[SFP ^& uW^  W6Ft.H^&O.+N^v0^9^Y^&O.N^F&)G.^v^&G0Z&W2F^&.uF tuSv#%F tF^&G0FF^&w8^S^&w.&w6&w4FPFFt.H^&O.+N^v0^9^Y^&O.N^&w6&w4v ^&G4&W6^F&)G.^v^&G0Z&W2F t ^&.u%FsFr^SP#%F u]U^&G :t :6t ^&G&WFV&w"&w &w FVRPvv6 s FVFVFs FF%F t&G < r6<w2F ^&~ t^ &?uxPPP^ Sv 6c>u!FPF u ~ r uDPPP>F t^&GF&8G w ]FX ^Fv&DF&GF&GF&GF^&GF&GF&GF&GF&G F&8G uANsNQPP2F tX FFF ;FwD FrF9F w^ &FF^&O&@^&G^&w FA:r F tFPFPFPPv4F~6^&GF&GFF^&Or- tiFPFҴPFӴPFPFԴP4F~t:FK^&wFA:rLptConfig.Sys>[KBD][VID]+P6F^&Or. tFPFPFPFPF+FP4F~tFFFΈFF:FvPFNNV:v9NQPRPP<F tMFȈFFF uҊFg~t/F:Fu~t FF^SFP'F uFP:F u{FF~t`[~tNSFȈFIF:FvF:F4~tNFȈFF:FvFF~tFFFtF^&GF^&GF^&GF^&GF^&GF^&GF^&GF^&G FsFPFPFP2FFF^&F uF]UFa:r F uK&G ^;v ^X ^F&u^& u@^] UVnjޱ;u$:u ^&GZv~F =amt =wmt? uPPP>F u~&G < r<w^&G _^SvFPFPrF uE^&G F^&GFsF^F^S^SvFPAL]UFf؎]UFV v]UFV v]U vPFPPF uxFV^&&W~u~tYFuRFVFV)F^v^ SPvvFPF u^ &?Gu&G &W^&&W] ------------------------------------------------------------ [VID] EndOfFile Dump Differences encountered. No differences encountered. yy[!Scr]$$.Tmp=\z2Q[KBD][VID]Press NEXT PAGE or SCROLL UP to continue(Press NEXT PAGE to continue       VNVFII-1.0  COPYRIGHT 1980, 1986 CONVERGENT TECHNOLOGIES, INC. ALL RIGHTS RESERVED THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. VERSION: II-1.0 (Sunday June 29, 1986, 13:21) ;Modified: JJK/DMO 7/12/84 Add Gpam. Make semi-readable. ; PKD/DMO 12/18/84 Add PUBLIC pProcRoutine. ; DC 03/06/85 Make SetImageMode generic. ; DR 03/06/85 Add fSameLooks to BsVid ; PBC 12/30/85 Add MF 8251 tags %*DEFINE (Init) ( PUBLIC OpenTable,sTagProcs,tagTable,tagLast,deviceLast PUBLIC fDiskBsDef,DiskBsOpen,fSplBsDef,SplBsOpen,fGpamBsDef,GpamBsOpen DGROUP GROUP DATA %SET(DevNum,0) %SET(tag,0) %SET(segFlag,0) %SET(DiskFlag,0) %SET(SplFlag,0  ag)) FI %IF (%EQS(%tagName,tagKbdRead)) THEN( %SET(tagKbdReadVal,%tag)) FI %SET(tag, %tag+1) %IF (NOT(%ISDEF(%FillProc))) THEN( ??SEG SEGMENT EXTRN %FillProc:FAR ??SEG ENDS) FI DD %FillProc %IF (NOT(%ISDEF(%FlushProc))) THEN( ??SEG SEGMENT EXTRN %FlushProc:FAR ??SEG ENDS) FI DD %FlushProc %IF (NOT(%ISDEF(%CheckPointProc))) THEN( ??SEG SEGMENT EXTRN %CheckPointProc:FAR ??SEG ENDS) FI DD %CheckPointProc  %IF (NOT(%ISDEF(%ReleaseProc))) THEN( ??SEG SEGMENT EXTRN %ReleaseProc:FAR ??SEG ENDS) FI DD %ReleaseProc) %*DEFINE (DevDepProc(ProcName,ProcRoutine)) ( %IF (%DevDepFlag EQ 0) THEN ( %tagProc(tagSysIn,FillBufferSysIn,FlushBufIllegal,ChkptNop,ReleaseEasy) %tagProc(tagSysOut,FillBufIllegal,FlushBufferSysOut,CheckPointBsSysOut,ReleaseEasy) DATA ENDS SAMGEN SEGMENT PUBLIC 'CODE' xQueryVidBs LABEL FAR yQueryBsVid LABEL FAR SAMGEN ENDS ) %SET(GpamFlag,0) %SET(DevDepFlag,0) %SET(tagVideoWriteVal,0FFH) %SET(tagKbdReadVal,0FFH) %DEFINE (OpenProcDisk) (0) %DEFINE (OpenProcSpl) (0) %DEFINE (OpenProcGpam) (0) DATA SEGMENT PUBLIC 'DATA' xDisk LABEL BYTE ySpl LABEL BYTE zGpam LABEL BYTE ) %*DEFINE (DeviceOpen(DeviceName,OpenProc)) ( %IF (NOT(%ISDEF(%OpenProc))) THEN ( ??SEG SEGMENT EXTRN %OpenProc:FAR ??SEG ENDS ) FI %DEFINE(DevName_Gpam)(z%SUBSTR(%DeviceName,2,%LEN(%DeviceName)-2)) %DEFINE(DevName_Disk)(x%SUBSTR(%DeviceName,2,%LEN(%DeviceName)-2)) %DEFINE(DevName_Spl) (y%SUBSTR(%DeviceName,2,%LEN(%DeviceName)-2)) %IF (NOT(%ISDEF(%DevName_Disk))) THEN ( %IF (NOT(%ISDEF(%DevName_Spl))) THEN ( %IF (NOT(%ISDEF(%DevName_Gpam))) THEN ( %IF (%DevNum EQ 0) THEN (OpenTable LABEL BYTE) FI %SET(DevNum, %DevNum+1) DB %LEN(%DeviceName) DB '%DeviceName' DD %OpenProc ) ELSE ( %DEFINE (OpenProcGpam) (%OpenProc) %SET(GpamFlag,0FFh) ) FI ) ELSE ( %DEFINE (OpenProcSpl) (%OpenProc)  %SET(SplFlag,0FFH) ) FI ) ELSE ( %DEFINE (OpenProcDisk) (%OpenProc) %SET(DiskFlag,0FFH) ) FI ) %' "tagProcs" - used only with 10.0 and later SamGens. %' Earlier SamGens used "tagProc", which does not include SetImageMode. %' %*DEFINE (tagProcs(tagName,FillProc,FlushProc,CheckPointProc,ReleaseProc,SetImageModeProc)) ( %IF (%tag EQ 0) THEN ( %DeviceOpen([SysIn],OpenByteStreamSysIn) %DeviceOpen([SysOut],OpenByteStreamSysOut) sTagProcs DW 21 tagTable LABEL DWORD) FI PUBLIC %tagName %tagName DB %tag %IF (%EQS(%tagName,tagVideoWrite)) THEN( %SET(tagVideoWriteVal,%tag)) FI %IF (%EQS(%tagName,tagKbdRead)) THEN( %SET(tagKbdReadVal,%tag)) FI %SET(tag, %tag+1) %IF (NOT(%ISDEF(%FillProc))) THEN( ??SEG SEGMENT EXTRN %FillProc:FAR ??SEG ENDS) FI DD %FillProc %IF (NOT(%ISDEF(%FlushProc))) THEN( ??SEG SEGMENT EXTRN %FlushProc:FAR ??SEG ENDS) FI DD %FlushProc %IF (NOT(%ISDEF(%CheckPointProc))) THEN( ??SEG SEGMENT EXTRN %CheckPointProc:FAR ??SEG ENDS) FI DD %CheckPointProc %IF (NOT(%ISDEF(%ReleaseProc))) THEN( ??SEG SEGMENT EXTRN %ReleaseProc:FAR ??SEG ENDS) FI DD %ReleaseProc %IF (NOT(%ISDEF(%SetImageModeProc))) THEN( ??SEG SEGMENT EXTRN %SetImageModeProc:FAR ??SEG ENDS) FI DD %SetImageModeProc) %' "tagProc" - used only with prior-to-10.0 format Samgens. %' (Included so such Samgens can still be compiled and used with 10.0 %' CTOS.) %' 10.0 and later SamGens use "tagProcs", a "tagProc" replacement which %' includes SetImageMode. %' %*DEFINE (tagProc(tagName,FillProc,FlushProc,CheckPointProc,ReleaseProc)) ( %IF (%tag EQ 0) THEN ( %DeviceOpen([SysIn],OpenByteStreamSysIn) %DeviceOpen([SysOut],OpenByteStreamSysOut) sTagProcs DW 17 tagTable LABEL DWORD) FI PUBLIC %tagName %tagName DB %tag %IF (%EQS(%tagName,tagVideoWrite)) THEN( %SET(tagVideoWriteVal,%t %SET(DevDepFlag,1)) FI PUBLIC p%ProcRoutine DATA SEGMENT PUBLIC 'DATA' p%ProcRoutine DD %ProcRoutine DATA ENDS SAMGEN SEGMENT PUBLIC 'CODE' ASSUME CS:SAMGEN ASSUME DS:DGROUP %IF (%ISDEF(x%ProcName)) THEN ( QueryBsVid LABEL FAR PUBLIC QueryBsVid) FI %IF (%ISDEF(y%ProcName)) THEN ( QueryVidBs LABEL FAR PUBLIC QueryVidBs) FI ??SEG SEGMENT EXTRN %ProcRoutine:FAR ??SEG ENDS PUBLIC %ProcName %ProcName PROC FAR PUSH BP MOV BP,SP POP BP JMP DWORD PTR p%ProcRoutine RET %ProcName ENDP SAMGEN ENDS) %*DEFINE (CheckDef(tagCT)) ( %IF (NOT(%ISDEF(%tagCT))) THEN( %tagCT DB %tag PUBLIC %tagCT %IF (%EQS(%tagCT,tagVideoWrite)) THEN( %SET(tagVideoWriteVal,%tag)) FI %IF (%EQS(%tagCT,tagKbdRead)) THEN( %SET(tagKbdReadVal,%tag)) FI %SET(tag,%tag+1)) FI) %*DEFINE (Final) ( %IF (%DevDepFlag NE 0) THEN ( DATA SEGMENT PUBLIC 'DATA') ELSE (%tagProc(tagSysIn,FillBufferSysIn,FlushBufIllegal,ChkptNop,ReleaseEasy) %tagProc(tagSysOut,FillBufIllegal,FlushBufferSysOut,CheckPointBsSysOut,ReleaseEasy)) FI tagLast DB %tag %SET(tag,%tag+1) deviceLast DB %DevNum fDiskBsDef DB %DiskFlag DiskBsOpen DD %OpenProcDisk fSplBsDef DB %SplFlag SplBsOpen DD %OpenProcSpl fGpamBsDef DB %GpamFlag GpamBsOpen DD %OpenProcGpam %CheckDef(tagDiskRead) %CheckDef(tagDiskWrite) %CheckDef(tagDiskModify) %CheckDef(tagKbdRead) %CheckDef(tagVideoWrite) %CheckDef(tagLptWrite) %CheckDef(tagPtrWrite) %CheckDef(tagNul) %CheckDef(tagCommRead) %CheckDef(tagCommWrite) %CheckDef(tagCommModify) %CheckDef(tag8251Read) %CheckDef(tag8251Write) %CheckDef(tag8251Modify) %CheckDef(tagPtr8251Write) %CheckDef(tagSplWrite) %CheckDef(tagGpamWrite) PUBLIC bsVid EVEN bsVid LABEL DWORD DD 0 DW 0 DW 0 DW 0 DB 0 DB 0 DB 0 DB %tagVideoWriteVal  DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB  0 DB 0 DB 0 DB 0 PUBLIC bsKbd EVEN bsKbd LABEL DWORD DD 0 DW 0 DW 0 DW 0 DB 0FFH DB  0 DB 0 DB %tagKbdReadVal DB 0 DB 0 DB 0 PUBLIC pPrepWriteMMD PUBLIC pPrepReadMMD pPrepWriteMMD DD ? pPrepReadMMD DD ? DATA ENDS END)  SamGenAllCTAsm II-1.0*??SEG??SEGDATADATASAMGENCODEDGROUPhhAh$SpSetImageModeBrntagTablec tagPtrWritepGetBsLfaAsync tagSplWriteSetBsLfaS tagGpamWritetagNul sTagProcsa fGpamBsDef tag8251Write_tagLast- SetImageModeGetBsLfa QueryBsVid/ pPrepReadMMD= tagDiskReadc tagSysOut QueryVidBsf DiskBsOpentagPtr8251Write pQueryVideoBs tagCommModify5 tagKbdRead tagVideoWritebsKbd( tagLptWrite pPrepWriteMMD9 tagCommRead bsVid  deviceLasttagSysIn tag8251ReadJ fSplBsDef tagCommWrite  SplBsOpen OpenTable fDiskBsDef tagDiskModify tagDiskWritex GpamBsOpenpSetBsLfaAsync tag8251Modifyt^ReleaseByteStreamLpt CheckPointBsCOpenByteStreamGpSetImageModeIllegalOpenByteStreamCFlushBufferLptFlushBufferVid FillBufferNFlushBuffer_8251ReleaseByteStream_8251OpenByteStreamSysOutFlushBufIllegal FlushBufferGp Flu   ; ; COPYRIGHT 1980,1983 CONVERGENT TECHNOLOGIES, INC. ; ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A ; PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. ; ;############################################################################ ; ; NATIVE LANGUAGE SUPPORT TABLE DEFINITIONS ; ; NLS tables are a collection of tables loaded at CTOS initialization ; which provide native language configurability for CTOS. ; Convergent Technolgies reserves the ID range 0 through 7FFFh. The ; range 8000h thru 0FFFFh are available for customer use. ; ; To change an NLS table, edit this file, assemble it, link the ; object to "[sys]nls.sys", and reboot the workstation. ; ;################################################shBufferNFillBufIllegal ReleaseEasyCheckPointBsLptSetImageModeLptCheckPointBsSysOutFillBuffer_8251 FlushBufferADReleaseByteStreamCOpenByteStreamKReleaseByteStreamSplReleaseByteStreamADOpenByteStreamSplOpenByteStreamNCheckPointBsADOpenByteStreamADCheckPointBs_8251FillBufferSysIn FillBufferCSetImageModeBrnFlushBufferSysOut QueryVideoBs GetBsLfaAsync FillBufferK SetImageModeCOpenByteStreamVidReleaseByteStreamGp FlushBufferC FillBufferADOpenByteStreamLptOpenByteStreamSysInChkptNopCheckPointBsGpSetImageModeSplOpenByteStreamPtr SetBsLfaAsyncOpenByteStream_8251[Kbd] VV [Vid] V'V'[Lpt] V+V+[Ptr] V0V0([Nul] VV2[Comm] V V=[8251] V2 V2H[SysIn] V, V,T[SysOut] V V d V*V*h V V l VVp VV t VVy VV*}IVVVVV V VVV*V*VVVVVV!V#V V%V%V V  V-V-VVVV V V)VVV-V-V V VVVV VV VV VV VVVV V)V) VV VV  V&V& VV!VVV-V-V V VVC  yV V V V V V VVV&V&VVV)V)VV!V#V%V&'V&*V ,V .V)0V)2V4V6V8V:V& DB 5Eh, 7Eh, attrRepeat ; 05E ^ ~ DB 0, 0, 0 ; 05F DB  31h, 60h, attrRepeat ; 060 1 ` DB 61h, 41h, attrAlpha ; 061 a A DB 62h, 42h, attrAlpha ; 062 b B DB 63h, 43h, attrAlpha ; 063 c C DB 64h, 44h, attrAlpha ; 064 d D DB 65h, 45h, attrAlpha ; 065 e E DB 66h, 46h, attrAlpha ; 066 f F DB 67h, 47h, attrAlpha ; 067 g G DB 68h, 48h, attrAlpha ; 068 h H DB 69h, 49h, attrAlpha ; 069 i I DB 6Ah, 4Ah, attrAlpha ; 06A j J DB 6Bh, 4Bh, attrAlpha ; 06B k K  DB 6Ch, 4Ch, attrAlpha ; 06C l L DB 6Dh, 4Dh, attrAlpha ; 06D m M DB 6Eh, 4Eh, attrAlpha ; 06E n N DB 6Fh, 4Fh, attrAlpha ; 06F o O DB 70h, 50h, attrAlpha ; 070 p P DB 71h, 51h, attrAlpha ; 071 q Q  DB 72h, 52h, attrAlpha ; 072 r R DB 73h, 53h, attrAlpha ; 073 s S DB 74h, 54h, attrAlpha ; 074 t T DB 75h, 55h, attrAlpha ; 075 u U DB 76h, 56h, attrAlpha ; 076 v V DB 77h, 57h, attrAlpha ; 077 w W DB 78h, 58h, attrAlpha ; 078 x X DB 79h, 59h, attrAlpha ; 079 y Y DB 7Ah, 5Ah, attrAlpha ; 07A z Z DB 34h, 7Bh, attrRepeat ; 07B 4 { DB 38h, 5Ch, attrRepeat ; 07C 8 backslash DB 35h, 7Dh, attrRepea 5Ah,5Bh,5Ch,5Dh,5Eh,5Fh DB 60h,41h,42h,43h,44h,45h,46h,47h DB 48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh DB 50h,51h,52h,53h,54h,55h,56h,57h DB 58h,59h,5Ah,7Bh,7Ch,7Dh,7Eh,7Fh DB 80h,81h,82h,83h,84h,85h,86h,87h DB 88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh DB 90h,91h,92h,93h,94h,95h,96h,97h DB 98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh DB 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h DB 0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh DB 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h DB 0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh DB 0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h DB 0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh DB 0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h DB 0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh DB 0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h DB 0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh DB 0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h DB 0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh )) %DefTableData (UserUlCmpbTable, 2, %(%' ULCMPBSignature DW 'XT' DB 00h,01h,02h,03h,04h,05h,06h,07h DB 08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh DB 10h,11h,12h,13h,14h,15h,16h,17h DB 18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh DB 20h,21h,22h,23h,24h,25h,26h,27h DB 28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh DB 30h,31h,32h,33h,34h,35h,36h,37h DB 38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh DB 40h,41h,42h,43h,44h,45h,46h,47h DB 48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh DB 50h,51h,52h,53h,54h,55h,56h,57h DB 58h,59h,5Ah,5Bh,5Ch,5Dh,5Eh,5Fh DB 60h,41h,42h,43h,44h,45h,46h,47h DB 48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh DB 50h,51h,52h,53h,54h,55h,56h,57h DB 58h,59h,5Ah,7Bh,7Ch,7Dh,7Eh,7Fh DB 80h,81h,82h,83h,84h,85h,86h,87h DB 88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh DB 90h,91h,92h,93h,94h,95h,96h,97h DB 98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh DB 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h DB 0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh DB 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h DB 0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh DB 0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h DB 0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh DB 0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h DB 0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh DB 0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h DB 0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh DB 0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h DB 0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh )) %DefTableData (VideoBsStrings, 3, %(%' VidBSSignature DW 'VS' cStrings DW 2 %sbString ('Press Next Page or Scroll Up To Continue') %sbString ('Press Next Page To Continue') )) %DefTableData (UpperToLowerTable, 4, %(%' UpperToLowerSigniture DW 'LW' DB 00h,01h,02h,03h,04h,05h,06h,07h DB 08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh DB 10h,11h,12h,13h,14h,15h,16h,17h DB 18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh DB 20h,21h,22h,23h,24h,25h,26h,27h DB 28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh DB 30h,31h,32h,33h,34h,35h,36h,37h DB 38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh DB 40h,61h,62h,63h,64h,65h,66h,67h DB 68h,69h,6Ah,6Bh,6Ch,6Dh,6Eh,6Fh DB 70h,71h,72h,73h,74h,75h,76h,77h DB 78h,79h,7Ah,5Bh,5Ch,5Dh,5Eh,5Fh DB 60h,61h,62h,63h,64h,65h,66h,67h DB 68h,69h,6Ah,6Bh,6Ch,6Dh,6Eh,6Fh DB 70h,71h,72h,73h,74h,75h,76h,77h DB 78h,79h,7Ah,7Bh,7Ch,7Dh,7Eh,7Fh DB 80h,81h,82h,83h,84h,85h,86h,87h DB 88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh DB 90h,91h,92h,93h,94h,95h,96h,97h DB 98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh DB 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h DB 0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh DB 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h DB 0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh DB 0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h DB 0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh DB 0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h DB 0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh DB 0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h DB 0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh DB 0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h DB 0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh )) %DefTableData (KeyCapText, 5, %( %StartKeycapDefines ; THE FOLLOWING TABLE IS ORDERED ACCORDING TO THE ORDER ; SPECIFIED BY THE CTOS LIBRARY PROCEDURE "GETNLSKEYCAPTEXT". ; DO NOT CHANGE THE ORDER OF THE ENTRIES. ; ; Each macro invocation has two parameters; the first is used ; for mnemonic purposes, the parameter consists of the Engl   10/08/05 11:13PM %DefineTemplateEntry(NumDateTime, "!*o!/!0d!/!0y! !*h!:!0m!!2*A!") ; 02h Jul 1, 1985 9:03 AM ; Jul 18, 1985 11:13 PM %DefineTemplateEntry(ColDateTime, "!Nnn! !dd!, !yyyy! !hh!:!0m! !2AA!") ; 03h Jul 1, 1985 9:03 AM ; Jul 18, 1985 11:13 PM %DefineTemplateEntry(DateTime, "!Nnn! !*d!, !yyyy! !*h!:!0m! !2*A!") ; 04h Mon Jul 1, 1985 9:03 AM ; Mon Jul 18, 1985 11:13 PM %DefineTemplateEntry(ColDayDateTime, "!Www! !Nnn! !dd!, !yyyy! !hh!:!0m! !2AA!") ; 05h Mon Jul 1, 1985 9:03 AM ; Mon Jul 18, 1985 11:13 PM %DefineTemplateEntry(DayDateTime, "!Www! !Nnn! !*d!, !yyyy! !*h!:!0m! !2*A!") ; 06h 07:00 %DefineTemplateEntry(ColTime24, "!0t!:!0m!") ; 07h 13:05 %DefineTemplateEntry(Time24, "!*t!:!0m!") ; 08h 9:03 AM ; 11:13 PM %DefineTemplateEntry(ColTime, "!hh!:!0m! !2AA!") ; 09h 9:03 AM ; 11:13 PM %DefineTemplateEntry(Time, "!*h!:!0m! !2*A!") ; 0Ah 07/18/85 ; 10/08/05 %DefineTemplateEntry(ColNumDate, "!0o!/!0ish ; keycap name followed by the unencoded hexadecimal keycode (see ; table C-1, CTOS operating system manual). The second ; parameter is an ASCII string defining the keycap name. %DefineKeyCapEntry(Action_43, "ACTION") %DefineKeyCapEntry(Backspace_08, "BACK SPACE") %DefineKeyCapEntry(Bound_03, "BOUND") %DefineKeyCapEntry(Cancl_07, "CANCEL") %DefineKeyCapEntry(Code_80, "CODE") %DefineKeyCapEntry(Copy_14, "COPY") %DefineKeyCapEntry(Delete_7F, "DELETE") %DefineKeyCapEntry(Finish_04, "FINISH") %DefineKeyCapEntry(Go_1B, "GO") %DefineKeyCapEntry(Help_00, "HELP") %DefineKeyCapEntry(Lock_45, "LOCK") %DefineKeyCapEntry(Mark_02, "MARK") %DefineKeyCapEntry(Move_12, "MOVE") %DefineKeyCapEntry(Next_0D, "NEXT") %DefineKeyCapEntry(NextPage_0C, "NEXT PAGE") %DefineKeyCapEntry(OverType_44, "OVER TYPE") %DefineKeyCapEntry(PrevPage_05, "PREV PAGE") %DefineKeyCapEntry(Return_0A, "RETURN") %DefineKeyCapEntry(ScrlDown_13, "SCROLL DOWN") %DefineKeyCapEntry(ScrlUp_11, "SCROLL UP") %DefineKeyCapEntry(Shift_48, "SHIFT") %DefineKeyCapEntry(Tab_09, "TAB") %EndKeycapDefines )) %DefTableData (DateTemplateTable, 6, %( %StartDateDefines ; Below is listed the characters for use as escape characters (attributes) ; in the templates. Each entry is of the form: ; ; DateEscapeDefine('b', 'B') ; ; This enters the escape character of 'b' into the table, and indicates ; an upper case equivelent of 'B' ; ; The following definitions are in a specific order, and that order must be ; maintained ; ; AM, PM, Noon or Midnight, string %DateEscapeDefine(Meridian, 'a', 'A') ; Day of month, numeric %DateEscapeDefine(DayOfMonthNum, 'd', 'D') ; Hour, 12 hour system, numeric %DateEscapeDefine(Hour, 'h', 'H') ; Minute, numeric %DateEscapeDefine(Minute, 'm', 'M') ; Month, string %DateEscapeDefine(MonthStr, 'n', 'N') ; Month, numeric %DateEscapeDefine(MonthNum, 'o', 'O') ; Second, numeric %DateEscapeDefine(Second, 's', 'S') ; Hour, 24 hour system, numeric %DateEscapeDefine(Hour24, 't', 'T') ; Day of Week, string %DateEscapeDefine(WeekDay, 'w', 'W') ; Year, numeric %DateEscapeDefine(Year, 'y', 'Y') ; Below are listed the definitions for each of the templates available ; through the NlsStdFormatDateTime routine. Any of the entries may be ; changed, by renaming the template and/or changing the template string. ; ; Each entry is of the form: ; ; DefineTemplateEntry(TemplateName, "TemplateString") ; ; Each entry has a comment preceding it, describing the result of the ; template, and its template number. If any templates are removed, or ; the order is changed, these commented index numbers will not reflect ; the template's true index number. The numbering starts at zero and ; proceeds, being incremented by one, in the order that the definitions ; appear in this file, thus the first defined is index number zero, the ; next is index one and so on. ; ; 00h 7/18/85 9:03AM ; 10/08/05 11:13PM %DefineTemplateEntry(ColNumDateTime, "!oo!/!0d!/!0y! !hh!:!0m!!2AA!") ; 01h 7/18/85 9:03AM ;  d!/!0y!") ; 0Bh 7/8/05 ; 10/18/85 %DefineTemplateEntry(NumDate, "!*o!/!*d!/!0y!") ; 0Ch 09:03:05 %DefineTemplateEntry(FullTime, "!0h!:!0m!:!0s!") ; 0Dh 09:03:05.tmp ; 23:13:57.tmp %DefineTemplateEntry(TempFileName, "!0t!:!0m!:!0s!.tmp") ; 0Eh Monday June 3, 1985 %DefineTemplateEntry(LongDayDate, "!W*w! !N*n! !*d!, !*y!") ; 0Fh June 3, 1985 %DefineTemplateEntry(LongDate, "!N*n! !*d!, !*y!") ; 10h 01/01/01-07:09:05AM %DefineTemplateEntry(FileColDateTime, "!0o!/!0d!/!0y!-!0h!:!0m!:!0s!!2*A!") ; 11h Invalid Template Index %DefineTemplateEntry(InvalidITemp, "Invalid Template Index") %EndStdDateDefines ; ; THIS IS THE END OF THE STANDARD TEMPLATES NO OEM TEMPLATES SHOULD BE ; DEFINED ABOVE THIS POINT. ALL TEMPLATES SHOULD BE ADDED BELOW. ANY NEW ; TEMPLATES ADDED WILL BE INDEXED STARTING WITH TEMPLATE NUMBER 8000h ; ; EXAMPLE: ; ; 8000h DD/MM/YY ; ; DefineTemplateEntry(ColDayMonthYear, "!0d!/!0o!/!0y!") ; ; ; END OF USER DEFINABLE TEXT AREA, NO EDITING SHOULD OCCUR BELOW THIS POINT %EndOemDateDefines )) false EQU 0 true EQU 1 %DefTableData (NumberAndCurrencyTable, 7, %(%' NumberAndCurrencySigniture DW 'NC' DB 2Eh ; Decimal character. Indicates which single ASCII character ; will be used to indicate the decimal point in numbers. ; Either 2Ch (,) or 2Eh (.) may be selected. DB 2Ch ; Triad character. Indicates which single ASCII character ; will be used to indicate the separation of numbers into ; triads (i.e. thousands, millions, etc.). ; Either 2Ch (,) or 2Eh (.) or 20h (space) may be selected. ; Note that the use of space is not fully supported at this ; time and thus its use may be ignored by some programs or ; cause substitution of one of the other characters. DB true ; First triad flag. Controls the rules for placing the triad ; character in the thousands position. If true, the triad ; separator in the thousands position is always to appear when ; the number contains four or more digits to the left of the ; decimal. If false, the thousands triad separator is ; suppressed when no more than one additional digit appears to ; the left. DB 2Ch ; List separator character. Indicates which single ASCII ; character will be used to indicate the separation of ; numbers within a list. Either 2Ch (,) or 3Bh (;) may be ; selected. Note that this specification is used only by ; programs that would otherwise have a conflict with the use ; of 2Ch (,) as the decimal point character. DB 0 ; Currency position. Controls the position of the currency ; symbol. A value of 0 indicates leading currency symbol, ; while 1 indicates trailing currency symbol. Other values ; are reserved for future expansion. Note that embedded ; currency symbols are not currently supported. DB 1 ; Currency symbol string. This string defines the currency DB 24h ; symbol. The first byte is the length of the string. The DB 00h ; remaining four bytes define the contents of the string. DB 00h ; All four bytes must be defined, even when a shorter string DB 00h ; is being defined. )) %DefTableData (DateNameTable, 8, %( %StartNameDefines ; Below are listed the definitions for each of the names available ; through the GetNlsDateName routine. Any of the entries may be ; changed, by renaming the Name and/or changing the Name String. ; THEIR ORDER IS RELIED UPON BY ROUTINES THAT USE THIS INFORMATION. ; DO NOT CHANGE THEIR ORDER OR THEIR MEANING. ; ; Each entry is of the form: ; ; DefineNameEntry(NameString, "String") ; ; Each entry has a comment preceding it, describing the expected contents ; of the string, and its string number. If any strings are removed, or ; the order is changed, these commented index numbers will not reflect ; the string's true index number. The numbering starts at zero and ; proceeds, being incremented by one, in the order that the definitions ; appear in this file, thus the first defined is index number zero, the ; next   July %DefineNameEntry(SeventhMonth, "jul") ; Eighth Month: August %DefineNameEntry(EighthMonth, "aug") ; Ninth Month: September %DefineNameEntry(NinthMonth, "sep") ; Tenth Month: October %DefineNameEntry(TenthMonth, "oct") ; Eleventh Month: November %DefineNameEntry(EleventhMonth, "nov") ; Twelfth Month: December %DefineNameEntry(TwelfthMonth, "dec") ; First Meridian: AM %DefineNameEntry(FirstMeridian, "am") ; Second Meridian: PM %DefineNameEntry(SecondMeridian, "pm") ; Third Meridian: Noon %DefineNameEntry(ThirdMeridian, "n") ; Forth Meridian: Midnight %DefineNameEntry(ForthMeridian, "m") ; USER EDITABLE TEXT ENDS %EndNameTable ; ; If additional tables are required, they must be of the form of the two ; tables that are above. Any new tables must begin with a BeginTable call, ; be followed with exactly the same number of NameEntries, and the table ; must be closed with an EndTable call. ; ; Any new tables should be added here, the next table being number 3 ;  is index one and so on. ; ; IT IS IMPORTANT TO NOTE THAT ANY CAPITALIZATION HERE WILL BE MANDATORY ; IN ANY STRINGS RETURNED BY GetNlsDateName. ; %StartNameTable ; USER EDITABLE TEXT FOLLOWS ; ; T A B L E N U M B E R O N E ; ; Error Name %DefineNameEntry(ErrorName, "invalid name"); ; First Day of the Week: Sunday %DefineNameEntry(FirstWeekDay, "sunday") ; Second Day of the Week: Monday %DefineNameEntry(SecondWeekDay, "monday") ; Third Day of the Week: Tuesday %DefineNameEntry(ThirdWeekDay, "tuesday") ; Fourth Day of the Week: Wednesday %DefineNameEntry(FourthWeekDay, "wednesday") ; Fifth Day of the Week: Thursday %DefineNameEntry(FifthWeekDay, "thursday") ; Sixth Day of the Week: Friday %DefineNameEntry(SixthWeekDay, "friday") ; Seventh Day of the Week: Saturday %DefineNameEntry(SeventhWeekDay, "saturday") ; First Month: January %DefineNameEntry(FirstMonth, "january") ; Second Month: February %DefineNameEntry(SecondMonth, "february") ; Third Month: March %DefineNameEntry(ThirdMonth, "march") ; Fourth Month: April %DefineNameEntry(FourthMonth, "april") ; Fifth Month: May %DefineNameEntry(FifthMonth, "may") ; Sixth Month: June %DefineNameEntry(SixthMonth, "june") ; Seventh Month: July  %DefineNameEntry(SeventhMonth, "july") ; Eighth Month: August %DefineNameEntry(EighthMonth, "august") ; Ninth Month: September %DefineNameEntry(NinthMonth, "september") ; Tenth Month: October %DefineNameEntry(TenthMonth, "october") ; Eleventh Month: November %DefineNameEntry(EleventhMonth, "november") ; Twelfth Month: December %DefineNameEntry(TwelfthMonth, "december") ; First Meridian: AM %DefineNameEntry(FirstMeridian, "am") ; Second Meridian: PM %DefineNameEntry(SecondMeridian, "pm") ; Third Meridian: Noon %DefineNameEntry(ThirdMeridian, "noon") ; Forth Meridian: Midnight %DefineNameEntry(ForthMeridian, "midnight") ; USER EDITABLE TEXT ENDS %EndNameTable %StartNameTable ; ; T A B L E N U M B E R T W O ; ; USER EDITABLE TEXT FOLLOWS ; Error Name %DefineNameEntry(ErrorName, "invalid name"); ; First Day of the Week: Sunday %DefineNameEntry(FirstWeekDay, "sun") ; Second Day of the Week: Monday %DefineNameEntry(SecondWeekDay, "mon") ; Third Day of the Week: Tuesday %DefineNameEntry(ThirdWeekDay, "tue") ; Fourth Day of the Week: Wednesday %DefineNameEntry(FourthWeekDay, "wed") ; Fifth Day of the Week: Thursday %DefineNameEntry(FifthWeekDay, "thu") ; Sixth Day of the Week: Friday %DefineNameEntry(SixthWeekDay, "fri") ; Seventh Day of the Week: Saturday %DefineNameEntry(SeventhWeekDay, "sat") ; First Month: January %DefineNameEntry(FirstMonth, "jan") ; Second Month: February %DefineNameEntry(SecondMonth, "feb") ; Third Month: March %DefineNameEntry(ThirdMonth, "mar") ; Fourth Month: April %DefineNameEntry(FourthMonth, "apr") ; Fifth Month: May %DefineNameEntry(FifthMonth, "may") ; Sixth Month: June %DefineNameEntry(SixthMonth, "jun") ; Seventh Month:  ; ADD NEW TABLE(S) HERE ; All tables must be defined above %EndNameDefines )) %DefTableData (CollationTable, 9, %(%' ;StartCT: CTSignature DW 'CT' %' %' Character Collation Table - %' This table defines the sort order of all the characters in the character %' set. The table consists of one mandatory table followed by several words %' and bytes which define the length and offset from the beginning of the %' table of three optional tables. The 1st table is the primary character %' collation table. The optional tables are the secondary character %' collation table, the 2 for 1 character substitution table and the 1 for 2 %' character substitution table. %' %' NOTE: The second character collation priority map table as well as the %' 2 for 1 and 1 for 2 substitution tables are not used in the default (CTOS) %' case and therefore they have been commented out. They would however be %' useful as a starting place or template for defining a more complete %' character collation structure than the one used by CTOS. Therefore, It is %' requested that these 300 lines of comments be left in this file for future %' reference. %' %' Priority ASCII Code Character %' ======== ========== ========= %' DB 00h ; 00h DB 01h ; 01h DB 02h ; 02h DB 03h ; 03h DB 04h ; 04h DB 05h ; 05h DB 06h ; 06h DB 07h ; 07h DB 08h ; 08h DB 09h ; 09h DB 0Ah ; 0Ah New Line DB 0Bh ; 0Bh DB 0Ch ; 0Ch Form Feed DB 0Dh ; 0Dh DB 0Eh ; 0Eh DB 0Fh ; 0Fh DB 010h ; 010h DB 011h ; 011h DB 012h ; 012h DB 013h ; 013h DB 020h ; 014h Non-Blank Space (make appear as space) DB 015h ; 015h DB 016h ; 016h DB 017h ; 017h DB 018h ; 018h DB 019h ; 019h DB 01Ah ; 01Ah DB 01Bh ; 01Bh DB 01Ch ; 01Ch DB 01Dh ; 01Dh DB 01Eh ; 01Eh DB 01Fh ; 01Fh DB 020h ; 020h DB 021h ; 021h ! DB 022h ; 022h " DB 023h ; 023h # DB 024h ; 024h $ DB 025h ; 025H Percent Sign DB 026h ; 026h & DB 027h  ; 027h ' DB 028h ; 028h ( DB 029h ; 029h ) DB 02Ah ; 02Ah * DB 02Bh ; 02Bh + DB 02Ch ; 02Ch , DB 02Dh ; 02Dh - DB 02Eh ; 02Eh . DB 02Fh ; 02Fh / ; ; DIGITS ; DB 030h ; 030h 0 DB 031h ; 031h 1 DB 032h ; 032h 2 DB 033h ; 033h 3 DB 034h ; 034h 4 DB 035h ; 035h 5 DB 036h ; 036h 6 DB 037h ; 037h 7 DB 038h ; 038h 8 DB 039h ; 039h 9 ; DB 03Ah ; 03Ah : DB 03Bh ; 03Bh ; DB 03Ch ; 03Ch <  DB 03Dh ; 03Dh = DB 03Eh ; 03Eh > DB 03Fh ; 03Fh ? DB 040h ; 040h @ ; ; Roman Letters A thru Z ; DB 041h ; 041h A DB 042h ; 042h B DB 043h ; 043h C DB 044h ; 044h D DB 045h ; 045h E DB 046h ; 046h  F DB 047h ; 047h G DB 048h ; 048H H DB 049h ; 049h I DB 04Ah ; 04Ah J DB 04Bh ; 04Bh K DB 04Ch ; 04Ch L DB 04Dh ; 04Dh M DB 04Eh ; 04Eh N DB 04Fh ; 04Fh O DB 050h ; 050h P DB 051h ; 051h Q  DB 052h ; 052h R DB 053h ; 053h S DB 054h ; 054h T DB 055h ; 055h U DB 056h ; 056h V DB 057h ; 057h W DB 058h ; 058h X DB 059h ; 059h Y DB 05Ah ; 05Ah Z ; DB 05Bh ; 05Bh [ DB 05Ch ; 05Ch \ DB 05Dh ; 05Dh ] DB 05Eh ; 05Eh ^ DB 05Fh ; 05Fh _ DB 060h ; 060h ` %' %' NOTE: In this the primary collation table, Priorities of the characters a-z %' are the same as those of A-Z. %' DB 041h ; 061h a DB 042h ; 062h b  DB 043h ; 063h c DB 044h ; 064h d DB 045h ; 065h e DB 046h ; 066h f DB 047h ; 067h g DB 048h ; 068h h DB 049h ; 069h i DB 04Ah ; 06Ah j DB 04Bh ; 06Bh k DB 04Ch ; 06Ch l DB 04Dh ; 06Dh m DB 04Eh ; 06Eh n DB 04Fh ; 06Fh o DB 050h ; 070h p DB 051h ; 071h q DB 052h ; 072h r DB 053h ; 073h s DB 054h ; 074h t DB 055h ; 075h u DB 056h ; 076h v DB 057h ; 077h w DB 058h ; 078h x DB 05  ; DW 212h ; The offset from the beginning of table of rgb2For1Chrs. DW 0 ;o2For1Subs: ; DW 219h ; The offset from the beginning of table of rgw2For1Subs. DW 0 ;o2For1Subs: ; DW 227h ; The offset from the beginning of table of rgb2For1Prio. DW 0 ;o1For2Wrds: ; DW 235h ; The offset from the beginning of table of rgw1For2Wrds. DW 0 ;o1For2Subs: ; DW 23Bh ; The offset from the beginning of table of rgw1For2Subs. DW 0 ;o1For2Flags: ; DW 241h ; The offset from the beginning of table of rgw1For2Flags. DW 0 %' %'CCT2: %' %' Priority ASCII Code Character %' ======== ========== ========= %' %' DB 00h ; 00h %' DB 01h ; 01h %' DB 02h ; 02h %' DB 03h ; 03h %' DB 04h ; 04h %' DB 05h ; 05h %' DB 06h ; 06h %' DB 07h ; 07h %' DB 08h ; 08h %' DB 09h ; 09h %' DB 0Ah ; 0Ah New Line. %' DB 0Bh ; 0Bh %' DB 0Ch ; 0Ch Form Feed. %' DB 0Dh ; 0Dh %' DB 0Eh ; 0Eh %' DB 0Fh ; 0Fh %' DB 010h ; 010h %' DB 011h ; 011h %' DB 012h ; 012h %' DB 013h ; 0139h ; 079h y DB 05Ah ; 07Ah z ; DB 07Bh ; 07Bh { DB 07Ch ; 07Ch | DB 07Dh ; 07Dh } DB 07Eh ; 07Eh ~ DB 07Fh ; 07Fh DB 080h ; 080h Delete DB 081h ; 081h DB 082h ; 082h DB 083h ; 083h DB 084h ; 084h DB 085h ; 085h DB 086h ; 086h DB 087h ; 087h DB 088h ; 088h DB 089h ; 089h DB 08Ah ; 08Ah DB 08Bh ; 08Bh DB 08Ch ; 08Ch DB 08Dh ; 08Dh DB 08Eh ; 08Eh DB 08Fh ; 08Fh DB 090h ; 090h DB 091h ; 091h DB 092h ; 092h DB 093h ; 093h DB 094h ; 094h DB 095h ; 095h DB 096h ; 096h DB 097h ; 097h DB 098h ; 098h DB 099h ; 099h DB 09Ah ; 09Ah DB 09Bh ; 09Bh DB 09Ch ; 09Ch DB 09Dh ; 09Dh DB 09Eh ; 09Eh DB 09Fh ; 09Fh DB 0A0h ; 0A0h A-circle DB 0A0h ; 0A1h a-circle (make appear as A-circle) DB 0A2h ; 0A2h A-umlaut DB 0A2h ; 0A3h a-umlaut (make appear as A-umlaut) DB 0A4h ; 0A4h O-slashed DB 0A4h ; 0A5h o-slashed (make appear as O-slashed) DB 0A6h ; 0A6h U-umlaut DB 0A6h ; 0A7h u-umlaut (make appear as U-umlaut) DB 0A8h ; 0A8h DB 0A8h ; 0A9h DB 0AAh ; 0AAh DB 0ABh ; 0ABh DB 0ACh ; 0ACh DB 0ADh ; 0ADh DB 0AEh ; 0AEh AE ligature DB 0AEh ;  0AFh ae ligature (make appear as AE ligature) DB 0B0h ; 0B0h DB 0B1h ; 0B1h DB 0B2h ; 0B2h DB 0B3h ; 0B3h DB 0B4h ; 0B4h DB 0B5h ; 0B5h DB 0B6h ; 0B6h DB 0B7h ; 0B7h DB 0B8h ; 0B8h DB 0B9h ; 0B9h DB 0BAh ; 0BAh DB 0BBh ; 0BBh DB 0BCh ; 0BCh DB 0BDh ; 0BDh DB 0BEh ; 0BEh DB 0BFh ; 0BFh DB 0C0h ; 0C0h DB 0C1h ; 0C1h DB 0C2h ; 0C2h DB 0C3h ; 0C3h DB 0C4h ; 0C4h DB 0C5h ; 0C5h DB 0C6h ; 0C6h DB 0C7h ; 0C7h DB 0C8h ; 0C8h DB 0C9h ; 0C9h DB 0CAh ; 0CAh DB 0CBh ; 0CBh DB 0CCh ; 0CCh DB 0CDh ; 0CDh DB 0CEh ; 0CEh DB 0CFh ; 0CFh DB 0D0h ; 0D0h DB 0D1h ; 0D1h DB 0D2h ; 0D2h DB 0D3h ; 0D3h DB 0D4h ; 0D4h DB 0D5h ; 0D5h DB 0D6h ; 0D6h DB 0D7h ; 0D7h DB 0D8h ; 0D8h DB 0D9h ; 0D9h DB 0DAh ; 0DAh DB 0DBh ; 0DBh DB 0DCh ; 0DCh DB 0DDh ; 0DDh DB 0DEh ; 0DEh DB 0DFh ; 0DFh DB 0E0h ; 0E0h DB 0E1h ; 0E1h DB 0E2h ; 0E2h DB 0E3h ; 0E3h DB 0E4h ; 0E4h DB 0E5h ; 0E5h DB 0E6h ; 0E6h DB 0E7h ; 0E7h DB 0E8h ; 0E8h DB 0E9h ; 0E9h DB 0EAh ; 0EAh DB 0EBh ; 0EBh DB 0ECh ; 0ECh DB 0EDh ; 0EDh DB 0EEh ; 0EEh DB 0EFh ; 0EFh DB 0F0h ; 0F0h DB 0F1h ; 0F1h DB 0F2h ; 0F2h DB 0F3h ; 0F3h DB 0F4h ; 0F4h DB 0F5h ; 0F5h DB 0F6h ; 0F6h DB 0F7h ; 0F7h DB 0F8h ; 0F8h DB 0F9h ; 0F9h DB 0FAh ; 0FAh DB 0FBh ; 0FBh DB 0FCh ; 0FCh DB 0FDh ; 0FDh DB 0FEh ; 0FEh DB 0FFh ; 0FFh ; ;o2ndCCT: ; DW 110h ; The offset from the beginning of table of CCT2. DW 0 ;c2For1: ; DB 07h ; The number of 2 for 1 substitutions. DB 0 ;c1For2: ; DB 03h ; The number of 1 for 2 substitutions. DB 0 ;o2For1Chrs:   h %' DB 014h ; 014h Non-Blank Space (make appear as space) %' DB 015h ; 015h %' DB 016h ; 016h %' DB 017h ; 017h %' DB 018h ; 018h %' DB 019h ; 019h %' DB 01Ah ; 01Ah %' DB 01Bh ; 01Bh %' DB 01Ch ; 01Ch %' DB 01Dh ; 01Dh %' DB 01Eh ; 01Eh %' DB 01Fh ; 01Fh %' DB 020h ; 020h %' DB 021h ; 021h ! %' DB 022h ; 022h " %' DB 023h ; 023h # %' DB 024h ; 024h $ %' DB 025h ; 025H Percent Sign %' DB 026h ; 026h & %' DB 027h ; 027h ' %' DB 028h  ; 028h ( %' DB 029h ; 029h ) %' DB 02Ah ; 02Ah * %' DB 02Bh ; 02Bh + %' DB 02Ch ; 02Ch , %' DB 02Dh ; 02Dh - %' DB 02Eh ; 02Eh . %' DB 02Fh ; 02Fh / %' %' DIGITS %' %' DB 030h ; 030h 0 %' DB 031h ; 031h 1 %' DB 032h ; 032h 2 %' DB 033h ; 033h 3 %' DB 034h ; 034h 4 %' DB 035h ; 035h 5 %' DB 036h ; 036h 6 %' DB 037h ; 037h 7 %' DB 038h ; 038h 8 %' DB 039h ; 039h 9 %' %' DB 03Ah ; 03Ah : %' DB 03Bh ; 03Bh ; %' DB 03Ch ; 03Ch < %' DB 03Dh ; 03Dh = %' DB 03Eh ; 03Eh > %' DB 03Fh ; 03Fh ? %' DB 040h ; 040h @ %' %' DB 041h ; 061h A %' DB 043h ; 062h B %' DB 045h ; 063h C %' DB 047h ; 064h D %' DB 049h ; 065h E %' DB 04Bh ; 066h F %' DB 04Dh ; 067h G %' DB 04Fh ; 068h H %' DB 051h ; 069h I %' DB 053h ; 06Ah J %' DB 055h ; 06Bh K %' DB 057h ; 06Ch L %' DB 059h ; 06Dh M %' DB 05Bh ; 06Eh N %' DB 05Dh ; 06Fh O %' DB 05Fh ; 070h P %' DB 061h ; 071h Q %' DB 063h ; 072h R %' DB 065h ; 073h S %' DB 067h ; 074h T %' DB 069h ; 075h U %' DB 06Bh ; 076h V %' DB 06Dh ; 077h W %' DB 06Fh ; 078h X %' DB 071h ; 079h Y %' DB 073h ; 07Ah Z %' %' DB 075h ; 05Bh [ %' DB 076h ; 05Ch \ %' DB 077h ; 05Dh ] %' DB 078h ; 05Eh ^ %' DB 079h ; 05Fh _ %' DB 07Ah ; 060h ` %' %' NOTE: In this the Secondary collation table, the characters a thru z and %' A thru Z are arranged in the following order. A,a,B,b...,Z,z %' %' DB 042h ; 041h a %' DB 044h ; 042h b %' DB 046h ; 043h c %' DB 048h ; 044h d %' DB 04Ah ; 045h e %' DB 04Ch ; 046h f %' DB 04Eh ; 047h g %' DB 050h ; 048H h %' DB 052h ; 049h i %' DB 054h ; 04Ah j %' DB 056h ; 04Bh k %' DB 058h ; 04Ch l %' DB 05Ah ; 04Dh m %' DB 05Ch ; 04Eh n %' DB 05Eh ; 04Fh o %' DB 060h ; 050h p %' DB 062h ; 051h q %' DB 064h ; 052h r %' DB 066h  ; 053h s %' DB 068h ; 054h t %' DB 06Ah ; 055h u %' DB 06Ch ; 056h v %' DB 06Eh ; 057h w %' DB 070h ; 058h x %' DB 072h ; 059h y %' DB 074h ; 05Ah z %' %' DB 07Bh ; 07Bh { %' DB 07Ch ; 07Ch | %' DB 07Dh ;  07Dh } %' DB 07Eh ; 07Eh ^ %' DB 07Fh ; 07Fh %' DB 080h ; 080h Delete %' DB 081h ; 081h %' DB 082h ; 082h %' DB 083h ; 083h %' DB 084h ; 084h %' DB 085h ; 085h %' DB 086h ; 086h %' DB 087h ; 087h %' DB 088h ; 088h %' DB 089h ; 089h %' DB 08Ah ; 08Ah %' DB 08Bh ; 08Bh %' DB 08Ch ; 08Ch %' DB 08Dh ; 08Dh %' DB 08Eh ; 08Eh %' DB 08Fh ; 08Fh %' DB 090h ; 090h %' DB 091h ; 091h %' DB 092h ; 092h %' DB 093h ; 093h %' DB 094h ; 094h %' DB 095h ; 095h %' DB 096h ; 096h %' DB 097h ; 097h %' DB 098h ; 098h %' DB 099h ; 099h %' DB 09Ah ; 09Ah %' DB 09Bh ; 09Bh %' DB 09Ch ; 09Ch %' DB 09Dh ; 09Dh %' DB 09Eh ; 09Eh %' DB 09Fh ; 09Fh %' DB 0A0h ; 0A0h  A-circle %' DB 0A1h ; 0A1h a-circle %' DB 0A2h ; 0A2h A-umlaut %' DB 0A3h ; 0A3h a-umlaut %' DB 0A4h ; 0A4h O-slashed %' DB 0A5h ; 0A5h o-slashed %' DB 0A6h ; 0A6h U-umlaut %' DB 0A7h ; 0A7h u-umlaut %' DB 0A8h ; 0A8h %' DB 0A9h ; 0A9h %' DB 0AAh ; 0AAh %' DB 0ABh ; 0ABh %' DB 0ACh ; 0ACh %' DB 0ADh ; 0ADh %' DB 0AEh ; 0AEh AE ligature %' DB 0AEh ; 0AFh ae ligature %' DB 0B0h ; 0B0h %' DB 0B1h ; 0B1h %' DB 0B2h ; 0B2h %' DB 0B3h ; 0   ter a real "Ae". %' NOTE: This table is NOT used in conjunction with the first character %' collation table. When the first character collation table is being used %' the characters substituted as a result of 2 for 1 substitutions will be %' collated equal to their normal values, just as if the entry in this array %' had been defined as 0. %' %'rgw2For1Priorities: ; DW -1 ; A-umlaut expands to 'A', 'e' & sorts before 'Ae' ; DW -1 ; a-umlaut expands to 'a', 'e' & sorts before 'ae' ; DW -1 ; O-umlaut expands to 'O', 'e' & sorts before 'Oe' ; DW -1 ; o-umlaut expands to 'o', 'e' & sorts before 'oe' ; DW -1 ; U-umlaut expands to 'U', 'e' & sorts before 'Ue' ; DW -1 ; u-umlaut expands to 'u', 'e' & sorts before 'ue' ; DW -1 ; esset expands to 's', 's' & sorts before 'ss' %' %' This table defines those pairs of characters which special priorities when %' they are at the beginning of the word. (e.g. Mc or Ch in spanish) %' %'rgw1For2Wrds: ; DB 'M', B3h %' DB 0B4h ; 0B4h %' DB 0B5h ; 0B5h %' DB 0B6h ; 0B6h %' DB 0B7h ; 0B7h %' DB 0B8h ; 0B8h %' DB 0B9h ; 0B9h %' DB 0BAh ; 0BAh %' DB 0BBh ; 0BBh %' DB 0BCh ; 0BCh %' DB 0BDh ; 0BDh %' DB 0BEh ; 0BEh %' DB 0BFh ; 0BFh %' DB 0C0h ; 0C0h %' DB 0C1h ; 0C1h %' DB 0C2h ; 0C2h %' DB 0C3h ; 0C3h %' DB 0C4h ; 0C4h %' DB 0C5h ; 0C5h %' DB 0C6h ; 0C6h %' DB 0C7h ; 0C7h %' DB 0C8h ; 0C8h %' DB 0C9h ; 0C9h %' DB 0CAh ; 0CAh %' DB 0CBh ; 0CBh %' DB 0CCh ; 0CCh %' DB 0CDh ; 0CDh %' DB 0CEh ; 0CEh %' DB 0CFh ; 0CFh %' DB 0D0h ; 0D0h %' DB 0D1h ; 0D1h %' DB 0D2h ; 0D2h %' DB 0D3h ; 0D3h %' DB 0D4h ; 0D4h %' DB 0D5h ; 0D5h %' DB 0D6h ; 0D6h %' DB 0D7h ; 0D7h %' DB 0D8h ; 0D8h %' DB 0D9h ; 0D9h %' DB 0DAh ; 0DAh %' DB 0DBh ; 0DBh %' DB 0DCh ; 0DCh %' DB 0DDh ; 0DDh %' DB 0DEh ; 0DEh %' DB 0DFh ; 0DFh %' DB 0E0h ; 0E0h %' DB 0E1h ; 0E1h %' DB 0E2h ; 0E2h %' DB 0E3h ; 0E3h %' DB 0E4h  ; 0E4h %' DB 0E5h ; 0E5h %' DB 0E6h ; 0E6h %' DB 0E7h ; 0E7h %' DB 0E8h ; 0E8h %' DB 0E9h ; 0E9h %' DB 0EAh ; 0EAh %' DB 0EBh ; 0EBh %' DB 0ECh ; 0ECh %' DB 0EDh ; 0EDh %' DB 0EEh ; 0EEh %' DB 0EFh ; 0EFh %' DB 0F0h ; 0F0h %' DB 0F1h ; 0F1h %' DB 0F2h ; 0F2h %' DB 0F3h ; 0F3h %' DB 0F4h ; 0F4h %' DB 0F5h ; 0F5h %' DB 0F6h ; 0F6h %' DB 0F7h ; 0F7h %' DB 0F8h ; 0F8h %' DB 0F9h ; 0F9h %' DB 0FAh ; 0FAh %' DB 0FBh ; 0FBh %' DB 0FCh ; 0FCh %' DB 0FDh ; 0FDh %' DB 0FEh ; 0FEh %' DB 0FFh ; 0FFh %' %' rgb2For1Chrs - %' This table defines those characters which have 2 foer 1 substitutions. %' %'rgb2For1Chrs: %' DB 0A2h ; 0A2h A umlaut %' DB 0A3h ; 0A3h a umlaut %' DB 0A4h ; 0A4h O umlaut %' DB 0A5h ; 0A5h o umlaut %' DB 0A8h ; 0A8h U umlaut %' DB 0A9h ; 0A9h u umlaut %' DB 0B0h ; 0B0h (ettset) %' %' rgw2For1Subs - %' This table MUST parallel rgb2For1Chrs. It defines the two characters %' which are to be substituted for the characters in rgb2For1Chrs. %' %'rgw2For1Subs: ; DB 'A', 'e' ; A-umlaut expands to 'A', 'e' ; DB 'a', 'e' ; a-umlaut expands to 'a', 'e' ; DB 'O', 'e' ; O-umlaut expands to 'O', 'e' ; DB 'o', 'e' ; o-umlaut expands to 'o', 'e' ; DB 'U', 'e' ; U-umlaut expands to 'U', 'e' ; DB 'u', 'e' ; u-umlaut expands to 'u', 'e' ; DB 's', 's' ; ettset expands to 's', 's' %' %' rgw2For1Priorities - %' This table MUST parallel rgb2For1Chrs & rgw2For1Subs. It defines the %' offset in priority of the second of the two characters in rgw2For1Subs %' which are to be substituted for the corresponding characters defined in %' rgb2For1Chrs. For the first example shown A-umlaut, the -1 indicates %' that the "Ae" substitution should sort immediately before a real "Ae". %' A 0 would indicate that the "Ae" substituted for A-umlaut should be %' sorted exactly equal to a normal "Ae", and finally a 1 would indicate %' that the "Ae" substitution should sort immediately af! 'c' ; DB 'C', 'h' ; DB 'c', 'h' %' %' This table MUST parallel rgw2For1Wrds. It defines the priorites of the %' sets of two special characters defined in rgw2For1Wrds. %' %'rgw1For2Subs: %' DW 4CFFh %' DW 4301h %' DW 4301h %' %' This table MUST parallel rgw2For1Wrds. It defines whether the 1 for 2 %' substitution defined in rgw1For2Wrds and rgw1For2Subs should always be %' made or if it should only be made when the two characters defined in %' rgw1For2Wrds are at the beginning of a string. %' %'rgb1For2Flags: %' DB 01h %' DB 00h %' DB 00h )) ; The following table indicates the class of the each of the 256 characters. ; The five possible values are defined below. numer EQU 0 ; Numeric (Whole numbers) alpha EQU 1 ; Alphabetic (Letters of the alphabet) specl EQU 2 ; Special (Non-alphanumeric, but commonly displayed) graph EQU 3 ; Graphic (Line drawing and other special graphics) blind EQU 4 ; Blind (Not generally intended for display purposes) %DefTableData (CharacterClassTable, 10, %(%' CharacterClassSigniture DW 'CC' ; 0 / 8 1 / 9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F ; ----- ----- ----- ----- ----- ----- ----- ----- DB blind, blind, blind, specl, blind, blind, specl, blind ; 00h-07h DB blind, blind, blind, blind, blind, blind, blind, blind ; 08h-0Fh DB specl, blind, blind, blind, blind, blind, specl, blind ; 10h-17h DB blind, blind, specl, blind, blind, blind, specl, blind ; 18h-1Fh DB specl, specl, specl, specl, specl, specl, specl, specl ; 20h-27h DB specl, specl, specl, specl, specl, specl, specl, specl ; 28h-2Fh DB numer, numer, numer, numer, numer, numer, numer, numer ; 30h-37h DB numer, numer, specl, specl, specl, specl, specl, specl ; 38h-3Fh DB specl, alpha, alpha, alpha, alpha, alpha, alpha, alpha ; 40h-47h DB alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha ; 48h-4Fh DB alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha ; 50h-57h DB alpha, alpha, alpha, specl, specl, specl, specl, specl ; 58h-5Fh DB specl, alpha, alpha, alpha, alpha, alpha, alpha, alpha ; 60h-67h DB alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha ; 68h-6Fh DB alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha ; 70h-77h DB alpha, alpha, alpha, specl, specl, specl, specl, blind ; 78h-7Fh DB graph, graph, graph, graph, graph, graph, graph, graph ; 80h-87h DB graph, graph, graph, graph, graph, graph, graph, graph ; 88h-8Fh DB graph, graph, graph, graph, graph, graph, graph, graph ; 90h-97h DB graph, graph, graph, graph, graph, graph, graph, graph ; 98h-9Fh DB blind, blind, blind, blind, blind, blind, blind, blind ; A0h-A7h DB blind, blind, blind, blind, blind, blind, blind, blind ; A8h-AFh DB blind, blind, blind, blind, blind, blind, graph, graph ; B0h-B7h DB graph, graph, graph, graph, graph, graph, graph, graph ; B8h-BFh DB graph, graph, graph, graph, graph, graph, graph, graph ; C0h-C7h DB graph, graph, graph, graph, graph, graph, graph, graph ; C8h-CFh DB graph, graph, graph, graph, graph, graph, graph, graph ; D0h-D7h DB graph, graph, graph, graph, graph, graph, graph, graph ; D8h-DFh DB graph, graph, graph, graph, graph, graph, graph, graph ; E0h-E7h DB graph, graph, graph, graph, graph, graph, graph, graph ; E8h-EFh DB graph, graph, graph, graph, graph, graph, graph, graph ; F0h-F7h DB graph, graph, graph, graph, graph, graph, graph, graph ; F8h-FFh )) %TableEnd END DB 'u', 'e' ; u-umlaut expands to 'u', 'e' ; DB 's', 's' ; ettset expands to 's', 's' %' %' rgw2For1Priorities - %' This table MUST parallel rgb2For1Chrs & rgw2For1Subs. I ; ; COPYRIGHT 1980,1983 CONVERGENT TECHNOLOGIES, INC. ; ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A ; PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. ; %Set(cbTable,0) %Set(cTable,0) STACK segment wor!  ided. Takes a ; name and string value: ; DefineKeycapEntry(Help_00, "HELP") ; This creates an entry called sbHelp_00 with the provided ; String, and adds it sequentially to the data structures. %*DEFINE (DefineKeyCapEntry(NameKeyCap, "String"))( sb%NoKeyCaps LABEL BYTE %' SB starts here DB %len(%String) %' String length DB '%String' %' String text DB 0 %' Null terminator for C etc %SET(NoKeyCaps, %NoKeyCaps+1) ) ;EndKeycapDefines Macro ;Wraps up the data space for the Keycap String arrays and ;other structures. %*DEFINE (EndKeycapDefines)( ; Describe the available tables by rgTables offset %SET (iKeyCap, 1) rgosbKeyCap LABEL BYTE %WHILE (%iKeyCap LT %NoKeyCaps) ( DW (OFFSET sb%iKeyCap) - (OFFSET rgKeyCap) %SET (iKeyCap, %iKeyCap + 1) ) EndKeyCapData label byte ORG OFFSET cKeyCaps DW %NoKeyCaps - 1 ORG OFFSET orgosbKeyCap DW (OFFSET rgosbKeyCap) - (OFFSET rgKeyCap) ORG OFFSET EndKeyCapData ) ; ; StartNameDefines Macro - - Set up the data space for the Date Time ; d stack 'STACK' STACK ends HdrSeg SEGMENT PUBLIC 'coed' wSignature DB 'T', 'N' cbFile DW 0 cStruct DW 0 orgID DW 0 orgOStruct DW 0 fill DW 0,0,0 HdrSeg ENDS sHdrSeq EQU 10h IdSeg SEGMENT WORD PUBLIC 'const' rgId LABEL WORD IdSeg ENDS  oStructSeg SEGMENT WORD PUBLIC 'const' rgoStruct LABEL WORD oStructSeg ENDS rgbStructSeg SEGMENT WORD PUBLIC 'const' rgbStruct LABEL BYTE rgbStructSeg ENDS TGroup GROUP HdrSeg, IdSeg, oStructSeg, rgbStructSeg %*DEFINE (DefTableString(name, id, string)) LOCAL rgbStart ( %x1Out(%name (%id) ... ) %DEFINE (arg) (%string) IdSeg SEGMENT DW %id IdSeg ENDS rgbStructSeg SEGMENT %rgbStart LABEL BYTE %WHILE (%LEN(%arg) GT 0) (%MATCH (head, arg) (%arg) DB %head ) rgbStructSeg ENDS oStructSeg SEGMENT DW OFFSET TGroup:%rgbStart oStructSeg ENDS %Set(cTable, %cTable+1) %Set(cbTable, %cbTable+%len(%string)) %x1Out(done.%nl) ) %*DEFINE (DefTablesbString(name, id, sbString)) LOCAL tmp0 tmp1 ( %x1Out(%name (%id) ... ) IdSeg SEGMENT DW %id IdSeg ENDS rgbStructSeg SEGMENT %tmp0 LABEL BYTE DB 0 %IF(%NES(%sbString,''))THEN( DB %sbString)FI %tmp1 LABEL BYTE ORG OFFSET %tmp0 DB %tmp1-%tmp0-1 rgbStructSeg ENDS oStructSeg SEGMENT DW OFFSET TGroup:%tmp0 oStructSeg ENDS %Set(cTable, %cTable+1) %Set(cbTable, %cbTable+%len(%sbString)+1) %x1Out(done.%nl) ) %*DEFINE (SbString(Str)) LOCAL tmp0 tmp1 ( rgbStructSeg SEGMENT %tmp0 LABEL BYTE DB 0 %IF(%NES(%str,''))THEN( DB %str)FI %tmp1 LABEL BYTE ORG OFFSET %tmp0 DB %tmp1-%tmp0-1 ORG OFFSET %tmp1 rgbStructSeg ENDS ) %*DEFINE (DefTableData(name, id, data)) LOCAL rgb0 rgb1 ( %x1Out(%name (%id) ... ) %DEFINE (arg) (%data) IdSeg SEGMENT DW %id IdSeg ENDS rgbStructSeg SEGMENT %rgb0 LABEL BYTE %data %rgb1 LABEL BYTE rgbStructSeg ENDS oStructSeg SEGMENT DW OFFSET TGroup:%rgb0 oStructSeg ENDS %Set(cTable, %cTable+1) %Set(cbTable, %cbTable+(%rgb1-%rgb0)) %x1Out(done.%nl) ) %*DEFINE (TableEnd)( HdrSeg SEGMENT PUBLIC 'COED' ORG OFFSET cbFile DW %cbTable + sHdrSeq + (%cTable*4) ORG OFFSET cStruct DW %cTable ORG OFFSET orgId DW OFFSET TGRoup:rgId ORG OFFSET orgoStruct DW OFFSET TGRoup:rgoStruct HdrSeg ENDS ) %*DEFINE (TableInit)( %' '%x1Out(Creating NLS tables:%nl)%' ) %*DEFINE(xOut(str))(%IF (%PASS1 EQ -1) THEN (%out(%str)) FI) %*DEFINE(x2Out(str))(%IF (%PASS2 EQ -1) THEN (%out(%str)) FI) %*DEFINE(x1Out(str))(%out(%str)) %DEFINE(nl)( ) ;StartKeycapDefines Macro ;Set up the data space for the Keycap Template arrays. The ;pointer array of these templates is called rgsbTemplates %*DEFINE (StartKeycapDefines)( ; rgKeycap is an array of offsets which describe the beginning ; of each of the structures in the Nls Keycap section of the NLS ; tables. public rgKeyCap rgKeyCap LABEL BYTE wKeyCapSig DW 'KC' %' Name table signature wRevLevel DW 0 %'  Revision level cKeyCaps DW 0 %' Number of keycaps orgosbKeyCap DW 0 %' offset to keycap list %SET(NoKeyCaps, 1) sbKeyCaps label byte ) ; KeycapEntry Macro ; Create a table entry for the template form prov"  Template arrays. The pointer array of ; These templates is called rgsbTemplates ; %*DEFINE (StartNameDefines)( public NameStruct %SET(TableNo, 1) %SET(Started, 0) %SET(StringMax, 0FFH) %' %' %' %' %' N L S N A M E S T R U C T U R E %' %' NameStruct is a structure of offsets and counts which describe the %' structures in the Nls Name section of the NLS tables. %' %' %' NameStruct label byte qNameSignature DW 'NT' wNameRevLevel DW 0 cTables DW 0 orgoTables DW 0 ) ; ; NameEntry Macro - - Create a table entry for the template form ; provided. Takes a name and string value: ; ; DefineNameEntry(FirstMonth, "january") ; ; This creates an entry called FirstMonth with the provided String, and ; adds it sequentially to the data structures. ; ; Define the string %*DEFINE (DefineNameEntry(NameString, "String"))( %IF ((%StringNo LT %StringMax) AND (%Started EQ 1)) THEN ( sb%StringNo%TableNo label byte db %len(%String) db '%String' db 0 %SET (StringNo, %StringNo+1) ) ELSE ( %IF (%StringNo EQ %StringMax) THEN ( %OUT (DateString: %StringNo; Table: %TableNo; Too many strings in table, first table contained %StringMax strings. ) ) ELSE ( %OUT(Table number %TableNo must Begin before name strings can be defined ) ) FI ) FI ) ; ; Start Table Macro - - Begin a new list of date names ; %*DEFINE (StartNameTable)( %' %' remember the start of this list of string offsets %' %IF (%Started EQ 1) THEN ( %OUT(Table number %TableNo must End before another can begin ) ) ELSE ( %SET (StringNo, 1) %' %' Set the "We are in a table" flag, and warn user if last table not closed %SET(Started, 1) ) FI ) ; ; End Name Table Macro - - Close up a list of strings ; %*DEFINE (EndNameTable)( %' %' %' %' Warn user that we are closing a tabel that was not opened up %IF (%Started EQ 0) THEN ( %OUT(Table number %TableNo must Begin before it can end ) ) ELSE ( %IF (%StringMax EQ 0FFH) THEN ( %SET (StringMax, %StringNo) ) FI %IF (%StringNo LT %StringMax) THEN ( %OUT (Table: %TableNo; Table must contain %StringMax strings, this table contains only %StringNo strings ) ) ELSE ( %SET(TableNo, %TableNo+1) %SET(Started, 0) ) FI ) FI ) ; ; EndNameDefines Macro - - Wraps up the data space for the Name ; String arrays and other structures. ; %*DEFINE (EndNameDefines)( %' %IF (%Started EQ 1) THEN ( %OUT(Table number %TableNo must End before name definitions can End ) ) ELSE ( %SET (iTable, 1) %' %WHILE (%iTable LT %TableNo) ( Table%iTable label byte %Set (iName, 1) %WHILE (%iName LT %StringMax) ( DW (OFFSET sb%iName%iTable) - (OFFSET NameStruct) %SET (iName, %iName+1) ) %SET (iTable, %iTable+1) %SET (iName, 1) ) %' %SET (iTable, 1) rgoTables label byte %WHILE (%iTable LT %TableNo) ( DW %StringMax-1 DW (OFFSET Table%iTable) - (OFFSET NameStruct) %SET (iTable, %iTable + 1) ) EndNameData Label byte %' %' %' %' %' Describe the available tables by rgTables offset %' ORG OFFSET cTables DW %TableNo-1 ORG OFFSET orgoTables DW (OFFSET rgoTables) - (OFFSET NameStruct) ORG OFFSET EndNameData %' %' ) FI ) ; ; StartDateDefines Macro - - Set up the data space for the Date Time ; Template arrays. The pointer array of ; These templates is called rgsbTemplates ; %*DEFINE (StartDateDefines)( %' public DateStruct %' %' %' N L S D A T E S T R U C T U R E %' DateStruct is an structure of offsets and counts which describe the %' structures in the Nls Date section of the NLS tables. %' %' DateStruct label byte qDateSignature dw 'DT' wDateRevLevel dw 0 cCtTemplates dw 0 cOemTemplates dw 0 orgoTemplates dw 0 %' cEscs dw 0 orgCmds dw 0 %' %' %SET(NumSbs, 0) %SET(NumCtTemps, 0) %SET(NumOemTemps, 0) %' %SET(NumEscs, 0) %' %SET(BuildPhase, 1) %' %' rgCmds label byte %' ) ; ; DateEscapeDefine Macro - - Defines t"  ;***************************************************************************** ; FILE SAMGENALL.ASM -- * ; * ; COPYRIGHT 1981, 1986 CONVERGENT TECHNOLOGIES, INC. ALL RIGHTS RESERVED * ; * ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR * ; THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE, AND MAY * ; NOT BE COPIED OR OTHERWISE USED WITHOUT THE PRIOR WRITTEN CONSENT OF * ; CONVERGENT TECHNOLOGIES, INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, * ; INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT * ; TECHNOLOGIES. * ; * ; he character to be used for each ; of the escape sequences (attributes) in the ; NLS Date templates. ; %*DEFINE (DateEscapeDefine(CommandName, 'bLower', 'bUpper'))( %' %IF (%BuildPhase EQ 1) THEN ( db '%bLower' db '%bUpper' %' %SET(NumEscs, %NumEscs+1) %' ) ELSE ( %OUT(Command: %CommandName; Command characters must be defined before other NLS Date information. ) ) FI ) ; ; TemplateEntry Macro - - Create a table entry for the template form ; provided. Takes a name and string value: ; ; DefineTemplateEntry(LongDayDate, "!W*w! !N*n! !*d!, !*y!") ; ; This creates an entry called LongDayDate of the provided format, and ; adds it sequentially to the data structures. ; %*DEFINE (DefineTemplateEntry(TemplateName, "TemplateString"))( %' %'Transitioning from command char definition, disallow further command defines %IF (%BuildPhase EQ 1) THEN ( %SET (BuildPhase, 2) ) FI %' %IF ((%BuildPhase EQ 2) OR (%BuildPhase EQ 3)) THEN ( sbTemplate%NumSbs label byte db %len(%TemplateString) db '%TemplateString' db 0 %' %SET(NumSbs, %NumSbs+1) %' %IF (%BuildPhase EQ 2) THEN ( %SET(NumCtTemps, %NumCtTemps+1) ) ELSE ( %SET(NumOemTemps, %NumOemTemps+1) ) FI %' ) ELSE ( %OUT(Template: %TemplateName; Templates must be defined immediately after command characters ) ) FI %' ) ; ; EndStdDateDefines Macro - - Wraps up the data space for the Date Time ; Template arrays and other structures. The ; number of templates is put in in cTemplates, ; which is referenced by its offset, as is the ; array of escapes. ; %*DEFINE (EndStdDateDefines)( %IF (%BuildPhase EQ 2) THEN ( %SET (BuildPhase, 3) ) ELSE ( %OUT (Command characters and Standard templates must be defined before OEM templates ) ) FI ) ; ; EndOemDateDefines Macro - - Wraps up the data space for the Date Time ; Template arrays and other structures. The ; number of templates is put in in cTemplates, ; which is referenced by its offset, as is the ; array of escapes. ; %' %*DEFINE (EndOemDateDefines)( %' %IF (%BuildPhase EQ 3) THEN ( %' %' Disallow any further definitions %SET (BuildPhase, 4) %' rgosbTemplates LABEL BYTE %' %SET (iosb, 0) %' %WHILE (%iosb LT %NumSbs) ( DW (OFFSET sbTemplate%iosb) - (OFFSET DateStruct) %SET (iosb, %iosb+1) ) %' EndDateData label byte ORG OFFSET cCtTemplates DW %NumCtTemps ORG OFFSET cOemTemplates DW %NumOemTemps ORG OFFSET orgoTemplates DW (OFFSET rgosbTemplates) - (OFFSET DateStruct) ORG OFFSET cEscs DW %NumEscs ORG OFFSET orgCmds  DW (OFFSET rgCmds) - (OFFSET DateStruct) ORG OFFSET EndDateData ) ELSE ( %OUT (Error; Command character, Default template, and OEM template definition areas must be present ) ) FI )leNo must Begin before it can end ) ) ELSE ( %IF (%StringMax EQ 0FFH#  * ; The file "SamGen.Mdf" contains all of the macro definitions for the macros * ; which are contained in this file, "SamGenAll.Asm". The Sequential Access * ; Method (SAM) implementation contained in CTOS.Lib may be reconfigured by * ; creating a tailored SAMGEN module. First, the SAMGEN.ASM source file must * ; be edited to reflect the new configuration. After editing, the SAMGEN.ASM * ; file must be assembled and then the resulting object file, SAMGEN.OBJ, must* ; be included in the list of object modules at link time. Alternately, if the* ; new SAM configuration is to be the default SAM configuration, the Librarian* ; utility may be used to overwrite the SAMGEN module contained in CTOS.Lib. * ; The default SAM configuration contained in CTOS.Lib includes disk, * ; keyboard, video, parallel printer, null, and spooler byte streams. * ; In addition, the user may wish to include other byte streams, e.g. * ; communication or serial printer byte streams.  * ;******************************************************************************; $INCLUDE ([sys]samgen.mdf) %Init $EJECT ;***************************************************************************** ; The "DeviceOpen(deviceName,OpenProc)" macro defines an OpenProc routine to * ; be called when OpenByteStream is called with the deviceName specified. To * ; add an additional byte stream to the SAM configuration specified in this * ; file, add a DeviceOpen macro to this section, defining the new deviceName * ; and the corresponding OpenProc. To omit a byte stream, delete from this * ; section the DeviceOpen macro associated with the byte stream to be omitted.* ; To substitute a new byte stream for an existing byte stream, replace the * ; OpenProc parameter in the appropriate DeviceOpen macro with the new * ; OpenProc. To add, omit, or substitute byte streams also requires editing * ; the following sections of macros. Note that the deviceName "[Disk]" is a * ; psuedo name for disk byte streams. DO NOT call OpenByteStream with the * ; device spec "[Disk]". * ; * ; To add a user written byte stream for device Foo add the following line to * ; this section * ; * %' %DeviceOpen([Foo],OpenByteStreamFoo)  * ; * ; To omit disk and spooler byte streams delete the following lines from this * ; section * ; * %' %DeviceOpen([Spl],OpenByteStreamSpl) * %' %DeviceOpen([Disk],OpenByteStreamAD) * ;  * ; To substitute synchronous byte streams for asynchronous byte streams * ; replace * ;  * %' %DeviceOpen([Disk],OpenByteStreamAD) * ; * ; with  * ; * %' %DeviceOpen([Disk],OpenByteStreamSD) * ; * ; If you know that you are going to use the 8251 chips on the MegaFrame, * ; then replace * ; * %' %DeviceOp#  be used when a device independent procedure * ; (ReadByte and ReadBsRecord, Writebyte and WriteBsRecord, CheckPointBs, * ; ReleaseByteStream, and SetImageMode) is called. In some cases not * ; all five entries will apply. For example, if SetImageMode does * ; not apply, use the name SetImageModeIllegal. To omit a byte stream, * ; delete from this section all the tagProcs macros associated with the * ; byte stream to be deleted. To substitute a new byte stream for an * ; existing byte stream, replace the five device dependent procedures * ; declared in the tagProcs macros with the new procedure names. To add, * ; omit, or substitute byte streams also requires editing the previous * ; section of macros and the following section of macros. * ; * ; To add a byte stream for device Foo, which can be opened with mode * ; read or mode write, aen([Comm],OpenByteStreamC) * %' %DeviceOpen([Ptr],OpenByteStreamPtr) * ; * ; with  * ; * %' %DeviceOpen([Comm],OpenByteStream_8251) * %' %DeviceOpen([Ptr],OpenByteStreamPtr_8251)  * ; * ; And delete the DeviceOpen for [8251] * ;  * ;***************************************************************************** ; %DeviceOpen([Kbd],OpenByteStreamK) %DeviceOpen([Vid],OpenByteStreamVid) %DeviceOpen([Lpt],OpenByteStreamLpt) %DeviceOpen([Ptr],OpenByteStreamPtr) %DeviceOpen([Nul],OpenByteStreamN) %DeviceOpen([Comm],OpenByteStreamC) %DeviceOpen([8251],OpenByteStream_8251) %DeviceOpen([Spl],OpenByteStreamSpl) %DeviceOpen([Disk],OpenByteStreamAD) %DeviceOpen([Gpam],OpenByteStreamGp) $EJECT ;***************************************************************************** ; The "tagProcs(tagName,FillBufferProc,FlushBufferProc,CheckPointProc, * ; ReleaseProc,SetImageModeProc)" macro declares five * ; device dependent procedures to be called when the various device  * ; independent procedures (ReadByte and ReadBsRecord, Writebyte and * ; WriteBsRecord, CheckPointBs and ReleaseByteStream, and * ; SetImageMode) are called. * ;  * ; Note that "tagProcs" replaces an earlier macro called "tagProc", * ; in 10.0 CTOS and earlier. "tagProc" is still defined in SamGen.mdf * ; to avoid breaking existing user-customized SamGen files. Be careful * ; to use "tagProcs" exclusively in all new SamGen files, and never * ; to mix these two macros in a single file! * ;  * ; The tagName parameter is declared as a PUBLIC BYTE and is given a * ; value. This value is used to route the device independent calls to * ; the apppropriate device dependent routines. The appropriate tag  * ; should be declared as an EXTERNAL BYTE within the OpenProc procedure * ; and the tag byte of the BSWA should be assigned this tag value. * ; * ; To add an additional byte stream to the SAM configuration specified * ; in this file, add to this section a tagProcs macro for each access * ; mode associated with the new byte stream, declaring the five device * ; dependent procedures to $ dd the following lines to this section: * ; * %' %tagProcs(tagFooRead,FillBufferFoo,FlushBufIllegal,CheckPointBsFoo,ReleaseByteStreamFoo,SetImageModeFoo) %' %tagProcs(tagFooWrite,FillBufIllegal,FlushBufferFoo,CheckPointBsFoo,ReleaseByteStreamFoo,SetImageModeFoo) ; ; To omit disk and spooler byte streams delete the following lines ; from this section: ; %' %tagProcs(tagDiskRead,FillBufferAD,FlushBufIllegal,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %' %tagProcs(tagDiskWrite,FillBufIllegal,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %' %tagProcs(tagDiskModify,FillBufferAD,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %' %tagProcs(tagSplWrite,FillBufIllegal,FlushBufferAD,CheckpointBsAD,ReleaseByteStreamSpl,SetImageModeSpl) ; ; To substitute synchronous disk byte streams for asynchronous disk byte ; streams replace: ; %' %tagProcs(tagDiskRead,FillBufferAD,FlushBufIllegal,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %' %tagProcs(tagDiskWrite,FillBufIllegal,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %' %tagProcs(tagDiskModify,FillBufferAD,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %' %tagProcs(tagSplWrite,FillBufIllegal,FlushBufferAD,CheckpointBsAD,ReleaseByteStreamSpl,SetImageModeSpl) %' %tagProcs(tagGpamWrite,FillBufIllegal,FlushBufferGp,CheckPointBsGp,ReleaseByteStreamGp,SetImageModeIllegal) ; ; with ; %' %tagProcs(tagDiskRead,FillBufferSD,FlushBufIllegal,CheckPointBsSD,ReleaseByteStreamSD,SetImageModeIllegal) %' %tagProcs(tagDiskWrite,FillBufIllegal,FlushBufferSD,CheckPointBsSD,ReleaseByteStreamSD,SetImageModeIllegal) %' %tagProcs(tagDiskModify,FillBufferSD,FlushBufferSD,CheckPointBsSD,ReleaseByteStreamSD,SetImageModeIllegal) %' %tagProcs(tagSplWrite,FillBufIllegal,FlushBufferSD,CheckpointBsSD,ReleaseByteStreamSpl,SetImageModeSpl) ; ;***************************************************************************** ; %tagProcs(tagDiskRead,FillBufferAD,FlushBufIllegal,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %tagProcs(tagDiskWrite,FillBufIllegal,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %tagProcs(tagDiskModify,FillBufferAD,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamAD,SetImageModeIllegal) %tagProcs(tagKbdRead,FillBufferK,FlushBufIllegal,ChkptNop,ReleaseEasy,SetImageModeIllegal) %tagProcs(tagVideoWrite,FillBufIllegal,FlushBufferVid,ChkptNop,ReleaseEasy,SetImageModeIllegal) %tagProcs(tagLptWrite,FillBufIllegal,FlushBufferLpt,CheckPointBsLpt,ReleaseByteStreamLpt,SetImageModeLpt) %tagProcs(tagPtrWrite,FillBufIllegal,FlushBufferC,CheckPointBsC,ReleaseByteStreamC,SetImageModeC) %tagProcs(tagNul,FillBufferN,FlushBufferN,ChkptNop,ReleaseEasy,SetImageModeIllegal) %tagProcs(tagCommRead,FillBufferC,FlushBufIllegal,CheckPointBsC,ReleaseByteStreamC,SetImageModeC) %tagProcs(tagCommWrite,FillBufIllegal,FlushBufferC,CheckPointBsC,ReleaseByteStreamC,SetImageModeC) %tagProcs(tagCommModify,FillBufferC,FlushBufferC,CheckPointBsC,ReleaseByteStreamC,SetImageModeC) %tagProcs(tag8251Read,FillBuffer_8251,FlushBufIllegal,CheckPointBs_8251,ReleaseByteStream_8251,SetImageModeC) %tagProcs(tag8251Write,FillBufIllegal,FlushBuffer_8251,CheckPointBs_8251,ReleaseByteStream_8251,SetImageModeC) %tagProcs(tag8251Modify,FillBuffer_8251,FlushBuffer_8251,CheckPointBs_8251,ReleaseByteStream_8251,SetImageModeC) %tagProcs(tagPtr8251Write,FillBufIllegal,FlushBuffer_8251,CheckPointBs_8251,ReleaseByteStream_8251,SetImageModeC) %tagProcs(tagSplWrite,FillBufIllegal,FlushBufferAD,CheckPointBsAD,ReleaseByteStreamSpl,SetImageModeSpl) %tagProcs(tagGpamWrite,FillBufIllegal,FlushBufferGp,CheckPointBsGp,ReleaseByteStreamGp,SetImageModeIllegal) ; To add 1/2 inch Tape or Qic bytestrems, remove the leading percentsign-quote ; from the folloing lines: ; %' %tagProcs(tagQicRead,FillBufferQic,FlushBufIllegal,ChkptNop,ReleaseByteStreamQic,SetImageModeIllegal) %'$  Uv PF t> F t?F&7&< sE<s FN FFuFF uNF@t]`&&? sPF XP+F XFFuFFuNFuNF #F^&]\2DMąĒħUQQv PF t>pFt?dFtZ&&? r&&? s N N F&&N V ҲuB""&]h \3@`ĆKUF tF0؋.;Ft!&&? u~~r>]"$t %tagProcs(tagQicWrite,FillBufIllegal,FlushBufferQic,chkptNop,ReleaseBytestreamQic,SetImageModeIllegal) %' %tagProcs(tagTapeRead,FillBufferTape,FlushBufIllegal,ChkptNop,ReleaseByteStreamTape,SetImageModeIllegal) %' %tagProcs(tagTapeWrite,FillBufIllegal,FlushBufferTape,chkptNop,ReleaseBytestreamTape,SetImageModeIllegal) ; $EJECT ;***************************************************************************** ; The "DevDepProc(devDepCall,devDepProc)" macro declares a routine devDepProc* ; to be called when the device dependent routine devDepCall is called. This * ; macros allows for substitution of alternate routines to handle any device * ; dependent byte stream routines defined (such as QueryVidBs, GetBsLfa, * ; SetBsLfa, or SetImageMode) or the omission of any device dependent routines* ; not needed. * ; * ; To substitue synchronous disk byte stream implementations of the device * ; dependent routines GetBsLfa and SetBsLfa for the asynchronous * ; implementations, replace * ;  * %' %DevDepProc(GetBsLfa,GetBsLfaAsync) * %' %DevDepProc(SetBsLfa,SetBsLfaAsync) * ; * ; with * ; * %' %DevDepProc(GetBsLfa,GetBsLfaSync) * %' %DevDepProc(SetBsLfa,SetBsLfaSync) * ; * ; To omit the device dependent routine QueryVidBs delete the following * ; line  * ; * %' %DevDepProc(QueryVidBs,QueryVideoBs) * ;  * ;***************************************************************************** ; %DevDepProc(QueryVidBs,QueryVideoBs) %DevDepProc(GetBsLfa,GetBsLfaAsync) %DevDepProc(SetBsLfa,SetBsLfaAsync) %DevDepProc(SetImageMode,SetImageModeBrn) %Final easCOMMSTATUS_PRE10PLM86 V2.307/02/86 11:16:1ؖ;STACKMEMORYCODEDATACONSTCOMMSTATUS_PRE10_CODEDGROUPh@=HHDTD., K8IOINTCTLEOICLASS RGCOMMLINE IOEXTCTLREGLREADCOMMLINESTATUS_WRITECOMMLINESTATUS_VALIDATECOMMLINEHANDLE@ ., D%  commnub_pre10CTAsm II-1.08??SEG??SEGDATADATACommNubCODECommAsmCODEDGrouphh2hLh  ResetCommPortpIsrTxData_pre10FIsrTxData_pre10 RawCommNub MedCommNubIsrSpRxCnd_pre10wSI. pMedCommNubIsrRxData_pre10 ,pMedCommNubReturnpIsrRxData_pre10,IsrExtInt_pre10SpuriousRawCommIsrYpSpuriousRawCommIsr pIsrSpRxCnd_pre10 pRawCommNubwDI0pIsrExtInt_pre10MedCommNubReturnBioIntCtl rgCommLineEoiClassCrashMediateIntHandlerPSend6 0`UTTTTT T TTTTTTTTTT "$&U  QVRWU& &8&\ &T$&6.&&6. u@&T(8>&&t& >t> u"]_Z^Y[X&(&*&,P6(6,6* u6.T(8>˚aAUD&60P&6.&>0&\ &T$S&]&6.&T(8>%DVVU0U78UW$>0>(>>>>3GU^] A T TINITCOMM_PRE10[PLM86 V2.307/02/86 11:14:3ؖ9STACKMEMORYCODEDATACONSTINITCOMM_PRE10_CODEDGROUPh@$ HwH TRD., Kn INITCOMMLINE_INITCOMMISRINTERNALfCHANGECOMMLINEBAUDRATE_RESETCOMMLINE_)PARSECOMMLINESPEC_a7;IOINTCTLEOICLASS RGCOMMLINE IOEXTCTLREGSETCOMMISRRAWSFN SETCOMMISRRAWCURRENTOSVERSIONDIV32 GETMODULEID GETPSTRUCTURE GETUSERNUMBERLOCKIN RESETCOMMISRVALIDATECOMMLINEHANDLE PMEDCOMMNUBPSPURIOUSRAWCOMMISR RESETCOMMPORTPISRTXDATA_PRE10PISREXTINT_PRE10PISRRXDATA_PRE10PISRSPRXCND_PRE10A o.,} DXPH@b 8"b&p@ *2Kn,X` %KР F;@0 Ec0123abcdABCDjUQQFPF uJ^SvFPaF u1~tB&~tCv^S^ SSvf] V $\T\\fU^&G&O;t t u.^&GsA!s&&b< s^&G&;Gt=FPFPF t@Fs-F ;wB;t@~wA" €>b "FFrPPFPF u^&GF&G&G&G&G &G &G&GF&G &G>bs`b<s<sFMFG>b sDPP PF t!< uFF <t<uFFvwvPSSSSPPPP>bs?F JNH L,*.`/8\VĔ̶V Ѝ׍ލ 3AFV UfņŌŒŘŞͩVŲžčʍЍ֍܍hUF"D>bs?F FH>b sDF " &F F>b sP  - zFvvPSSSSPPPPF t>b s_vP^&w5>brD>b s=^&u No&&ߋNo&& o&&FFwZ>b s ȰN ND !'-3;>BO[agmsyāĄčĚġħĭijĹĿōˍэ׍ݍ 06<BHSVd|ŃśŮŸ†׍jC+NFv^&xuFo&&  o&F&Fuo&&|^&u&tvP^&G& GPMFNt#v"FVb<r :sF0؍F^FFwU^&Hs&@^&Z&P-vF^&Z&PS^&@_[&@%  log.sys badBlk.sys DebuggerN.sys Samgenall.asmZ&PFu^&^&G Z&W"F&G,SF^ &&O&G]+%1Cx̉V ĕĥĴ;VOWؠUQQv vF uc>b s~ t=Qv Pv$=~ v@6~ uF FFwN s v Pvn Fu] V:)UQvvF uvF u v ]> VV נ_UF0؍F^FFw^&Z&PFu^&_ &G"v拄&G$&G&>b u &G(F%F^&O(&G*F^&G.]S/T\djqĄď%aUF uGs&&?s/vF@Ṁ+ȃ6"Svls&&? seF u v v拔6F=s&SP&Sv1F!< udF1UFFF t~uHF؋*;FwFFڋFs"PF@6^^㋇FF.(FV^㋇FRT(Fv拔FF]L74;CVNfsĂ̍Vĕ̝VĬߍ1MaU~ &N u+JVuF F~ >Nu+JBVu~ ]Nu+JBVNF+ȃrCw>NF+ȃu ^ &80u&vN^ &c u+JVu<F%^&] ĎtZZ crashDump.sysNls.asmInitComm_pre10.objfileHeaders.sysmfd.sys sysImage.sys HdInstall.fls$Software Development Diskette 2 of 2RequestTemplate.txt Debugfile.run Wrap.run Dump.run Samgen.mdf Samgenall.objNls.mdfCommStatus_pre10.objCommNub_pre10.obj& W^ 01737-2/2>a ba b46iSYS ReleaseNote,;9|M^SYS ReleaseNote,9{`fileHeaders.sysmilosysIa bIa bIa bhhmfd.sysmilosysLa bLa bW5blog.sysmilosysNa bNa bNa bX= sysImage.sysmilosysPa bPa bPa b badBlk.sysmilosysRa bRa bRa b&  t Wrap.runmilosys a ba b>CbmznYz Dump.runmilosys a ba b>Cbef{ crashDump.sysmilosysTa bTa bTa bo HdInstall.flsmilosysXa b\a bc>Cb2$Software Development Diskette 2 of 2milosys]a b_a b_a b+ RequestTemplate.txtmilosys `a bda b>Cb K Debugfile.runmilosys ga bva bz>Cb78( DebuggerN.sysmilosys va ba b>Cb-L.'  Samgen.mdfmilosysa ba b>CbN8 Samgenall.objmilosysa ba b>CblNls.asmmilosysa ba b>CbE|`Nls.mdfmilosysa ba b>Cb-..8 Samgenall.asmmilosysa ba b>Cb=\>CommStatus_pre10.objmilosysa ba b>CbbbCommNub_pre10.objmilosysa ba b>Cb InitComm_pre10.objmilosysa ba b>Cb'  _^[ ReleaseNoticemilo ReleaseNote,a ba ba b.MP > bbkNDIrvjill"d!c ba`( ]\ [ !Z!"Y"#X#$W$%V%&(   O,- N-.U&'T'(S()R)*Q*+P+,)  M./ L/0 K01J12I23|3 ReleaseNotice CONVERGENT TECHNOLOGIES RELEASE NOTICE FOR 1.0 Standard SoftwareII (SAA-2000) Revised June 26, 1986 SECTION TITLE PAGE 1.0 Description of Programs 2 2.0 Changes from Prior Version 6 2.1 SPRs Closed in This Release 6 2.2 Changes from Prior Release 8 3.0 Contents of Distribution Diskettes 14 4.0 Software Installation 21 4.1 Required Hardware 21 4.2 Theory of Installation 21 4.3 Installation Procedures 23 4.4 Entering Disk Drive Parameters and Bad Spot Inf)  tted listing utility InstallQMgr.run Queue manager installation utility InstallSpl.run Printer spooler system service IVolume.run Disk volume initialization utility LCopy.run File copying utility Librarian.run System library utility Linker.run System linking utility LInstall.run Software installation utility MathServer.run Allows multiple programs to use the 80287 math co-processor PartitionStatus.run Partition status utility PLog.run System error/status log reporter Print.run Printer spooler printing utility QueueMgr.run Queue manager Restore.run File archive restoration utility ResumeCluster.run Utility for resuming cluster operation SelectiveBackup.run File archive utility SetDirectoryProtection.run Directory protection utility SetTime.run Time utility SignOn.run User login utility SpoolerStatus.run Spooler status utility SubCmd.run Submit file invocation utility Submit.run Submit file processor Sync.run Allows an SRP JCL file to be synchronized on different boards SyncStatus.run Allows the user to moniormation 41 5.0 System Software Compatibility 46 5.1 Workstation Environment 46 5.2 SRP Environment 46 6.0 Required 47 6.1 Files for NGEN Bootable Media 47 6.2 Files for SRP Bootable Media 48 7.0 Hardware Information 49 7.1 Hardware Configurations Supported 49 8.0 Resource Requirements/Utilization 50 8.1 Memory Requirements/Utilization 50 8.2 Disk Requirements/Utilization 51 9.0 Supplementary Information 52 9.1 Native Language Support 52 9.2 Creating a Bootable Backup Floppy 54 9.3 Merged SRP and Workstation Utilities 56 9.4 Miscellaneous Information 58 10.0 Documentation Updates 60 11.0 Known Errors and Omissions 65  NOTE This Release Notice contains installation procedures for CTOSII Operating Systems and Standard SoftwareII. The bulk of this Release Notice, however, covers ONLY Standard SoftwareII. Detailed Operating System information is contained in a separate Release Notice for the CTOSII Operating System.  1.0 DESCRIPTION OF PROGRAMS This Release Notice describes Standard SoftwareII version 1.0. This section and the sections that follow provide a description of the product, contents of the Distribution Diskettes, installation procedures, and other information pertinent to this release of Standard SoftwareII. Standard SoftwareII version 1.0 is intended for use on NGEN's and SRP's. There is no installation of Standard SoftwareII provided for AWS's or IWS's directly. However, a Remote update is provided to update any master - SRP, NGEN, IWS, or AWS. (The current release of Standard Software for AWS's and IWS's is 10.2 with a 10.3 Update.) Version 1.0 Standard SoftwareII Distribution Diskettes consists of: o 2 NGEN Initialization diskettes o 1 SRP Qic Installation Tape o 1 SRP Syquest Installation Cartridge o 7 Standard Software Utilities diskettes o 2 Software Development diskettes o 2 NGEN Operating System diskettes o 2 SRP Operating System diskettes o 3 Operating System Build diskettes {Version 1.0 Standard SoftwareII includes the following programs: Assembler.run System assembler ATE.run Asynchronous Terminal Emulator BackupVolume.run Disk volume archive utility} Batch.run Foreground batch processor Bootstrap.run System bootstrap utility CheckConfig.run NGEN X-Bus configuration reporter ChgVolName.run Disk volume name utility ClusterStatus.run Cluster status utility CmdFileEditor.run System command file editor Command.run System command file utility for adding a command CreateConfig.run Serial and parallel port configuration utility CreateMsgFile.run Utility for making a binary message file from text file DebugFile.run Run file or crash dump file debugging utility DisableCluster.run Utility for disabling cluster operation Dump.run Hexadecimal file dump utility EditorII.run Text editor Exec.run System command interpreter Files.run File listing utility FloppyCopy.run Floppy copy utility Format.run Forma* tor the synchroni-zation of the boards on an SRP SysInit.run System initialization utility UserFileEditor.run User configuration file editor VolumeStatus.run Disk volume status utility Version.run Displays version numbers of run files XBif.run NGEN X-Bus system service XC002Server.run NGEN XC-002 communications module system service Wrap.run Wraps data into object files 2.0 CHANGES FROM PRIOR VERSION 2.1 SPRs CLOSED SINCE STANDARD SOFTWARE 10.2/10.3 A513 LCopy ignoring password protection. A1084 Separators in date on Signon screen are incorrect for international customers. A1290 Specifying '[ptr]b' as the log file to Backup Volume cuases an error 905, no such queue. (Fixed in 10.2) A1389 Floppy copy command form incorrectly reflects defaults A1406 Plog shows an unlisted error type 65528 and cannot format this entry. A1607 Swapper does not handle NEAR returns in overlays correctly. Infinite loops occur. A1703 The XC002 Server does not work correctly on a Single-partition Operating System. (Also A3016) A1800 Librarian cannot properly handle large model objects produced by Fortran 86. A1828 Wildcarding routines do not work correctly over CT-Net. A1831 An Iop master is shown as master version on an SRP system. A1834 Using the Files command with a wild card and an invalid password reports nothing. A1835 Command File Editor returns Access Denied (status code 219) when attempting to write a file opened with mode read. A1850 SetPartitionName works incorrectly on SRP when user number 0 is specified. A1865 Using a function key to invoke a submit file will sometimes roport an erc 210. Executive II 1.0 now opens a file long-lived rather than short-lived. A1879 IVolume incorrectly calculates the logical sector number of bad spots on Winchester drive. A1915 Running ClusterStatus.run when the cluster is down sometimes results in a Debugger call A1943 When installing a spooler at a workstion without a printer, the station locked up. A1980 Non-wildcarded file names are not treated as an error condition in Files if they do not exist. A1981 (also A1829, A3004) The Files command no longer gives a full (or partial) path when listing explicit files with details on. The path portion of a file name is stripped when an explicit file name with a path is given, but appears when wildcarded file names are used. A2014 Signon fails when a Disable Cluster specifying a time limit has been done. A2023 In programs using Communications Byte Streams, when CTS handshaking is used, receiving system does not drop RTS line before buffer-full condition; program terminates with erc 2346. A2050 The List command does not report an error on files in the file list which are non-existent. A3007 When a PD-001 (mouse) is connected, the debugger gets input on every mouse motion.  These events are treated as spurious keystrokes. 01566 MBackupVolume will not backup to a password protected volume. Error 219 is returned. 02046 ATE duplicates bytes when receiving files (F6 key). Buffer pointers wrap around after 64K bytes received. {02834 Installation of the 10.0 Queue Manager on an SRP dies with an erc 911 if the last line of the Queue.index file does not end with a new line character.} 10023 Linker crashes with erc 27 if there are more than 18 libraries specified. 01171 MVolumeRestore and MVolumeBackup require a 2nd archive file when backuping up a cartridge that has been MIvolumed with the minimum parameters. The MIvolume results in disk free space of 9730 blocks which exceeds the archive file size. 10183 When LCopy detects an input error, specifically a 203, the message is displayed requesting Go, Cancel, Finish or F1. When the file is made available, in this case the floppy was changed, and F1 is pressed, LCopy returns to the executive without copying the file, as if Finish was pressed. If F1 is pressed agin (in the executive) to restart LCopy the file is sucessfully copied. the F1 key in LCopy works as advertised for output errors, eg Erc 230. 2.2 CHANGES FROM STANDARD SOFTWARE 10.0/10.2/10.3 {A. Loadable request ut*  available on 80286 NGEN's. The server is installed automatically by the Operating System at boot time.} {I. Assembler: The Assembler now supports the new instructions introduced with the Intel 80186 and 80286 processors. See the iAPX 286 Programmer's Reference Manual for more details.} {J. Debugger: The Debugger, when running on a 286 NGEN with more than 1 Megabyte of memory, with PMOS installed allows debugging in protected mode. Information of debugging in protected mode is contained in the Engineering Update for PMOS which is included in the CTOS Programmer's Guide.} {K. Background Batch: As of CTOSII 1.0, the "Background Batch" facility is no longer supported. No new run files are supplied, and old versions will not work. Foreground Batch is still supported. See the CTOSII CTOSII CTOSII System Administator's Guide for details.} {L. Exec command table: The capacity of the Exec command table has doubled. The Exec automatically doubles the space reserved for commands in the command file when it iilities: In CTOSII, all loadable requests are contained in a single loadable request file, Request.sys, instead of in multiple Request.n.sys and MRequest.n.sys files. Two new utilities, List Request Set and Make Request Set, can be used to create the merged binary request file from a simplified text file and to translate a binary file back into text form. See the ExecutiveII Manual for more details on these two new utilities.} {B. Install command: Because of the change in loadable requests, there is now a new way to install applications software packages. In the past, one could install a new package by inserting a diskette and submitting the file, [f0]HdInstall.sub. This is no longer allowed. You must now use the Install command to install software. The Install command invokes a series of submit files which have been specifically designed to update the proper loadable request file(s). If the Install command is not used, an erc 31 will generally result when an attempt is made to use the new package. The new Install command takes an optional parameter, the floppy drive from which to install. If you are writing installation submit files, you can now check the first parameter for the device name. The device name received will include the device brackets "[" and "]", e.g., [f0].} {C. Native Language Support: Many of the Standard SoftwareII run files have been modified for native language support. Messages are contained in a separate file, ExecMsg.bin. The corresponding text file, ExecMsg.txt contains comments which allow for easy editing and/or translation. The utility, Create Message File, is used to convert the text file into its binary form. Use of Native Language Support is described in Section 9, "Supplementary Information," below.} {D. EditorII: A new text editor, EditorII, is provided. This multi-window editor is documented in the EditorII Manual. AwsEditor.run, IwsEditor.run, Editor.run, and t1Editor.run can be safely deleted as EditorII.run completely replaces all previous versions of the Editor. The command Edit may also be removed. Note: The old editor will not work on the new GC003 graphics module, you must use EditorII.} {E. Files command: The Files utility has been completely rewritten. Files now displays a sorted list in multiple columns and also permits use of exclusionary wildcards. See the ExecutiveII Manual for details.} {F. Merged SRP and workstation utilities: Utilities that formerly had separate run files for SRP and workstation environments have been merged. For example, mCreatePartition.run is now called CreatePartition.run. Details are discussed in Section 9, "Supplementary Information," below, and in the ExecutiveII Manual.} {G. Ctos.lib: The diskette labelled Software Development Utilities 1 of 2 contains the CTOS library, Ctos.lib. This library reflects a merge of the workstation and the SRP versions of Ctos.lib.} {H. Math Server: There is a new Math Server, MathServer.run. It allows multiple programs to make use of the 80287 math co-processor chip + s necessary to use the larger file.} {M. Communications Nub: The "Comm Nub" has been moved from Ctos.lib into the OS. If a communication program is to run on CTOSII only, it is suggested that it be re-linked with the new Ctos.lib as it results in smaller application code and faster performance.} {N. Linking Communications software: The 10.0 release of Standard Software introduced new Communications Byte Streams. The details of these are documented in the obsolete Engineering Update for Standard Software 10.0. The same documentation appears as the Communications Programming chapter in the CTOS Programmers Guide and the procedures are documented in the CTOS II Reference Manual.} { These documents discuss how to link a program if you want it to be used on "pre-CTOS 10.0" versions of the OS. This method of linking actually applies to CTOS versions before 9.4.} { In Standard SoftwareII versions 1.0, the defaults for linking have been reversed. That is, by default, if you specify nothing on your link, your program gets communications code that is compatible back to CTOS 9.4. To get compatibility with versions of CTOS before 9.4, you must now explicitly link with the "Pre-10" object modules.} {The following table summarizes the changes in placement of the communications modules: Object Module Old New CommStatus_Pre10 Ctos.lib External CommNub_Pre10 Ctos.lib External InitComm_Pre10 Ctos.lib External InitComm_Pre10Stub External Ctos.lib} {O. Sync and SynchStatus for the SRP: Two new Utilities, SyncStatus.run and Sync.run are available. These utilities allow you to build initialization JCL files on an SRP which synchronize the installation of servers on different boards. Details can be found in the CTOSII System Administrator's Guide.} {P. Sys and SlvAdminAgents on the SRP: Multiple administrative agents are no longer supported. If you wish to continue using SysAdminAgent.run and SlvAdminAgent.run from a prior release, you may do so, but they are entirely unsupported.} {Q. Tape utilities: A great deal of work has been done on the tape utilities. Refer to the CTOSII System Administrator's Guide for details. a) All tape utilities for workstation and SRP have been merged. This includes Tape Backup, Tape Restore, and Tape Selective Backup. QIC tape on the SRP can be used to back up workstation files directly. Multivolume Tape Backup, Restore, and Selective Backup work on the SRP.} {b) In order to save disk space when installing Standard Software II on a cluster workstation, the tape run files are not copied and the commands refer to run files at the master. If you wish, you can copy these run files to your local hard disk and use the Command File Editor to modify the run file names to refer to your local hard disk.} {c) When using QIC tape on an NGEN, the tape utilities now attempt to use the local QIC drive(s) first. If there is no local tape drive or it is in use, then the master's tape drive is used. This is the reverse of previous releases of QIC tape software.} {d) If you wish to use the Standard SoftwareII QIC tape utilities on a pre-CTOSII version of the OS, you must install the QicServer first.} {e) The naming convention for the half-inch tape configuration files has been changed. The files MWS>TapeConfig.sys and CWS>TapeConfig.sys are no longer used. The new names of the type TapexyConfig.sys, where 'x' is the SRP board number or zero for IWS, and 'y' is the daisy-chain number starting with zero.} {f) If you are at a cluster station with a QIC tape server installed and you want to use the half inch drive at the master, you must de-install the local server first in order to use the master's tape drive.} 3.0 CONTENTS OF DISTRIBUTION DISKETTES The Standard SoftwareII Distribution Diskette set is your master copy, and has been shipped write-protected. It should not be write-enabled, nor should it be used as a working copy. {SRP QIC TAPE and SYQUEST: SRPCp.sys SRPSp.sys SRPDp.sys SRPTp.sys SRPFp.sys SysImage.sys Bootstrap.run mIvolume.run ChgVolNamei.run mIvolumei.run CLI.run Qic+  Retension.run WeeklyBackup.sub Standard Software Diskette 4 of 7} {Diskette 5 of 7, directory HdInstall.fls MQicServer.run MfAdminAgent.run MSpoolerMgr.Run MHisto.run MSpoolerStatus.Run Histoproc.run MTapeServer.run MInstallproc.run SlvAdminAgent.Run MInstallServer.run SysAdminAgent.Run MIvolume.run TapeConfigure.run MPartitionStatus.run WsAdminAgent.run Standard Software Diskette 5 of 7} {Diskette 6 of 7, directory Append.run LoadPrimaryTask.run Copy.run RemoveDirectory.run CreateDirectory.run RemovePartition.run CreatePartition.run Rename.run Delete..Run SetFileProtection.run HdInstall.fls VacatePartition.run Standard Software Diskette 6 of 7} {Diskette 7 of 7, directory ATE.run HdInstall.fls Batch.run Print.run Cdtio.run Request.2.sys ChgVolName.run Request.9.sys CLI.run Request.sys cmvp.run Request.x.sys CreateMsgFile.run Sync.run ExecMsg.txt SyncStatus.run Standard Software Diskette 7 of 7} {STANDARD SOFTWARE DEVELOPMENT DISKETTES Diskette 1 of 2, directory Assembler.run HdInErasei.run Copy.run RemoveDirectory.run CreateDirectory.run Restore.run Delete.run TapeBackupi.run MakeBootTape.run TapeRestorei.run Menu.run WsAdminAgent.run MfAdminAgent.run Config.sys IvMaxtor53.cnf CP00.cnf IvMicro52.cnf DP00.cnf IvMicropolis85.cnf FP00.cnf IVSyQuest6.cnf ExecMsg.bin Master.cnf IvAtasi46.cnf QicTable.txt IvBall100.cnf RemoteInit.sub IvCdc300.cnf RemoteInit.user IvCdc340.cnf SignOn.txt IvCdc675.cnf SRPInit.jcl IvFujitsu80.cnf Sys.cmds IvHitachi51.cnf TapeConfig.sys IvHitachi85.cnf TapeTable.txt IvMaxtor143.cnf .user} {NGEN INITIALIZATION DISKETTE Diskette 1 of 2, directory .user LInstall.run 1024x768_80sys.font Remote.user 720x348_80sys.font Signon.run Bootstrap.run Signon.txt Exec.run sys.cmds ExecMsg.bin t1Sys.font Hdinstall.sub Vdm_BM.run Init.user Vdm_CH.run InstallVdm.run Update.user NGEN Initialization Diskette 1 of 2} {Diskette 2 of 2, directory .user InstallVdm.run 1024x768_146LocSys.Icon IVolume.run 1024x768_146Sys.font LCopy.run 1024x768_80LocSys.Icon LInstall.run 1024x768_80Sys.font Remote.sub 720x348_80LocSys.Icon Remote.user 720x348_80Sys.font Remote.Reboot.sub Bootstrap.run Signon.run Config.sys Signon.txt Continue.txt SrpAte.sub ContinueInit.sub SrpAte.user ContinueUpdate.sub Submit.run Exec.run Sys.cmds ExecMsg.bin t1Sys.font HdInstall.fls Update.sub HdInstallFont.fls Update.user Init.sub UpdateReboot.sub Init.user Vdm_BM.run Initreboot.sub Vdm_CH.run InstallConfig.sys} {STANDARD SOFTWAREII UTILITIES DISKETTES Diskette 1 of 7, directory ClusterCmds.sub MCmds.sub CmdsUpdate.sub QueueCmds.sub Command.run Settime.run ContinueInstall.sub Signon.txt ContinueInstall.sub StdSS1 CreateBackupFloppy.sub Subcmd.run EditorII.run Sys.cmds Files.run Sys.cmds-initial Format.run Sysinit.run HdInstall.fls Sysinit.txt Install.sub UserFileTemplate.sys InstallNewRequest.sub VolumeStatus.run LocalTapeCmds WsAdminAgent.txt MakeCmd.sub Xbif.run MasterCmds.sub XC002Server.run MasterTapeCmds.sub Standard Software Diskette 1 of 7} {Diskette 2 of 7, directory BackupVolume.run HdInstall.fls ClusterStatus.run MakeRqSet.run CmdFileEditor.run PartitionStatus.run DisableCuster.run Plog.run DisableCluster.run ResumeCluster.run FloppyCopy.run UserFileEditor.run SetDirectoryProtection.run Standard Software Diskette 2 of 7} {Diskette 3 of 7, directory BadSpotReport.run PtrbConfig.sys CheckConfig.run Queue.index CreateConfig.run QueueMgr.run DeInstallqmgr.run Restore.run HdInstall.fls SelectiveBackup.run HdInstallConfig.fls SplbConfig.sys Installqmgr.run SplCnfg.sys InsatllSpl.run SplConfig.sys Installqmgr.run SpoolerStatus.run ListRqSet.run Version.run LptConfig.sys WsAdminAgent.run MathServer.run StandardSoftwareDiskette 3 of 7} {Diskette 4 of 7, directory DailyBackup.sub TapeBackupVolume.run DeinstallQicserver.run TapeConfig.sys HdInstall.fls TapeCopy.run NgenQicServer.run TapeRestore.run QicErase.run TapeSelectiveBackup.run Qic, stall.sub Ctos.lib Librarian.run Developcmds.sub Linker.run HdInstall.fls Software Development Diskette 1 of 2} {Diskette 2 of 2, directory CommNub_pre10.obj Nls.asm CommStatus_pre10.obj Nls.mdf Debugfile.run RequestTemplate.txt DebuggerN.sys Samgen.mdf Dump.run Samgenall.asm HdInstall.fls Samgenall.obj InitComm_pre10.obj Wrap.run Software Development Diskette 2 of 2 Diskette 2 of 2, directory ReleaseNotice} {CTOSII OPERATING SYSTEM KIT DISKETTES NGEN OS KIT Diskette 1 of 2, Directory: 1 InstallOS 2 HdInstall.sub 3 Directory: nStnd.run nMstr.run} {Diskette 2 of 2, directory: 1 4 2 InstallOS 3 HdInstall.sub directory: nClstr.run nClstrLfs.run} {CTOSII OPERATING SYSTEM KIT DISKETTES SRP OS KIT Diskette 1 of 2, Directory: HdInstall.sub Directory: SrpCp.sys SrpSp.sys SrpTp.sys} {Diskette 2 of 2, directory: HdInstall.sub directory: SrpDp.sys SrpSp.sys} {CTOSII OPERATING SYSTEM BUILD DISKETTES Disk 1 of 3, directory HdInstall.sub LinkCtos.sub LinkCtosCmd.sub} Disk 2 of 3, directory Clstr.lib Dbg.lib Init.lib nls.asm nls.mdf RqLabl.obj RqLablAlt.obj SourceDbgNub.lib Disk 3 of 3, directory OS.lib Disk 3 of 3, directory ReleaseNotice {Disk 1 of 3, directory kbd.asm Kbd.mdf Kbd.obj nClstr.asm nClstr.link nClstr.obj nClstrLfs.asm nClstrLfs.link nClstrLfs.obj nMstr.asm nMstr.link nMstr.obj nStnd.asm nStnd.link nStnd.obj Request.asm Request.mdf Request.obj Request_MF.asm Request_MF.mdf Request_MF.obj SrpCp.asm SrpCp.link SrpCp.obj SrpCpDeb.asm SrpCpDeb.link SrpCpDeb.obj SrpDp.asm SrpDp.link SrpDp.obj SrpDpDeb.asm SrpDpDeb.link SrpDpDeb.obj SrpDpTape.link SrpFp.asm SrpFp.link SrpFp.obj SrpFpDeb.asm SrpFpDeb.link SrpFpDeb.obj SrpFpQic.link SrpSp.asm SrpSp.link SrpSp.obj SrpSpDeb.asm SrpSpDeb.link SrpSpDeb.obj SrpTp.asm SrpTp.link SrpTp.obj SrpTpDeb.asm SrpTpDeb.link SrpTpDeb.obj SrpXp.asm srpXp.link SrpXp.obj sysgen.asm sysgen.mdf} 4.0 INSTALLATION PROCEDURES {4.1 REQUIRED HARDWARE Installation is performed in one of four modes: INIT, UPDATE, REMOTE, or SrpATE. Section 4.2 supplies the details of these different modes. On an NGEN workstation: o Init: Require hard and floppy drive. o Update: Require hard and floppy drive. o Remote: Require floppy attached to master via cluster cable. On an SRP: o SrpAte: SRP must have a QIC or Sysquest drive and an NGEN with a floppy drive attached via cluster cable and attached via RS232 crossed cable. o Remote: Requires an NGEN with a floppy drive attached to master via cluster cable. *** IMPORTANT *** A minimum of a 20 megabyte hard disk is recommended for installation of Standard SoftwareII. All Operating Systems will fit in a SysImage of 512K.} 4.2 THEORY OF INSTALLATION Installation Modes: Init, Update, Remote and SrpATE Installation of Standard SoftwareII either initializes or updates a system volume. Use Init when you want to initialize a new disk as your system volume or when you intend to discard all the information currently on your system volume. The intent is to copy all new software from the floppy disks to the local hard disk. The Init mode installation for an SRP starts from QIC tape or Syquest, then proceeds with a Remote installation from floppies. {Use Update when your system volume contains valid information. The intent is to update an existing local hard disk with new software.} {Use Remote to update Standard Software at the master from a cluster workstation. Remote installation is useful when the master has no floppy disk - for example, an SRP master. The intent of the REMOTE installation is to copy new software from a local floppy to the master's hard disk.} Use SrpATE to initialize an SRP. The installation begins by booting the SRP off a QIC tape or Syquest and giving commands via a NGEN workstation r,  nded that you do the following. First, delete all unneeded files. Then backup the hard disk to floppies or tape. On a separate floppy, save away an additional copy of your command file (Sys.cmds), SignOn.txt, and any specially modified config files. Proceed with an Init installation as described below. Then perform a Restore specifying "no" for the parameter [Overwrite OK?]. Finally, copy back your saved command files, SignOn.txt, etc. Give a Files command specifying [Sys]SysImage.sys in the [Filename] parameter and specifying "yes" to the [Details?] parameter. This will tell you how much space is reserved on your hard disk for the Operating System. If the value for Sectors is less than 512 (presumably 384) then you MUST perform the above procedure. As of CTOSII, you must have 512 sectors reserved on your system volume for the OS. It will no longer fit in 384. It is always a good idea to keep a backup of your hard disk. Also, the Backup, IVolume, Restore procedure reduces fragmentation of theunning the Asynchronous Terminal Emulator (ATE). The installation initializes the hard disk of the SRP and copies a minimal set of Standard Software to the hard disk. The installation then proceeds via the Remote mode. Installation Steps Standard SoftwareII installation consists of the following steps. Section 4.3 below gives detailed steps that you can follow to install your software. Step 1: for SRP Initialization only. If you wish to initialize the hard disk of an SRP, boot the SRP from the QIC tape or Syquest. You then initialize the hard disk and copy a subset of Standard Software to the hard disk. (Within Section 4.3, Step 1a discusses QIC tape and Step 1b discusses Syquest.) Step 2: for SRP Update only. If your SRP is currently running some version of CTOS, you need to update the OS's on the SRP before installing Standard Software. Step 3: installation uses the Initialization floppy diskette as a system volume and initializes or updates the hard disk to function as a system volume for workstaions and SRPs. Step 4: the workstation reboots and copies Standard SoftwareII onto the system volume. Optional steps: {Step 5: the installation of the Standard Software Development Utilities. You should install these utilities if you plan to do any software development on your system.} {Step 6: the installation of a different Operating System or OS's. For example, the installation leaves a cluster local file system version of the Operating System on your hard disk. If you wish to run a stand-alone version of the OS, it can be copied on at this point.} Step 7: the installation of the CTOSII Build diskettes. This set of diskettes allows you to build any version of CTOSII. It also makes it possible for you to modify SysGen parameters if you want to customize your OS. {4.3 INSTALLATION PROCEDURES The installation procedure described below is appropriate for NGEN workstations and SRP's. Installation may display error messages while creating directories, copying files, deleting files, or renaming files. You may disregard these error messages.} There are three modes of installation; Init, Update, and Remote. The Init and Update modes of installation are intended for NGEN's with a local hard disk. The Remote installation is intended for updating the hard disk of the master, be it an SRP or NGEN. _________________________________________________ IMPORTANT NOTE: BEFORE DOING AN UPDATE INSTALLATION If you intend to do an Update installation, it is strongly suggested that you delete any unneeded files before proceeding with the installation. For example, you may wish to delete all files in the temporary (dollar sign) directories, all "old" files, all ".tmp" files, and any other files that you do not use. This should be done to ensure that enough disk space has been cleared to allow the installation to run through to completion. Standard Software II 1.0 requires a minimum of a 20 megabyte hard disk for the System volume. In fact, when updating from SRP Ctos3.x or CTOS9.x to CTOSII, it is strongly recomme-  hard disk. _________________________________________________ Characters that you must type are shown in boldface. Special keys, such as RETURN and GO, are shown in uppercase. STEP 1 a) - SRP INITIALIZATION FROM QIC TAPE The equipment required for SRP initialization is an SRP (which is defined as a system with a master processor, either a File Processor or Data Processor, and at least one Cluster processor) and an NGEN workstation with at least one floppy drive. {A. Connect an RS232 crossed cable from channel 3 of CP00 of the SRP to port B of the workstation. Connect an RS422 cable from line 1 of CP00 to the workstation. Place a terminator on the free cluster connector of the workstation. Also, place a terminator on the other port of Line 1 of the SRP.} {B. Insert the NGEN Initialization Diskette 1 of 2 into the floppy drive. Press the reset button. After the SignOn screen appears, remove the first diskette and insert the NGEN Initialization Diskette 2 of 2. Log on with the user name of SrpATE. When prompted, insert the Standard Software Diskette 7 of 7 and press the GO key. The screen will clear and the ATE banner will be displayed. The third line contains a double bar running the width of the screen. The screen underneath the double bar will remain empty until step E.} C. Load the "1.0 CTOSII Initialization" QIC tape in the drive. {D. Power up the SRP if it is not on already. Turn the key on the front panel of the SRP to the "off" position, then to the "manual" position. This initiates the booting process. Wait until the number 20 is displayed on the front panel of the SRP. Now check the lights on CP00 (to do this you must walk around to the rear of the SRP and open the rear door of the enclosure which contains CP00.) The lights should appear as follows: TOP: Off On Off On Off Off Off Blinking} {E. A menu will appear on the screen of the workstation after 3 to 5 minutes. Type the numeral "1" to initialize the system volume. You need to answer the prompts presented. Press RETURN after answering each. Mistakes can be corrected by pressing the BACKSPACE key. If you notice that you have made a mistake in a previous field, you can simply press the RETURN key enough times such that the entire menu cycles through again.} {If you are booting from QIC tape (your primary enclosure is called a "C" box), the device name and device password are the two characters "d1".} {Although this installation is not packaged for it, if you were booting from Half-Inch tape your primary enclosure is called an "E" box, the device name and device password would the two characters "s0".} { If this is the first time you are initializing a hard disk, you should read the discussion of initializing volumes in the Systems Administrator's Guide. The values given below as answers to the "Maximum number of ..." prompts, are appropriate for a forty megabyte disk. You may wish to alter them if you have a larger disk. For the rest of the prompts, the recommended values are as follows: System Image Sectors: 512 Log File Sectors: 32 Crash File Sectors: 1536 Maximum number of directories on volume: 50 Maximum number of files on volume: 4000 Maximum number of files in SYS directory: 400 Surface tests: 8 Bad Spots: For information on bad spot formats, see section 4.4 of this release notice. After you have filled out the form, press the GO key on the workstation.} {When you specify many surface tests, the initialization of the volume can take a long time. For example, a forty megabyte drive running eight surface tests can take up to 45 minutes. It is strongly recommended that you run eight surface tests when initializing for the first time. If the disk is already initialized you should run at least one surface test.} {After completion of the volume initialization, press the RETURN key to reload the menu program.} {F. After the menu reappears, type the numeral "2" to restore files to the volume. Then answer the prompts as follows (for any pro-  re is called an "A" box. The device name and device password are the two characters "d1".} { If this is the first time you are initializing a hard disk, you shoud read the discussion of initializing volumes in the CTOSII Systems Administrator's Guide. The values given below as answers to the "Maximum number of ..." prompts, are appropriate for a forty megabyte disk. You may wish to alter them if you have a larger disk. For the rest of the prompts, the recommended values are as follows: System Image Sectors: 512 Log File Sectors: 32 Crash File Sectors: 1536 Maximum number of directories on volume: 50 Maximum number of files on volume: 4000 Maximum number of files in SYS directory: 400 Surface tests: 8 Bad Spots:  For information on bad spot formats, see section 4.4 of this release notice. After you have filled out the form, press the GO key on the workstation.} {When you specify many surface tests, the initialization of the volume can takmpt not specifically listed here, respond by just pressing RETURN): Archive file: 6 File list from: <*>* To File list: * Overwrite OK?: yes Confirm each?: Press GO After completion of file restoration, press the RETURN key to reload the menu program. The "6" above refers to the sixth file archived on the tape.} {G. After the menu reappears, type the numeral "2", again, to restore another file to the volume. Then answer the prompts as follows (for any prompt not specifically listed here, respond by just pressing RETURN): Archive file: 7 File list from: <*>* To File list: * Overwrite OK?: yes} H. After completion of file restoration, unload the tape from the drive. I. Press the reset key on the front panel of the SRP. Continue with Step 3 below using Remote Installation. STEP 1 b) - SRP INITIALIZATION FROM SYQUEST The equipment required for SRP initialization is an SRP (which is defined as a system with a master processor, either a File Processor or Data Processor, and at least one Cluster processor) and a workstation with at least one floppy drive. {A. Connect an RS232 crossed cable from channel 3 of CP00 of the SRP to port B of the workstation. Connect an RS422 cable from line 1 of CP00 to the workstation. Place a terminator on the free cluster connector of the workstation. Also, place a terminator on the other port of Line 1 of the SRP.} {B. Insert the NGEN Initialization Diskette 1 of 2 into the floppy drive. Press the reset button. After the SignOn screen appears, remove the first diskette and insert the NGEN Initialization Diskette 2 of 2. Log on with the user name of SrpATE. When prompted, insert the Standard Software Diskette 7 of 7 and press the GO key. The screen will clear and the ATE banner will be displayed. The third line contains a double bar running the width of the screen. The screen underneath the double bar will remain empty until step E.} C. Load the "1.0 CTOSII Initialization" Syquest cartridge in the drive. D. Power up the SRP if it is not on already. Turn the key on the front panel of the SRP to the "off" position, then to the "manual" position. This initiates the booting process. Wait until the number 20 is displayed on the front panel of the SRP. Now check the lights on CP00 (to do this you must walk around to the rear of the SRP and open the rear door of the enclosure which contains CP00.) The lights should appear as follows: TOP: Off On Off On Off Off Off Blinking E. Depress the RETURN key on the workstation. A dollar sign ($) should appear. Type the word "SrpInit" followed by the RETURN key. {F. A series of prompts will appear on the screen of the workstation. You need to answer the prompts presented. Press RETURN after answering each. Mistakes can be corrected by pressing the BACKSPACE key. If you notice that you have made a mistake in a previous field, you can simply press the RETURN key enough times such that the entire menu cycles through again.} {When you boot from a Syquest cartridge, your primary enclosu. e a long time. For example, a forty megabyte drive running eight surface tests can take up to 45 minutes. It is strongly recommended that you run eight surface tests when initializing for the first time. If the disk is already initialized you should run at least one surface test.} {After completion of the volume initialization, press the RETURN key to reload the menu program.} G. After volume initialization, the SRP will copy the necessary files to drive [d1]. The last file to be copied is WSAdminagent.txt. H. After completion of the copying, remove the Syquest cartridge from the drive. I. Press the reset key on the front panel of the SRP. Continue with Step 3 below using Remote Installation. STEP 2 - SRP UPDATE ONLY If you have an SRP that is already running some version of CTOS, you must update the Operating System before installing Standard Software. For this installation, you must have connected to the SRP an NGEN workstation with at least a floppy drive. A. Insert the disk labelled SRP OS Kit 1 of 2 in the floppy drive of the NGEN. Type: Install GO B. Insert disk 2 of 2 when prompted to do so. {C. This installation places new versions of Master.cnf on your disk and copies the existing one to Save>Master.cnf. Note that the names of the OS's have changed from the previous releases. You should edit the new Master.cnf to match your hardware configuration as in the saved copy.} D. Reboot the SRP. Continue with Step 3 using Remote Installation. STEP 3 - INIT, UPDATE, or REMOTE INSTALLATION: A. If the workstation is not already on, turn the power on. {B. Place the Standard SoftwareII diskette labeled "NGEN Initialization 1 of 2" into floppy drive [f0].} {C. Press the small hardware RESET button located on the upper left rear of the NGEN processor module.} {D. After a short time, the SignOn form appears. Enter a user name, password, and date/time as described below. User Name. Enter the user name "Init" if you are installing software for the first time or if you plan to reinitialize your hard disk.} {  CAUTION: Initializing the hard disk erases all existing files.   } { Enter the user name "Update" if you are updating Standard SoftwareII. You must be running CTOS version 9.1 or later (or 9.5 or later on a 286 NGEN) to perform an Update installation. Enter the user name "Remote" if you are updating Standard SoftwareII on the master from a cluster workstation or if you signed on as SrpATE before. Also, execute the Logout command at the master workstation and on all workstations that are booted from the master.} {Password. A password is optional. Enter a password if you are going to password protect your hard disk during initialization or if you are updating a hard disk that is already password protected.} {  NOTE: Volume and directory passwords are required in order to enable CTOSII file system security.   } { If the system volume is protected, failure to enter the correct password will result in error 219 (access denied) during installation.} {Date/Time. If you have just powered up the workstation, the date/time that is displayed is incorrect (an incorrect date/time is signified by a flashing dim display of the time in the upper right hand corner of the screen). You may correct the date/time by entering it in the format "Mon Jul 7 1986 8:00 am". You can enter any part of this field that is incorrect, and in any order. Press GO to continue.} {E. The next step enables installation to copy only files and commands that are appropriate for your configuration. A form containing the supported software configurations appears. Use the cursor keys, the RETURN key, or the NEXT key to select the appropriate configuration.} The supported configurations are as follows: NGEN Standalone. A workstation with a local hard disk to be run in standalone mode. NGEN Cluster Local File System. A workstation with a local hard disk which is to be connected via an RS422 communications line to a non-SRP Master. NGEN Cluster Local File System on SRP Master. A workstation with a local ha.   need to edit the file, [Sys]Config.sys and modify the entry "SwapFileSize:" to indicate the size you pick. See the CTOSII System Administrator's Guide for details.} {[Sys Directory password]. You may enter a Sys directory password of your choice. This password is used only if a [Volume password] is also entered.} { If the hard disk has previously been initialized, IVolume obtains drive parameters and bad spot information from the hard disk. If this information is not on the disk, IVolume prompts you to enter it. See Section 4.4, "Entering Disk Type Code and Bad Spot Information", for details. Volume initialization may take up to 45 minutes depending on the number of surface tests. It is strongly recommended that you run eight surface tests when initializing for the first time. If the disk is already initialized you should run at least one surface test. Press GO to continue.} STEP 4 - COPY STANDARD SOFTWAREII A. After the various files are copied to the hard disk, the workstation automaticrd disk which is to be connected via an RS422 communications line to an SRP Master. NGEN Master. A workstation with a local hard disk which is to be used as a master workstation. REMOTE SRP MASTER. An NGEN workstation with at least a floppy drive, connected to an SRP master. REMOTE NON-SRP MASTER. An NGEN workstation with at least a floppy drive, connected to an SRP master. This master would be either an NGEN, IWS, or AWS. {  NOTE: This step does NOT cause installation of the corresponding operating system: it only ensures that the Standard Software you install is compatible with the configuration you choose here. After Standard Software installation, you can install the desired operating system using the pre-build Operating Systems contained on the OS Kit Diskettes.  } After selecting the appropriate installation type, press GO to continue. F. If you entered user name "Init" or "Update", a Path command form appears. If you wish to initialize or update a system volume other than [d0], fill in the [Volume] field with the appropriate device name (for example, [d2]). Press GO to continue. {  NOTE: If you wish to designate hard disk drives [d1], [d2], or [d3] as the system drive, all preceding drives must be nonbootable drives. For example, if you wish [d1] to be your bootable system volume, then [d0] must be nonbootable - that is, contain no operating system in SysImage.sys. You can make an NGEN hard disk nonbootable by overwriting its SysImage.sys with a nonexecutable file, such as a text file.   } {G. If you entered user name "Init", the following IVolume command form appears. Note that the period in the "Device name" field means the current pathed volume.} { IVolume Device name . [Device password]  ## Volume name Win [Volume password] [System Image (default = 0] 512 [Log file (default = 0)] 12 [Crash file (default = 0)] 0 or 3000 [Max. directories] [Max. files on volume] [Primary file headers only?] [Max. files in Sys Directory] [Sys Directory password] Sys [Write protect Sys Directory?] yes [Suppress format of medium?] [Surface tests] [Debug?] [Log file] [Extended floppy tracks?] [NGEN hard disk type code] [Bad spots (See Documentation)]}} { You are not required to enter any additional information. However, consider optionally changing the following fields.} Volume Name. You may enter a 12-character volume name of your choice. Volume names must be chosen to be unique within a workstation and between a workstation and the master. [Volume password]. To enable CTOS file system security, enter the password that you wish to be associated with the volume being intialized. {[Crash file (default = 0)]. This parameter determines the size of the file CrashDump.sys. This file is used by the Context Manager and the Operating System to be the default swap file. The recommended size is 3000 sectors. If this is to be your swap file and you enter less than 3000, you will later/ ally reboots and the SignOn form appears. Enter the same user name and password that you entered into the SignOn form at the beginning of installation. Enter the correct date/time if desired. Press GO to continue.} B. When prompted, insert Standard SoftwareII Utilities diskettes 1 through 7 into floppy drive [f0]. After inserting the requested diskette, press GO to continue. {  NOTE: If you are not performing a Remote installation to an SRP, diskettes 5 and 6 will will not actually install anything. However, they must be inserted and removed at the appropriate times to insure successful installation in all modes.  } After the contents of these diskettes have been installed, installation of Standard SoftwareII itself is complete, and users can run the Executive and the utilities that have been installed, as well as various applications programs.} {C. The last step in the installation of standard software is the merging of all loadable request files into [Sys]Request.sys. This is done by using the List Request Set utility to convert all existing loadable request files, along with the version of Request.sys on disk 7 of 7 into one text file, [Scr]<$>Request.txt. Then, Make Request Set is used to convert the text file into the single loadable request file. In the process of doing this, the contents (the actual definition of the loadable requests) are merged. If a loadable request is defined in more than one of the original loadable request files, and the definitions do not agree, then the Make Request Set utility cannot do the merge. Instead, an error message is displayed for each request definition which has duplicate and/or conflicting definitions. See the CTOSII System Administrator's Guide for details on List Request Set and Make Request Set. If no error messages appear, proceed with step 5 below.} { In order to procede with a correct CTOSII installation, these conflicting definitions must be resolved. To do this, you should first, write down the numbers of the request codes for which you receive error messages. Then you must edit the text file, [Scr]<$>Request.txt. Within this file you need to locate the multiple definitions of all offending requests. When you find the definition look backwards in the file to a line which says something like: ;*** "Request.n.sys" This entry tells you the original loadable request file that defined that request. A full list of Convergent supplied loadable request files appears in section 9.4 of this Release Notice. If can determine which definition is in error, you should delete the incorrect definition(s). If you cannot determine which is in error, you may need to call Technical Support.} { Once you have edited [Scr]<$>Request.txt, you must then use the Make Request Set Utility to convert the text file into the single loadable request file, [Sys]Request.sys. Then continue on with the installation.} {STEP 5 - SOFTWARE DEVELOPMENT (OPTIONAL) A. After installation of Standard SoftwareII, you may optionally do a separate installation of the Standard SoftwareII Software Development Utilities. These utilities include the Linker, the Librarian, the Assembler, the Debugger, CTOS.lib, etc. You need to install these diskettes if you want to do any software development on this workstation, including building a custom CTOSII operating system.} { If you entered the user name "Remote" to update a remote NGEN master, you must deactivate the Debugger at the master workstation and at all workstations booted from the master running a pre-CTOSII version of the OS. To deactivate the Debugger, press ACTION-A. If you hear a beep, the Debugger is already deactivated. Otherwise, press CODE-K twice, then press GO.} { Install the diskette labelled Standard SoftwareII Software Development Utilities 1 of 2 and type: Install GO Insert diskette 2 of 2 when prompted and press GO to continue.} {STEP 6 - INSTALL A DIFFERENT OS (OPTIONAL) A. The Init and Update modes of Installation leave a Cluster Local File System version of the Operating System (/  to run the Context Manager on CTOSII, you must install Context ManagerII. No prior versions of the Context Manager will work.  } {4.4 ENTERING DISK TYPE CODE AND BAD SPOT INFORMATION If the hard disk has previously been initialized, the IVolume utility reads the disk type code (on NGEN) and bad spot information from the hard disk. However, if this information is missing, you must enter it in the appropriate fields of the IVolume command form or interactively when prompted by IVolume.} {On NGEN hard disks, a report showing the drive type code and bad spots is attached to the bottom of the disk module. After a disk has been initialized and Standard SoftwareII has been installed, you can give the new "Bad Spot Report" command to obtain a listing of the bad spots on the disk.} {  NOTE: If your disk drive contains bad spots, you MUST enter bad spot information in order for your disk to function correctly.   } {NGEN Hard Disk Type Code A disk type code is a letter (for example, A, B, C) that designnClstrLfs) on the hard disk of the NGEN. If you wish, you can change this to be a standalone or master version of the OS. To install a different version of the OS, insert the NGEN OS Kit diskette 1 of 2 and type: Install GO A prompt will appear asking you which version of the Operating System you wish to install. Enter a digit which represents your choice and press GO. Insert diskette 2 of 2 if prompted to do so.} The second diskette also gives you the capability to set up a master workstation to have cluster workstations booted from them. To copy these operating systems, insert the diskette labelled NGEN OS Kit diskette 2 of 2 into the floppy drive of the master or a cluster station and type: Install GO { A prompt will appear asking you whether you are installing from the master or from a cluster station. Enter a digit which represents your choice and press GO.} STEP 7 - CTOSII BUILD ENVIRONMENT (OPTIONAL) A. This set of diskettes contain all of the CTOSII Build libraries which allow you to build any version of CTOS. It also makes it possible for you to modify SysGen parameters to customize your OS. (The pre-built versions of the Operating System in the previous step were built from these files without changing any SysGen parameters.) To install the build environment, path to the appropriat volume and insert the CTOSII Build Kit diskette 1 of 3 and type: Install GO Insert the remaining diskettes when prompted to do so. This installation creates a directory and copies all files into that directory. See the CTOSII Operating System Release Notice for details on building a customized version of the Operating System. A NOTE ON INIT INSTALLATION If you have backed up your hard disk prior to performing an Init installation to upgrade from CTOS 9.x to CTOSII, then you should follow these steps. A. Give a Restore or Tape Restore command specifying "no" to the parameter [Overwrite OK?]. This will copy back all application and personal files. B. Copy back your Sys.cmds, and other specially modified config files. C. Submit the file, [Sys]CmdsUpdate.sub. This will update your command file to include new commands for Standard SoftwareII. D. If you are running a Standalone or Cluster Local File System version of the Operating System and don't plan to return to CTOS 9.x, delete the following files, Request.2.sys, Request.X.sys, and Request.9.sys. These files contain loadable requests for standard software utilities. The information contained in these files is now contained in the file Request.sys. If you are running a master workstation, you should keep these files around if you are booting diskless workstations from your master that are running pre-CTOSII versions of the Operating System. E. Finally, you must merge any application's loadable requests into [Sys]Request.sys. Give the following command to perform this step: Install New Request File list [Sys]Request.?.sys GO F. Reboot the workstation. {  NOTE ON THE CONTEXT MANAGER: If you wish 0 ates a particular disk drive. It is located on the bad spot report, which is attached to the bottom of the disk module.} {IVolume uses the disk type code to determine drive parameters such as number of cylinders, number of heads, and number of sectors per track.} {Enter the disk type code when prompted to do so by the IVolume utility. Optionally, you may enter the disk type code into the "[NGEN hard disk type code]" field of the IVolume command form.} {The supported disk type codes are summarized in the table below. Note that the "Size" field is unformatted/formatted capacity.} {Code Vendor Size Cyl Heads Sectors A Tandon 12.7/10 Mb 306 4 16 B Seagate 12.7/10 Mb 306 4 16 C reserved D Atasi 46.5/37 Mb 645 7 16 E Quantum 42.7/32 Mb 512 8 16 F MiniScribe 26/20 Mb 612 4 16 G Seagate 26/20 Mb 612 4 16 H reserved J reserved K Micropolis 85/67 Mb 1024 8 16 L reserved M reserved } {If your disk drive is not supported by a disk type code, you may enter the actual drive parameters when prompted to enter the code. Enter the parameter data as cylinders/heads/sectors. For example, if your drive parameters are 1024 cylinders, 4 heads, and 16 sectors per track, enter the parameter data as follows: 1024/4/16} {Bad Spot Information Enter bad spot information when prompted to do so by the IVolume utility. Optionally, you may enter this information in the "[Bad spots (see documentation)]" field of the IVolume command form. Separate entries with spaces. An entry must be contained entirely on a line. If there are many bad spots an at-file may be created through the Editor and used. See the Executive II Manual for details.} Depending on the manufacturer of the disk drive, bad spot information is in one of the formats below. {Format 1   CYLINDER HEAD BFI/# SECTOR 84 1 #4 241 2 #13   } {For units with bad spot information as above, enter a bad spot entry as: 84/1/#4 If there is no sector number, but there is a BFI (bytes from index), then enter the bad spot entry as: 84/1/4 (leave the pound sign off)} {Format 2  TRK HD BYTE COUNT LENGTH(BITS) ------ ---------- ------------ 084 1 02646 04 241 2 08130 39  } or {Format 3   DISPLACEMENT LENGTH CYLINDER HEAD IN BYTES IN BITS 84/ 54 1 2646/ A56 4/ 4 241/ F1 2 8130/1FC2 39/27   For units with bad spot information as in the two examples above, enter a bad spot entry as: 84/1/2646/4} {Format 4   CYLINDER HEAD BYTE OFFSET DEGREE 84/ 54 1 2646/ A56 81 241/ F1 2 8130/1FC2 263   For units with bad spot information as in the last example above, enter a bad spot entry as: 84/1/2646} {5.0 SYSTEM SOFTWARE COMPATIBILITY 5.1 WORKSTATION ENVIRONMENT Standard SoftwareII version 1.0 is intended for use with CTOSII version 1.0. However, Standard SoftwareII version 1.0 is backward compatible for use on diskless workstations booted off of NGEN or SRP masters, or with an IWS or AWS master. To work correctly in these environments, the workstation must be running the following versions of CTOS: IWS 9.1 AWS 9.1 NGEN (186) 9.1 or later NGEN (286) 9.5 or later} Versions of CTOS prior to 9.1 (or 9.5 if required) return status code 247 when running version 1.0 Standard SoftwareII. When running CTOSII, Restore.run version 10.2 or later must be used. Previous versions of Standard Software will return status code 207. It is recommended however, to use Restore.run versionII1.0. 5.2 SRP ENVIRONMENT Version 1.0 Standard SoftwareII can be installed on an SRP master from a cluster workstation. It is intended for use on CTOSII and will not work on any prior SRP version of CTOS. {6.0 REQUIRED FILES 6.1 Files for NGEN Bootable Diskette The following files are needed on a disk or diskette in order for it to be bootable on a NGEN. All files must reside in the directory. Files n0  K BackupVolume.run 104K 259K Batch.run 44K Bootstrap.run 33Kplus size of the bootstrap runfile CheckConfig.run 28K ChgVolName.run 41K ClusterStatus.run 46K CmdFileEditor.run 73K Command.run 42K CreateConfig.run 42K DebugFile.run 87K DeInstallTapeServer.run 45K DisableCluster.run 4K Dump.run 39K EditorII.run 250K Exec.run 102K 166K Files.run 66K 130K FloppyCopy.run 153K Format.run 58K 122K IVolume.run 101K 151K LCopy.run 140K Librarian.run 121K 587K Linker.run 136K 968K LInstall.run 90K MaintainFile.run 120K PartitionStatus.run 26K PLog.run 59K Restore.run 96K 251K ResumeCluster.run 4K SelectiveBackup.run 97K 191K SetDirectoryProtection.run 26K SetTime.run 26K Signon.run 50K SubCmd.run 50K 74K Submit.run 44K 108K SysInit.run 28K QicErase.run 88K QicRetension.run 48K TapeBackupVolume.run 235K all TapeCopy.run 150K all TapeRestore.run 181K all TapeSelectiveBackup.run 235K all UserFileEditor.run 80K VolumeStatus.run 131K 165K {The table below indicates the memory requeeded to boot: SysImage.sys The CTOS system image InstallVdm.run Installs the video Signon.run First user visible program .user User file that allows the user to sign on} {Video: Character map NGEN's: Vdm_CH.run Character map video t1Sys.font Character map font Bit map NGEN's: Vdm_BM.run Bit map video 1024x768_80sys.font High resolution bit map font 720x348_80sys.font Low resolution bit map font} {Files needed to run the Exec: Exec.run Executive run file ExecMsg.bin Executive message file sys.cmds Executive command file Signon.txt Initial message displayed for user (optional)} {Files created by initialization (IVoluming): crashDump.sys fileHeaders.sys log.sys mfd.sys badBlk.sys } {6.2 Files for SRP Bootable Media The following files are needed on a media in order for it to be bootable on an SRP. All files must reside in the directory.} {Files needed to boot: SysImage.sys The CTOS system image For A and C boxes: SrpFp.sys For E boxes: SrpDp.sys} CLI.sys Command Line Interpreter For A and C boxes: FP00.cnf Master file processor configuration file For E boxes: DP00.cnf Master data processor configuration file SrpCp.sys The system image for a cluster processor CP00.cnf The configuration file for the cluster processor Master.cnf Master Configuration file Master.cnf must have at least the following entries: Cp [Sys]SrpCp.sys Include [Sys]CP00.cnf} {Files created by initialization (IVolume): crashDump.sys fileHeaders.sys log.sys mfd.sys BadBlk.sys} {7.0 HARDWARE INFORMATION 7.1 HARDWARE CONFIGURATIONS SUPPORTED Version 1.0 Standard SoftwareII supports the following NGEN hardware modules: CWS Workstations CM-002 512 Kb CM-003 1024 Kb} NGEN Modules CP001/8 8 Mhz 80186 processor CP001/9 8 Mhz 80186 processor CP002 8 Mhz 80286 processor CP002/287 8 Mhz 80286 processor with 80287 numerical processor VM001 12" monochrome monitor VM002 14" monochrome monitor VM-003 14" monochrome bitmap monitor VC001 15" color monitor GC001 graphics controller GC-003 graphics controller KM001 keyboard TM001 voice processor (with modem) VP001 voice processor (without modem) XC002 RS232 port expander XE001 Ethernet module PC001 PC compatibility module HB001 quarter-inch tape module FD001 dual floppy disk FD0A1 dual floppy disk HD002 10 Mb floppy/hard disk HD003 20 Mb floppy/hard disk HD006 20 Mb hard disk upgrade HD011 32 Mb hard disk upgrade HD-020 85 MB hard disk upgrade HD0A1 20 Mb floppy/hard disk HX002 10 Mb hard disk expansion HX003 20 Mb hard disk expansion HX011 32 Mb hard disk expansion HX020 85 Mb hard disk expansion {8.0 RESOURCE REQUIREMENTS/UTILIZATION 8.1 MEMORY REQUIREMENTS/UTILIZATION The table below indicates the memory requirements of interactive programs included in Standard Software.} {When two numbers are given, the first indicates the minimum memory requirement and the second indicates the maximum amount of memory that the program can use.} Assembler.run 95K 127K ATE.run 83K 1271 irements of installed system services. XBif System Service XBif.run 4K XC-002 System Service XC002Server.run 8K Queue Manager InstallQMgr.run QueueMgr.run 18K Spooler InstallSpl.run 43K Tape Servers NgenQicServer.run 78K mQicServer.run 84K MTapeServer.run 37K all} {8.2 DISK REQUIREMENTS/UTILIZATION The table below indicates the number of disk sectors required by Standard SoftwareII Utilities for various configurations. NGEN Standalone 5000 sectors NGEN Cluster Lfs 4500 sectors NGEN Master 5200 sectors SRP Master 7000 sectors The table below indicates the number of disk sectors required by Standard SoftwareII Development Utilities for various configurations. Master 2100 sectors Standalone or Cluster LFS 2100 sectors} {9.0 SUPPLEMENTARY INFORMATION 9.1 NATIVE LANGUAGE SUPPORT The following Standard SoftwareII run files offer native language support - that is, they obtain all of their messages from a message file: CmdFileEditor.run Command.run Exec.run Files.run Format.run LInstall.run SetDirectoryProtection.run SetTime.run SignOn.run SubCmd.run Submit.run SysInit.run VolumeStatus.run} {The message file appears in two different forms; ExecMsg.txt is the text message file which contains the human-readable text strings, and ExecMsg.bin which is the binary form that is actually used by these programs. The new utility, Create Message File is used to convert this text file into its binary form. See the CTOSII System Administrator's Guide for details on Create Message File command.} {The strings in ExecMsg.txt can be edited, using the Editor, to be customized and/or translated to another language. Although the message text file can be edited in the Word Processor or Document Designer, it is not advisable to do so as these programs insert page breaks (formfeed characters) automatically. An inadvertent page break may cause undesired results.} {A comment at the beginning of the ExecMsg.txt explains its format and some special capabilities for using macros. Colons must be used as delimiters for a message number or erc number. Double quotation marks have been used as the string delimiter for the text strings. However, any character can be used as delimeters for the text string as long as beginning and ending delimiters match. If the character " appears in the string, you must use another charcter, such as #, as the delimiter. Comments can be inserted into the message file by starting the line with a semi-colon.} {It is advisable to copy ExecMsg.txt to another file and make any edits to the new file. After all edits have been made, use the command Create Message File to produce a new binary message file. The name [Sys]ExecMsg.bin should be specified as the output file since, at this time, there is no facility for use of alternate binary message files.} {Note that the file ExecMsg.bin must not be in use (for example, by a run file in another context) when you give this command, or status code 220 (file in use) results.} If you have made editing errors such as leaving unbalanced delimiters, CreateMsgFile.run reports the first error encountered and shows the line in which it occurs before exiting. (In such a case, ExecMsg.bin remains unchanged.) When CreateMsgFile.run exits, the Executive is reloaded and immediately accesses the new ExecMsg.bin No reboot is necessary. If the Executive or most of the other named programs cannot access the message file or a message within the file, they exit either to the Context Manager or (if the Context Manager is not running) to SignOn with the message: Cannot access or use message file. (Error 13506) This message is not available for editing. If this error condition occurs during initialization of the Executive, it is necessary to reboot the system from a bootable floppy disk in order to gain access to an Executive on the floppy disk, from which any necessary changes can be made. {Signon.run, SysInit.run, and ClusterStatus.run, however, retain a full set of English messages within their own code. In the event of a message file failure, these 1  n CreatePartition.run (formerly mCreatePartition.run) Delete.run DisableCluster.run Dump.run Files.run LCopy.run LoadPrimaryTask.run PLog.run RemoveDirectory.run RemovePartition.run Rename.run Restore.run ResumeCluster.run SelectiveBackup.run SetDirectoryProtection.run SetFileProtection.run SetTime.run VacatePartition.run VolumeStatus.run Commands that invoke these combined utilities are described in the ExecutiveII Manual and the CTOSII System Administrator's Guide. If your system previously contained SRP versions of the above files with the prefix M, such as MCopy, installation of Standard SoftwareII version 1.0 does not delete these old files. You can delete them if you wish. {  CAUTION On the SRP, the process of installation renames your old command file and WSAdminAgent.txt file, to Save>WsAdminAgent.txt. The new file reflects the merged utilities. For example, the MCopy command now invokes Copy.run instead of MCopy.ruprograms revert to their internal messages and continue execution.} {In a mixed CTOSII and pre-CTOSII clustered environment there is an unusual side-effect. For example, if a clustered IWS were to give a command to run one of these nationalized programs, and the command file pointed to the hard disk of the master (e.g. Cluster Status), the run file would be loaded, but it would then look for the message file on the local hard disk. It is therefore recommended that the file, ExecMsg.bin, be copied to [Sys] on the hard disk of all cluster workstations.} {9.2 CREATING A WORKSTATION BOOTABLE BACKUP FLOPPY A bootable backup floppy allows you to boot from floppy disk and invoke the backup utility to back up your hard disk. The same floppy can later be used to restore your disk. As of CTOSII, you now need a pair of floppies to perform the backup or restore. The first floppy allows you to boot and the second one contains the actual back up and restore run files.} {As the boot floppy you can use the NGEN Initialization diskette 1 of 2. To create the backup floppy, path to [Sys], then submit CreateBackupFloppy.sub.} {Command Submit Submit File list CreateBackupFloppy.sub GO [Parameters] [Force Expansion?] [Show Expansion?]} {Making a backup floppy for use with QIC tape. The procedure is almost identical. Submit CreateBackupFloppy.sub to create the same floppy. Delete BackupVolume.run and Restore.run from the floppy. Then, copy TapeBackup.run and TapeRestore.run onto the floppy. This floppy can also be used to change the volume name of a hard disk. The file, XBif.run is also placed on the disk since it is needed to be run before using the tape module. You also need to copy Request.sys onto the boot diskette. You can copy the one from [Sys] on your hard disk, or use the one on disk 7 of 7 of Standard Software. Request.sys is needed since it supplies the definition of the requests used by the tape module.} {The following are the steps to using the backup floppy set: Insert the NGEN Initialization diskette 1 of 2 in the floppy drive.} Press the reset button at the back of the workstation to reboot. When the SignOn screen appears, replace the diskette with the backup diskette in drive [f0]. If the upper right hand corner of the screen says, "No time date set", enter in a time/date. Press GO - that is, leave the user name field blank. {The Executive's Command prompt will appear. At this point, you have the option of entering any of the following backup/restore commands: Change Volume Name IVolume Backup Volume Tape Backup Volume Restore Tape Restore} Be sure to run XBif.run if planning to use the Tape backup/restore commands. {9.3 MERGED SRP AND WORKSTATION UTILITIES Utilities that formerly had separate run files for SRP and workstation environments have been combined. The following utilities are affected:} Append.run Assembler.run BadSpotReport.run (formerly MVolReport.run) BackupVolume.run BatchStatus.run ChgVolName.run Copy.run CreateDirectory.ru2 n It is suggested that you edit the file so as to enter any specialized commands which may have been in the saved WsAdminAgent.txt into the new one.   } 9.4 MISCELLANEOUS INFORMATION A. Partition Status: As of CTOSII, the Operating System supports "code sharing". The best explanation of this is by example. Suppose you install the Context Manager. From the CM screen, you invoke Partition Status, and note how much memory is available. Then you invoke a program, foo, from the CM screen. You switch back to Partition Status and press the f10 key to update the display. You find that foo took 100K to run, so the amount of available memory is decreased by 100K. Then, you invoke a second copy of foo. Again you return to Partition Status and press the update key. You will find the amount of memory available does not decrease by 100K, but by less than 100K. This is because when CTOSII loads a second copy of a run file, only a second copy of the data is loaded, not the code. So, in this case, 100K is not used up, only the space associated with data for the program, foo. When you run Partition Status on CTOSII, you will notice that the names of run files are not displayed for System Services. This is because of a change in CTOSII - space was saved in the Operating System by elimination the system structure which kept the name of the run file. B. Temporary directory: As of CTOSII, all temporary or "dollar sign" directories have been combined into one temporary, or the dollar sign directory. This has many good effects and one bad one. The good side is that a separate dollar sign directory is no longer needed for each user number. This ensures that any program which uses or creates files in temporary directories will work correctly. The only shortcoming of this change is in attempting to use wildcarded file specifications in the dollar sign directory. For example, suppose you go into the Editor and create a file using the file spec, <$>foo. Further assume that you are running as user number 5. When you finish out of the editor you would expect to be able to give a Type command giving as a parameter, <$>f*. However, this will not work. The reason is that CTOS maps your given file spec into the following file spec, <$>00005>foo. So, you must do a files command on the <$> directory to find out the real name of the file before you can use a wildcard to abbreviate for the file name. Programs that give the unexpanded spec will continue to work, however. C. ScreenTimeOut: There is a new keyword that is recognized by SignOn within user configuration files. You can enter, :SignOnScreenTimeOut:nMinutes, where nMinutes is an integer from 0 to 109. When you sign on, the SignOn program will read this entry and set the screen time out appropriately. D. PLog messages: The way SRP versions of the half- and QIC tape servers log error and installation messages has been changed. Plog has been changed to reflect this. This means that Plog will improperly report old tape server messages. Note, however, that these old messages will not remain in log.sys for very long, since this is a circular log file - the old messages will soon be overwritten with new, properly formatted messages. Note also that there is only one version of Plog.run (no mPlog.run.) This run file will properly report both workstation and SRP log messages and will execute on either workstations or processor boards on the SRP. There is no reason to make a command "mPlog" because no speed advantage is gained. Simply run "Plog" from a workstation and designate "!sys" in the "Volume Name" field to get a listing of the SRP's log. The message code formerly written to the log file (log.sys) by the tape servers conflicted with another message code. With pre-CTOSII versions of these servers, tape messages had log type FFF8; They now have type FFF6. {E. EditorII: The algorithm for placing the cursor in EditorII may seem strange when creating a new file and when the cursor is at the end of a file at the e2  est.sys, which is loaded by the Operating System when the system is booted. Install New Request performs a List Request Set to convert binary loadable requests into text form. Then it performs a Make Request Set to merge the textual requests back into thier binary loadable form. This command is implemented by SubCmd.run. COMMAND FORM Install New Request Binary Request File(s) ________________________ PARAMETER FIELDS Binary Request Files(s) Enter the name(s) of the binary loadable request file(s) that you wish to be merged. __________________________________________________ Version __________________________________________________ The Version command is used to display the version number(s) of run files. This command is implemented by Version.run. COMMAND FORM Version File list ___________________________________ PARAMETER FIELDS File list Enter a list of run files whose versions you wish to determine. __________________________________________________ Wrap ____________________________________nd of a line.} { The cursor is always placed "to the right" of the last character entered. When you use the Editor to create a new file, the cursor appears on the trailing end of file marker (a dashed line). The cursor will remain there as you enter characters since it continues to be to the right of the last character entered. Be assured that characters are being entered normally and that this is a normal function.} { A similar thing happens when a carriage return is the last character in a file. In this case the cursor does not wrap to the next line, but instead stays on the same line. However, the next character entered will cause line wrap and will appear on the next line.} F. Loadable request files: As mentioned before, CTOSII loads only a single loadable request file, [Sys]Request.sys. When a software package it installed from floppies, its loadable request file(if it has one) is merged into Request.sys by the Install command. However, for completeness, here is a list of all assigned loadable request files: Request.0.Sys* Unallocated Request.1.Sys Mouse Request.2.Sys** XC002, Tape, Spa, PMOS Request.3.Sys Windows Request.4.Sys** Communications Request.5.Sys PT Request.6.Sys Telephone Request.7.Sys CM and ICMS Request.8.Sys Mail  Request.9.Sys** Generic Print Request.A.Sys through Request.Z.Sys reserved for OEM use except for the following: Request.A.Sys Answering Machine Request.I.Sys ISAM Request.M.Sys Math Server Request.P.Sys PC001 Request.X.Sys** X-Bus Request.T.Sys Telephone Server * All future application loadable requests will supplied in Request.0.sys. ** The request definitions in Request.2, .4, .9, and .X have all been merged into the "official" Request.sys found on disk 7 of 7 of Standard Software. G. For the SRP, a bootable half-inch tape can be made by copying (actually Restoring then Backing up) the files found on the bootable QIC tape. Once created, it will function exactly the same as the QIC tape for SRP's with half-inch tape drives. 10.0 DOCUMENTATION UPDATES The following manuals document the new features of version 1.0 Standard SoftwareII. ExecutiveII Manual, First Edition EditorII Manual, First Edition Status Codes Manual, Second Edition CTOSII System Administrator's Guide, Engineering Update CTOSII Reference Manual, First Edition Version 1.0 Standard SoftwareII adds the following status codes: 13500 No such nationalization table 13501 Bad message file signature 13502 Not a message file 13503 Message not found 13504 Message file not open 13505 Message file is corrupt 13506 Cannot access message file There are three new commands whose documentation should be added to the Executive manual: Install New Request Version Wrap An explanation of each of these commands is found on the following pages.  __________________________________________________ Install New Request __________________________________________________ Install New Request is used to merge the contents of a loadable request file or files to the loadable request file, [Sys]Requ3 ______________ The Wrap command is used to convert data into an object file. See below for details. This command is implemented by Wrap.run. COMMAND FORM Wrap Data filename _____________________________ [Object filename] _____________________________ [Module name] _____________________________ [Segment name] _____________________________ [Public name] _____________________________ [Class name] _____________________________ [Public] _____________________________ PARAMETER FIELDS Data filename Enter the name of the data file whose contents you wish to wrap. [Object filename] Default: DataFileName.obj Enter the name of the object file where the wrapped data is to be placed. [Module name] Default: DataFileName Enter a name to be used as the internal module name. See the description below. [Segment name] Default: DataFileName Enter a name to be used as the internal segment name. See the description below. [Public name] Default: DataFileName Enter a name to be used as the internal public name. See the description below. [Class name] Default: DataFileName Enter a name to be used as the internal class name. See the description below. [Public?] Default: No Enter yes if you wish the resulting module have a public segment name. Description The Wrap command is used in place of writing an assembly language program. If you were writing in assembly language, you could start your source with the following two statements: segmentname SEGMENT [PUBLIC] [classname] PUBLIC [publicname] data file The names given the the parameters: [Segment name] and [Class name] correspond to the names on the SEGMENT statement. The name given to the [Molule name] prompt is the name used by the Librarian to refer to the module. The name given to the [Public name] parameter can be used as the address of the first byte of the data by specifying this name as External in other modules. {11.0 KNOWN ERRORS AND OMISSIONS A. Debugger leaves symbols off if CODE-D is canceled. Workaround is to turn symbols back on using CODE-F (A104).} {B. The Print command [Align form?] option may cause incorrect output.} {C. Assembler emits incorrect segment length for ??SEG if no other segments are declared. Workaround is always to declare at least one segment.} {D. Assembler may emit an object that causes "Illegal segment reference type 4" at link time. Workaround is to insert one or more NOP instructions at the location of the illegal segment reference.} {E. Spooler supports a maximum of six printers.} {F. Queue Manager terminates with "Access Denied" if [Sys] volume is protected and Queue.index does not include passwords.} {G. Command File Editor returns to Executive after encountering any error condition.} {H. The Print command [Confirm each?] option does not work from a submit file.} {I. Files: The new exclusionary wildcards have a bug. The exclusionary character tilda (~), has an implied wildcard asterisk following it. For example, if you give a Files command with the following file list: * ~.run with the intent of listing all files except the specific file, .run, the file list will instead be interpreted as: * ~*.run that is, all files except those ending in .run.} {J. If you run Cluster Status on a master NGEN that has no cluster workstations attached, you will experience an odd behavior. If you press the f1 key (the Meter function), the master will appear to hang. If you get into this condition, press Action + Finish to get out of Cluster Status.} {K. If you have an NGEN with a graphics module, GC001 or GC003, you can give a Screen Setup command and answer "yes" to the optional parameter, [Reverse video], to turn the screen into reverse mode. However, whenever the Executive re-paints the full screen (e.g., coming out of the Editor, Word Processor, or Document Designer) the screen will return to the normal video.} {L. Partition Status has a limit of 15 partitions. If you run Partition Status on a workst3  rash messages are scrolled off of the screen at Signon. These messages may be viewed by looking into Plog.2 1.0 Standard Software II A-09-01248-01-A SAA-2000 Page # of 68 A-09-01248-01-A 1.0 Standard Software II Page # of 68 SAA-2000 Ri~-`|i~ٟ= u(٪~ٟ-`|T @ P @ @ 0 0 @X"@#&'*+,@0,1@,!@X"@#&'@*+@,ations which is running more than 15 programs (which is possible if you are running many servers on a master workstation), Partition Status will exit with an erc 3705.} {M. User files: All user configuration files must end with at least one trailing carriage return or the last entry may not be parsed correctly.} {N. GPS Installation: The following is a typical segment of a SysInit.jcl file for GPS installation: $RUN [Sys]InstallQMgr.run,y,20 $RUN [Sys]GpsRs.run,Anything $RUN [Sys]GpsInstall.run Note that you must add a parameter to the line where the GPS routing switch is installed. Failure to do this results in GPS exiting with an error code 4578. This parameter is the workstation prefix. In the example "Anything" was used.} {O. If you are running the Executive (or other nationalized Standard Software run file) on a diskless cluster workstation and the master goes down, messages containing garbled text may appear instead of the message "Master not running (error 6)". When the master is brought back up, you need to press Action + Finish to re-establish the message file from the master.} {P. If you attempt to use the Command File Editor to create a new command file, when you try to add the first command, you will receive an error message saying that the command file is full. The work-around is to copy an existing command file and use the Command File Editor to modify it.} {Q. The Finish key is interpreted as the Cancel key in Selective Backup and Tape Selective Backup when [Confirm each?] is answered yes.} {R. The tape name [QICn] (where n is 0 or 1) is not accepted.} {S. If CloseByteStream is called on a communications or printer byte stream subsequent to reception of an XOFF character and before the output buffer is empty, the last few characters of the buffer may never be transmitted. This situation can be avoided by explicitily calling CheckPointBs.} {T. Pressing ACTION-FINISH while in the Debugger sometimes does either nothing or causes a system crash. If the Debugger is permanently resident (:ResidentDebugger:Yes in [Sys]Config.sys), this condition does not occur.} {U. The Xbif server only allocates the use of the XINTR4 XBUS interrupt, but not XINTR0 and XINTR1. The PC-001 PC emulator and XC-002 port expander modules utililize the XINTR0 and XINTR1 levels without any attempt to prevent duplicate use of an interrupt level. Thus a PC-001 may not be installed on a system where an XC-002 is also installed. A future version of Xbif will support allocation of XINTR0 and XINTR1.} {V. Signon.run keeps the file ExecMsg.bin open. This means that an Update to a Remote Master cannot be performed on a system which is already running CTOS II. To Update the master, perform an UPDATE installation at the master, or turn all cluster workstations off and place the Master in a program such as Create Configuration File, (any program which does not use ExecMsg.bin or create a file in the <$> directory). W. Large, complicated macros may cause the Assembler II 1.0 to enter an infinite loop. X. C4 /2 pƶGjҏҲ;b8a U 1Ps*In 3 ] 3  2 X"@#&'*+,@  X"@#&'*+,@ 0@ `0@@Z!9Rpљ+тѬ <_ѠC IW/T@ <@@  X"@#&'*+,@  X"@#&'*+,ef I J K N h   cՂՕգՒdVI I  c  @ x @ x PX"@#&'*+,@ <X"@#&'*+,k.5Rnopqt֋GHIJMVرԿ   Զ Ը 5 [ m n o p s { x ؏ ԑ ԓ ֦ b ؕ ԣ Ԧ ֻ qrstw։xyz{~֝'TؽԹԻ oHҿ Ҷ n ґ Ҥ ry  @ x X"@#&'*+, X"@#&'*+,   @ x X"@#&'*+, 5\ijrsw(56789<]%&(),:ͨ%&()'(*+·» 7' ڸ X"@#&'*+, @ x @ x X"@#&'*+,  @ x  ()٤(ߣߴ΢@ PX"@#&'*+,@@ @ X"@#&'*+,@L*+,-MRSTUv2[\]^hijkόn o p q r Ϻ = > ? @ ` H q ށ ς ؃  5 6 7 8 \ Ϛ ޹ +L+MSu1\~i܋p ܙ ܺ > ` ܁ ܩ ܵ 6 \ ܈ ܺ o X"@#&'*+,X"@#&'*+,@@ PX"@#&'*+,Yj|ؤϥ֦  3؁ab؀)4XjӤ2Oߞ)N`~_X"@#&'*+,@ @@ PZ@X"@#&'*+,4  EVֹ0^2D֪./349uEۚ02۔-39͜@ ` ,!@ 0 0@ 0 0  @ ` ,!@ @ ` X"@#&'*+,! GHLMRK/FLRnҖ͕@ ` ,!@ 0 0@ 0 0  @ ` ,!@ ` X"@#&'*+," 5>?@ُUVZ` pك 5{?ZԏTp߃ M  X"@#&'*+,@@<@ P @ X"@#&'*+, hi  r  K T  h  <Mr*ωϞY  ϔ ͈ @ ` X"@#&'*+,@@@ P@X"@#&'*+,1 ./01!'EFԈstvw%&()ԹԼԇԉ ! @ A C D Ԥ Ԧ stuvԡY/F҆u҇Ҥ tҡ!Zt YX"@#&'*+, X"@#&'*+,@ ` 6Z@ ` X"@#&'*+,'- KLMN>Dbc ֐֓) * + , } ~ ւ MNϭ:-LcԬޙ* N%[ԓԔԭ9Ԧ ;͘ :X"@#&'*+, X"@#&'*+,@ ` 6Z@ ` X"@#&'*+, f֕:;<=ԣԥ6:ԝ֬ 3efҕ;ң۝@ ,!@ 0 0@ 0 0  @ ` ,!@ @ ` X"@#&'*+, Ԓ֞   Ԕٖ֟-.ҼҒ Ҕv/.@ ,!@ 0 0@ 0 0  @ ` ,!@ X"@#&'*+, 5 .RTwzִ֘־bdef֢8ԓԕ% & dۏۓҳҿv  & ҍ  X"@#&'*+,%X"@#&'*+,$ @ @ ` X"@#&'*+,#  0T    "   "  X"@#&'*+,&@ ` @ ` ,!@ ` H@ 0 0  @ ` ,! rstu)*,-W֫st֠ԧGHwJQ\ x Yqs*+WҞүtғҥHIwDU[ \ x  ҧ s Ҩ sҎͤr  @ ` ,!X"@#&'*+,)X"@#&'*+,(@ ` X"@#&'*+,' +cg½׾()+,QRSTX+˸Կˌ*RX)@ ` ,!X"@#&'*+,*@ x P @ ` ,!@@ `  لۆXYZ[۩۫*+,׆ݠY,+X"@#&'*+,+@ 0Z@ @ ` ,!@ 0 0@ 0 0 #%*+2:;<=߄ *+2;y+@@ P@ `0Z@ 0Z@  $ !  @ P 0Z,!  mtuvwx1<VW mv1W@ ` 0Z@ 0Z,!@ ` 0Z@ 0Z,! @X"@#&'*+,,  ȵƷƽȏ ۯۈ @X"@#&'*+,-@ ` 0Z@ 0Z,!@ ` 0Z@ 0Z,! @ x5  EFwxlmuvst FهAvmٻvs ͺ   @ P$ X"@#&'*+,8@ x@X"@#&'*+,7 23:2:;@ x @ P$ @ @ 0 0@  @ PX"@#&'*+,9   Ҳ X"@#&'*+,.@@ 0Z,!@ ` 0Z@ 0Z,! @ ` 0Z #?%9*lmnoWXYZ#?[%9)mX@ x @ x X"@#&'*+,/@@$~@  @ P ̃ۅۦ*+,-̵tuvwʄ+u- X"@#&'*+,1@ x @ PX"@#&'*+,0@ x   >Ş׼OPQvśץŦ>ˍϞռOvɚɥ N@ ` @ P X"@#&'*+,2@ `Z@ P@@ ;#$?lܠܾ:Ӷ#Ӭ d@ P$ X"@#&'*+,4@ P@ `@X"@#&'*+,37 =xyz{    yz|}"#$%e f M N O P @ABCuςτ͓<y {#˲ 0  D o d N Auzc @ 0@@ PX"@#&'*+,6X"@#&'*+,5 @$  6  Ԃ    ) * qҚP ҅  + X"@#&'*+,<@ x *X"@#&'*+,;@ x X"@#&'*+,:Naq؆LMpY} *+@  XX"@#&'*+,=@ @ x@@ P$ @ x @ x * EQש FV}KCDQ՘թч EV@  BX"@#&'*+,?@ X @@X"@#&'*+,> gw׽NOPonfwBB?ްޱ޽No  @ x$ @rX"@#&'*+,A@  8r@@X"@#&'*+,@XstuvǼǾMNPQFGHIhijk ǔǗǙǝ+ , - . W X Y Z z { | } BCEFhijkMNOP\^_tżOGiŕś, X { DiNŕ\@_NԔC\^@ ,!!,X"@#&'*+,DX"@#&'*+,CX"@#&'*+,B@ x 78GGG@ ,!,  ((()P xxxx Courier 72G BNkN'"10.3|#6@3HTlZgs1kT8 L4!@S2 (-1:N6  ZZZZZZZZZZZZZZZZ7 ZZZZZZZZZZZZZZZZ7  ZZZZZZZZZZZZZZZZ8 ZZZZZZZZZZZZZZZZ8  ZZZZZZZZZZZZZZZZ9 ZZZZZZZZZZZZZZZZ9  ZZZZZZZZZZZZZZZZ: ZZZZZZZZZZZZZZZZ:  ZZZZZZZZZZZZZZZZ; ZZZZZZZZZZZZZZZZ;  ZZZZZZZZZZZZZZZZ< ZZZZZZZZZZZZZZZZ<  ZZZZZZZZZZZZZZZZ= ZZZZZZZZZZZZZZZZ=  ZZZZZZZZZZZZZZZZ> ZZZZZZZZZZZZZZZZ>  ZZZZZZZZZZZZZZZZ? ZZZZZZZZZZZZZZZZ?  ZZZZZZZZZZZZZZZZ@ ZZZZZZZZZZZZZZZZ@  ZZZZZZZZZZZZZZZZA ZZZZZZZZZZZZZZZZA  ZZZZZZZZZZZZZZZZB ZZZZZZZZZZZZZZZZB  ZZZZZZZZZZZZZZZZC ZZZZZZZZZZZZZZZZC  ZZZZZZZZZZZZZZZZD ZZZZZZZZZZZZZZZZD  ZZZZZZZZZZZZZZZZE ZZZZZZZZZZZZZZZZE  ZZZZZZZZZZZZZZZZF ZZZZZZZZZZZZZZZZF  ZZZZZZZZZZZZZZZZG ZZZZZZZZZZZZZZZZG  ZZZZZZZZZZZZZZZZH ZZZZZZZZZZZZZZZZH  ZZZZZZZZZZZZZZZZI ZZZZZZZZZZZZZZZZI  ZZZZZZZZZZZZZZZZJ ZZZZZZZZZZZZZZZZJ  ZZZZZZZZZZZZZZZZK ZZZZZZZZZZZZZZZZK  ZZZZZZZZZZZZZZZZL ZZZZZZZZZZZZZZZZL  ZZZZZZZZZZZZZZZZ