PVOL1BACKUP D%B1111001001 1Pe _vߋt& dR 5@V$d zt|xx| ҁr& 6L~7L e7x~~E҈C2S.  ***THIS VOLUME DOES NOT CONTAIN A HARDWARE BOOTABLE SYSTEM ***  w 4  ť ť 0B < Aaw  ' UD$BA  &( U BQ b Е*  & & PHDR1HLPDCL 00010001000100 00000 00000 000000DECFILE11A PPHDR2U0414404144 M 00 PPHLPDCLHLPDCLZ ;<}ZkQ? kQ@tkQAgkQBL 0akQCkQDdkQEkQF<@kQGe+kQHkQI}(dkQJ99KkQK*KkQLQNkQMe^kQNakQOfkQPwkQQ` kQRQkQS%kQkQT_MakQUkQVSkQWAykQXvLIkQYWkQZ.kQ[XkQ\skQ]kQkQ^u~@kQ_2dkQ`""kQa_kQb* kQc}kQdh~kQe 8kQfkp kQgRkQh}kQikQrkQjkQk&Z}kQlkQm,9^}kQnt!kQoK f9kQp HkQq_L kQr%vQkQs&v~kQt(@kQue kQv<kQwe"kQxnZ&s!kQyz`kQz{SZkQ{{fkQ26OCT8801211326OCT88012113Eu.<PbmkQ26OCT8801211426OCT88012114NM.=LLw kQ26OCT8801211526OCT88012114Uc.>HZkQ26OCT8801211626OCT88012115\%.?M kQ26OCT8801211726OCT88012116a.@MtkQ26OCT8801211726OCT88012117f.APgkQ26OCT8801211826OCT88012118kM.BKL 0akQ26OCT8801211926OCT88012118q.C>kQ26OCT8801211926OCT88012119w}b.DAdkQ26OCT8801212026OCT88012120z.E>kQ26OCT8801212126OCT88012120|0n.FF<@kQ26OCT8801212126OCT88012121~.GP e+kQ26OCT8801212226OCT88012122 Ԓ.HCkQ26OCT8801212326OCT88012122C`.I@^}(dkQ26OCT8801212326OCT88012123r.J>p99KkQ26OCT8801212426OCT88012124A.K>*KkQ26OCT8801212526OCT88012124ܒ.L>QNkQ26OCT8801212526OCT88012125.M>e^kQ26OCT8801212626OCT88012126(2.NB*akQ26OCT8801212726OCT88012126.O>2fkQ26OCT8801212726OCT88012127|.PAwkQ26OCT8801212826OCT88012128.QC` kQ26OCT8801212926OCT88012128U.RCQkQ26OCT8801212926OCT88012129.S,%kQkQ26OCT8801213026OCT88012130G.TEZ_MakQ26OCT8801213126OCT88012130.UC$kQ26OCT8801213126OCT88012131d_.V*>SkQ26OCT8801213226OCT880121323.WMAykQ26OCT8801213326OCT88012132T.X>vLIkQ26OCT8801213326OCT88012133Z.Y>:WkQ26OCT8801213426OCT880121343.Z>2.kQ26OCT8801213526OCT880121341.[CXkQ26OCT8801213526OCT88012135.\DskQ26OCT8801213626OCT88012136.]j88kQkQ26OCT8801213726OCT880121367.^>@u~@kQ26OCT8801213826OCT88012138 ._C2dkQ26OCT8801213926OCT88012138.`P ""kQ26OCT8801213926OCT88012139 jy.aJ_kQ26OCT8801214026OCT88012140$.bDh* kQ26OCT8801214126OCT88012140 p.c>L}kQ26OCT8801214126OCT88012141(.d>Fh~kQ26OCT8801214226OCT88012142*.eFZ 8kQ26OCT8801214326OCT88012142-1.fJkp kQ26OCT8801214326OCT880121435.g0RkQ26OCT8801214426OCT88012144<.hE }kQ26OCT8801214526OCT88012144 =.iOkQrkQ26OCT8801214526OCT88012145I.jQ%%kQ26OCT8801214626OCT88012146$[.kHT&Z}kQ26OCT8801214726OCT88012146o.lENkQ26OCT8801214726OCT88012147t.mG,9^}kQ26OCT8801214826OCT880121484.nHt!kQ26OCT8801214926OCT88012148~.oJK f9kQ26OCT8801214926OCT88012149a.pF HkQ26OCT8801215026OCT88012150 .qL_L kQ26OCT8801215126OCT88012150j.rN (%vQkQ26OCT8801215226OCT88012151 .sG&v~kQ26OCT8801215226OCT88012152$b.tE p(@kQ26OCT8801215326OCT88012153.uP e kQ26OCT8801215426OCT88012153 s.vO<kQ26OCT8801215426OCT88012154.wP e"kQ26OCT8801215526OCT88012155 z.xInZ&s!kQ26OCT8801215626OCT88012155.yOz`kQ26OCT8801215626OCT88012156T.zGB{SZkQ26OCT8801215726OCT88012157S.{Nt{hkQ26OCT8801220026OCT88012159g.~U%!R}kQ26OCT8801220026OCT88012200H.B&kQ26OCT8801220126OCT88012201.m.D'kQ26OCT8801220226OCT880122021cn.M'@QkQ26OCT8801220326OCT880122024.G'WkQ26OCT8801220326OCT88012203:V.Cd4kQ26OCT8801220426OCT88012204K.Gy:i~KkQ26OCT8801220526OCT88012204O/^.F :4}KkQ26OCT8801220626OCT88012205b>S.TvLDkQ26OCT8801220626OCT88012206k.H<_Mp:kQ26OCT8801220726OCT88012207.JNR,kQ26OCT8801220826OCT88012207.[HSZkQ26OCT8801220926OCT88012208 .ByXKkQ26OCT8801220926OCT88012209C.HhXkQ26OCT8801221026OCT88012209.HYkQ26OCT8801221126OCT88012210ݠ.OB:dwkQ26OCT8801221126OCT880122112).F P;dkQ26OCT8801221226OCT88012211.D\xekQ26OCT8801221326OCT88012212.M|fZkQ26OCT8801221326OCT88012213 9.IZg,kQ26OCT8801221426OCT880122146.FTq{@kQ26OCT8801221526OCT88012214.NUq5akQ26OCT8801221526OCT88012215.IVqMkQ26OCT8801221626OCT88012216.C >skQ26OCT8801221726OCT88012216k.P&&wkQ26OCT8801221826OCT88012217% .\wkQ26OCT8801221826OCT88012218.T xkQ26OCT8801221926OCT880122198u.M*y}kQ26OCT8801222026OCT88012220XR.L TyskQ26OCT8801222126OCT88012220 n?.H ydkQ26OCT8801222226OCT88012221{-.bz zRkQ26OCT8801222226OCT88012222 X#.L~8YkQ26OCT8801222326OCT88012223 /.R$$}kQ26OCT8801222426OCT88012223#i.P,XakQ26OCT8801222526OCT88012224C.H@kQ26OCT8801222526OCT88012225.HkQ26OCT8801222626OCT88012226 .GF|C^kQ26OCT8801222726OCT88012226W3.GZkQ26OCT8801222726OCT88012227P.BKkQ26OCT8801222826OCT88012228,.I2kQ26OCT8801222926OCT88012228d.H5pkQ26OCT8801223026OCT88012229U.N$$KkQ26OCT8801223026OCT88012230#L.Kdf:dwkQ26OCT8801223126OCT88012231 .>P""`kQ26OCT8801223226OCT88012231#.P""`kQ26OCT8801223326OCT88012232%.I jLp@kQ26OCT8801223326OCT88012233 *.H '|QkQ26OCT8801223426OCT88012234 6.l++qO@kQ26OCT8801223526OCT88012234*@.IB}@QkQ26OCT8801223526OCT88012235k@PUFD zP.J~26OCT8801223726OCT88012236n^/.a:E 26OCT8801223826OCT88012237rKPUFD zPPUFD vzP.QVV}kQ26OCT8801223926OCT88012238Uq&PUFD zP.FH}E 26OCT8801224026OCT88012240.M*L26OCT8801224126OCT88012241PUFDvz%P.%A G}26OCT8801224226OCT88012242.%?G}(26OCT8801224326OCT88012243 .%G .DEz_kQ26OCT8801224426OCT88012243 u .%G `DkQ26OCT8801224526OCT88012244 .%ERD9ykQ26OCT8801224526OCT88012245 $.%?DjkQ26OCT8801224626OCT88012245.%ADkQ26OCT8801224726OCT88012246  .%DD:kQ26OCT8801224726OCT88012247)).%FD:kQ26OCT8801224826OCT88012247/F.%ED:kQ26OCT8801224926OCT880122487X.%ED:kQ26OCT8801224926OCT88012249=V.%A(D:kQ26OCT8801225026OCT88012249Eq.%DTD:kQ26OCT8801225026OCT88012250K.%DHD}kQ26OCT8801225126OCT88012251 S3..%? LErkQ26OCT8801225226OCT88012251 a!.%?*DEy_kQ26OCT8801225326OCT88012252n.%C GkQ26OCT8801225326OCT88012253 sc.%EGEHSkQ26OCT8801225426OCT88012253x.%?NEkQ26OCT8801225426OCT88012254.%B liE.kQ26OCT8801225526OCT88012255 .%@iEhzkQ26OCT8801225626OCT88012255).%AoEhzkQ26OCT8801225626OCT88012256*.%?fsEkQ26OCT8801225726OCT88012257.%AsE'kQ26OCT8801225826OCT88012257.%@ vEkQ26OCT8801225826OCT88012258 j.%@ EhjkQ26OCT8801225926OCT88012259 a .%?EkQ26OCT8801230026OCT88012259/.%ET-FykQ26OCT8801230026OCT88012300.%IFkQ26OCT8801230126OCT88012301.%?bF zkQ26OCT8801230226OCT88012301".%@AG@kQ26OCT8801230226OCT88012302.%AFKkQ26OCT8801230326OCT88012302.%K $Gp kQ26OCT8801230426OCT88012303 ڽ.%C(GLkQ26OCT8801230526OCT88012304 .%?G8^kQ26OCT8801230526OCT88012305/ .%CRG@kQ26OCT8801230626OCT88012306.%?G kQ26OCT8801230726OCT88012306Ϻ.%?tG8kQ26OCT8801230726OCT88012307 .%?lG@`kQ26OCT8801230826OCT88012307,.%A*KkQkQ26OCT8801230826OCT88012308 .%A hG kQ26OCT8801230926OCT88012308 .%KEL;kQ26OCT8801230926OCT88012309' .%? G}kQ26OCT8801231026OCT88012309 <Q6.%DD@,kQ26OCT8801231126OCT88012310I!.%C EykQ26OCT8801231126OCT88012311 ]&.%@ iE]kQ26OCT8801231226OCT88012311 hL .%HzDkQ26OCT8801231226OCT88012312t.%DrEkQ26OCT8801231326OCT88012313.%CGkQ26OCT8801231426OCT88012313.%E D:kQ26OCT8801231426OCT88012314 .%?DhzkQ26OCT8801231526OCT88012315P'PUFDz%P.%AF 26OCT8801231626OCT88012316.%9DE D26OCT8801231726OCT88012317u.%&PJx26OCT8801231826OCT88012317.%pF 26OCT8801231826OCT88012318.%(F`26OCT8801231926OCT88012319r~.%4DEv26OCT8801232026OCT88012319.%;GEQ26OCT8801232026OCT88012320IPUFDz%P.%AF 26OCT8801232126OCT88012321.%9DE D26OCT8801232226OCT88012322*q.%4DEv26OCT8801232326OCT88012322.%nF 26OCT8801232326OCT88012323.%(F`26OCT8801232426OCT88012324z.%&PJx26OCT8801232526OCT88012324.%:GEQ26OCT8801232526OCT88012325XPUFDz%PPUFDz%PPUFDzP.O F &[qkQ26OCT8801232726OCT88012326 `PDATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATADATAP0O F &<0X @)LJ      3 Tz & ! " $w* 2 5 vb; 6\K LzK -aT 6zd  e #":w (&My HMy3Iz} * . :TX  .MACRO CUCDF$ X,Y .ASECT .= U.CW2+2U.ACUR:'X .BLKW 1U.NSYN:'X .BLKB 1U.NSYC:'X .BLKB 1 .= U.VCB+2U.PHDR:'X .BLKW 1U.RCHK:'X .BLKW 1 U.QSYN:'XU.RCAC:'X .BLKW 1U.RBUF:'X .BLKW 2U.RCNT:'X .BLKW 1U.SVC:'X .BLKW 1 U.TXCT:'XU.INTP:'X .BLKW 1U.SYNC:'X .BLKB 1U.MPN:'X .BLKB 1U.RFRK:'X .BLKW 1U.RFPC:'X .BLKW 1U.RFR5:'X .BLKW 1U.RFR4:'X .BLKW 1U.RFCT='Y U.TXCT+1 .PSECTU2.HDX='Y 100000U2.LIN='Y 40000U2.CTS='Y 20000U2.SWC='Y 10000U2.ONL='Y 4000U2.HPT='Y 1000U2.HRC='Y 400U2.RCV='Y 200U2.ACU='Y 100U2.MPT='Y 40U2.FTM='Y 20U2.SFL='Y 10U2.RFK='Y 4U2.SYC='Y 3U2.TXA='Y 2U2.SNC='Y 1 US.SYN='Y 1TU3.LOK='Y 100000U3.RPD='Y 400U3.RAC='Y 200U3.SND='Y 1 .MACRO CUCDF$ A,B .ENDM .ENDM4X  .MACRO CVCDF$ X,Y .ASECTK .= V.IFWI4V.CPRT:'X .BLKW 1TV.CLUN:'X .BLKB 1CV.CMPN:'X .BLKB 10V.CSTS:'X .BLKW 1V.CST1:'X .BLKB 12V.CNID:'X .BLKB 1OV.CUCB:'X .BLKW 1TV.CMPL:'X .BLKW 1'V.CNPN:'X .BLKW 1 V.CMBC:'X .BLKW 1 V.CRED:'X .BLKW 1 V.CNHD:'X .BLKW 10V.CTBL:'X .BLKW 1V.CRBL:'X .BLKW 12V.NXHD:'X .BLKW 1TV.CDBC:'X .BLKW 1CV.CIAD:'X .BLKW 1'V.CICT:'X .BLKW 10V.CSAD:'X .BLKW 10V.CSCT:'X .BLKW 1V.CMXI:'X .BLKW 1.V.CMXO:'X .BLKW 1.V.CTDH:'X .BLKW 1V.CTDT:'X .BLKW 1 V.CSTQ:'X .BLKW 2KV.CLMT:'X .BLKB 1TV.CTMA:'X .BLKB 1NV.CLMR:'X .BLKB 1NV.CRMA:'X .BLKB 1SV.CMCT:'X .BLKW 21V.CRPC:'X .BLKB 1DV.CRPL:'X .BLKB 1BV.CRTM:'X .BLKW 1LV.CREP:'X .BLKW 1NV.CBCC:'X .BLKW 1CV.CDCC:'X .BLKW 1DV.CURH:'X .BLKW 1DV.CDLE:'X .BLKW 1LV.COVR:'X .BLKW 1LV.CRST:'X .BLKW 1DV.CALF:'X .BLKW 1CV.CREA:'X .BLKB 1D .BLKB 1 .IF DF C$$ACUV.CTPN:'X .BLKB 12.K .ENDCV.CLEN:'X .BLKW 1. .PSECTB VS.SEL='Y 100000VS.FIN='Y 40000VS.REP='Y 20000VS.RTR='Y 10000VS.STK='Y 4000VS.STR='Y 2000VS.ACK='Y 1000VS.NAK='Y 400VS.MPT='Y 200VS.DIS='Y 200VS.CTL='Y 100VS.DAT='Y 40VS.SYN='Y 20VS.POL='Y 10VS.ONL='Y 4VS.BOO='Y 2VS.TRN='Y 1 .MACRO CVCDF$ A,B .ENDM .ENDM X  .MACRO F11DF$,L,B,SYSDEFA .ASECTK.=0V.TRCT:'L'.BLKW 1V.TYPE:'L'.BLKB 1$ VT.FOR='B' 0 VT.SL1='B' 1N VT.SL2='B' 2B VT.ANS='B' 10 VT.UNL='B' 11V.VCHA:'L'.BLKB 14 VC.SLK='B' 1 VC.HLK='B' 2' VC.DEA='B' 4K VC.PUB='B' 10& VC.DUP='B' 20 ; Duplicate volume nameV.LABL:'L'.BLKB 14V.PKSR:'L'.BLKW 2 V.SLEN:'L'V.IFWI:'L'.BLKW 1'V.FCB:'L'.BLKW 2V.IBLB:'L'.BLKB 1 V.IBSZ:'L'.BLKB 1  .BLKW 1V.FMAX:'L'.BLKW 1NV.WISZ:'L'.BLKB 1 V.SBCL:'L'.BLKB 1V.SBSZ:'L'.BLKW 1V.SBLB:'L'.BLKB 1$V.FIEX:'L'.BLKB 1C .BLKW 1V.VOWN:'L'.BLKW 1V.VPRO:'L'.BLKW 1V.FPRO:'L'.BLKW 1.V.FRBK:'L'.BLKB 1=V.LRUC:'L'.BLKB 1  .BLKW 1V.STS:'L'.BLKB 1 VS.IFW='B' 1. VS.BMW='B' 2.V.FFNU:'L'.BLKB 1=V.EXT:'L'.BLKW 1V.HBLB:'L'.BLKW 20V.HBCS:'L'.BLKW 2 V.LGTH:'L' .ASECT .=0.M.LNK:'L'.BLKW 1M.TYPE:'L'.BLKB 1' MT.ML00 DATADATADATADATADATADATADATADATADATADATAS='B' 1CM.ACC:'L'.BLKB 1M.DEV:'L'.BLKW 1M.TI:'L'.BLKW 1 M.LEN:'L'. .ASECTB.=0NF.LINK:'L'.BLKW 1 F.FNUM:'L'.BLKW 1F.FSEQ:'L'.BLKW 1 .BLKB 1F.FSQN:'L'.BLKB 1'F.FOWN:'L'.BLKW 11F.FPRO:'L'.BLKW 1F.UCHA:'L'.BLKB 1F.SCHA:'L'.BLKB 1.F.HDLB:'L'.BLKW 2=F.LBN:'L'.BLKW 2F.SIZE:'L'.BLKW 2:F.NACS:'L'.BLKB 1=F.NLCK:'L'.BLKB 1 S.STBK='B'.-F.LBN F.STAT:'L'F.NWAC:'L'.BLKB 1' .BLKB 1 FC.WAC='B' 100000 FC.DIR='B' 40000  FC.CEF='B' 20000L FC.FCO='B' 10000KF.DREF:'L'.BLKW 1CF.DRNM:'L'.BLKW 1F.FEXT:'L'.BLKW 1.F.FVBN:'L'.BLKW 2EF.LKL:'L'.BLKW 1F.WIN:'L'.BLKW 1 F.LGTH:'L' .ASECTK.=0 W.ACT:'L'B W.BLKS:'L'W.CTL:'L'.BLKW 1 WI.RDV='B' 400' WI.WRV='B' 1000 WI.EXT='B' 2000 WI.LCK='B' 4000 WI.DLK='B' 10000D WI.PND='B' 20000B WI.EXL='B' 40000E WI.WCK='B' 100000W.IOC:'L'.BLKB 1 .BLKB 1W.FCB:'L'.BLKW 1W.TCB:'L'.BLKW 1W.UCB:'L'.BLKW 1W.LKL:'L'.BLKW 1W.WIN:'L'.BLKW 1 .IF NB,SYSDEF .IF NDF,P$$WND0W.VBN:'L'.BLKB 1 W.MAP:'L'FW.WISZ:'L'.BLKB 1M .BLKW 1 W.RTRV:'L' W.SLEN='B'-4 .IFF'W.MAP:'L'.BLKW 1 W.SLEN:'L'.=0L ASSUME W.CTL,0' .BLKB 1W.USE:'L'.BLKB 1W.VBN:'L'.BLKB 1W.WISZ:'L'.BLKB 1. .BLKW 1 W.RTRV:'L' .ENDC .ENDC .ASECT0.=0.L.LNK:'L'.BLKW 1L.WI1:'L'.BLKW 1L.VB1:'L'.BLKB 1L.CNT:'L'.BLKB 1 .BLKW 1 L.LKSZ:'L' .PSECT. .MACRO F11DF$ X,Y,Z .ENDM F11DF$. .ENDM F11DF$X  .MACRO ABODF$,L,B S.CACT='B'-4. S.CEXT='B'-2. S.COAD='B'0. S.CSGF='B'2. S.CBPT='B'4. S.CIOT='B'6. S.CILI='B'8. S.CEMT='B'10.' S.CTRP='B'12.4 S.CFLT='B'14.: S.CSST='B'16.L S.CAST='B'18.A S.CABO='B'20. S.CLRF='B'22.: S.CCRF='B'24.B S.IOMG='B'26.. S.PRTY='B'28.. S.CPMD='B'30.T S.CINS='B'32. T.NDNR='B'0C T.NDSE='B'2N T.NCWF='B'4 T.NCRE='B'6W T.NDMO='B'8. T.NUER='B'10.L T.NLDN='B'12.W T.NLUP='B'14. T.NCFI='B'16.R T.NUDE='B'18. T.NMPE='B'20. T.NKLF='B'22. T.NDEB='B'24. T.NRCT='B'26.$ T.NWBL='B'28.' T.NPNT='B'30.' T.NIOS='B'32.' T.NIOR='B'34.. T.RECF='B'36. .MACRO ABODF$ X,Y .ENDM .ENDMX  .MACRO CLKDF$,L,B C.MRKT='B'0L C.SCHD='B'28 C.SSHT='B'4' C.SYST='B'6' C.SYTK='B'8. C.CSTP='B'10.G .ASECT.=0YC.LNK:'L' .BLKW 1'C.RQT:'L' .BLKB 1C.EFN:'L' .BLKB 1DC.TCB:'L' .BLKW 1'C.TIM:'L' .BLKW 2. .=C.TIM+4C.AST:'L' .BLKW 1LC.SRC:'L' .BLKW 1'C.DST:'L' .BLKW 16 .=C.TIM+4'C.RSI:'L' .BLKW 20C.UIC:'L' .BLKW 1 .=C.TIM+44 .BLKW 2 .BLKW 1 .=C.TIM+48C.SUB:'L' .BLKW 1C.AR5:'L' .BLKW 1I .BLKW 1 C.LGTH='B'.6 .PSECTR .MACRO CLKDF$ X,Y .ENDM .ENDMX  .MACRO DCBDF$,L,B .ASECT.=0DD.LNK:'L' .BLKW 1'D.UCB:'L' .BLKW 1YD.NAM:'L' .BLKW 1'D.UNIT:'L' .BLKB 1 .BLKB 1D.UCBL:'L' .BLKW 1D.DSP:'L' .BLKW 1LD.MSK:'L' .BLKW 1L .BLKW 1 .BLKW 1 .BLKW 1 .BLKW 1 .BLKW 1 .BLKW 1 .BLKW 1D.PCB:'L' .BLKW 1: .PSECT D.VDEB='B'177776 D.VINI='B'0 D.VCAN='B'2 D.VOUT='B'4. D.VPWF='B'6W .MACRO DCBDF$,X,Y .ENDM .ENDMX  .MACRO DEVDF$,L,B .MCALL DCBDF$ DCBDF$ ,  .MCALL UCBDF$ UCBDF$ , .MCALL SCBDF$ SCBDF$ ,. .MCALL LCBDF$ LCBDF$ , .MACRO DEVDF$,X,Y .ENDM .ENDM X  .MACRO EPKDF$,L,B .ASECTL 1.=0SE$HLGH:'L' .BLKW 1E$HSBF:'L' .BLKW 1E$HSYS:'L' .BLKB 1E$HIDN:'L' .BLKB 1E$HSID:'L' .BLKB 4E$HCTX:'L' .BLKB 1E$HFLG:'L' .BLKB 1E$HENS:'L' .BLKW 1E$HERS:'L' .BLKW 1 E$HENC:'L'E$HTYC:'L' .BLKB 1E$HTYS:'L' .BLKB 1E$HTIM:'L' .BLKB 6E$HPTY:'L' .BLKB 1 .BLKB 1E$HURM:'L' .BLKW 1 .EVENB E$HLEN:'L' D SM.ERR ='B' 1 SM.HDR ='B' 1F SM.TSK ='B' 2C SM.DID ='B' 4 SM.DOP ='B' 10 SM.DAC ='B' 20 SM.DAT ='B' 40P SM.MBC ='B' 20000 SM.CMD ='B' 40000W SM.ZER ='B' 1000001 EH$FOR ='B' 2 ES.INI ='B' 1. ES.DAT ='B' 2L ES.LIM ='B' 4B ES.LOG ='B' 101 $ E$CCMD ='B' 1E E$SSTA ='B' 1L E$SSWI ='B' 2B E$SAPP ='B' 36 E$SBAC ='B' 4 E$SSHO ='B' 5' E$SCH00O F &L ='B' 6$ E$CERR ='B' 2  E$SDVH ='B' 1  E$SDVS ='B' 2  E$STMO ='B' 3 E$SUNS ='B' 4' E$STMS ='B' 5 E$CDVI ='B' 3' E$SDVI ='B' 1' E$CDCI ='B' 4' E$SMOU ='B' 1' E$SDMO ='B' 2H E$SRES ='B' 3 E$SRCT ='B' 4 E$CMEM ='B' 5 E$SMEM ='B' 1 E$CSYS ='B' 6 E$SPWR ='B' 1  E$CCTL ='B' 7  E$STIM ='B' 1  E$SCRS ='B' 2  E$SLOA ='B' 3  E$SUNL ='B' 4  E$SHRC ='B' 5  E$SMES ='B' 6  E$CCPU ='B' 10  E$SINT ='B' 1 ; E$SINT ='B' 2 E$CSDE ='B' 11' E$SABO ='B' 1  EH$NOR ='B' 1  EH$STA ='B' 2  EH$CRS ='B' 3  EH$VIR ='B' 1  EH$EXT ='B' 2  EH$COU ='B' 4  EH$QBS ='B' 10 EH$LMR ='B' 20 E.=0 E$TLGH:'L' .BLKW 1E$TTSK:'L' .BLKW 2E$TUIC:'L' .BLKW 1E$TTID:'L' .BLKB 2E$TTIU:'L' .BLKB 1E$TFLG:'L' .BLKB 1 .EVEN E$TLEN:'L' ET$PRV ='B' 1  ET$PRI ='B' 2   E.=0 E$ILGH:'L' .BLKW 1E$ILDV:'L' .BLKW 1E$ILUN:'L' .BLKB 1E$IPCO:'L' .BLKB 1E$IPUN:'L' .BLKB 1E$IPSU:'L' .BLKB 1 .IF DF R$$MPL'E$IPDV:'L' .BLKW 1 .ENDC E$IFLG:'L' .BLKB 1 .BLKB 1IE$IVOL:'L' .BLKB 12.E$IPAK:'L' .BLKB 4 E$IDEV:'L'E$IDCL:'L' .BLKW 1E$IDTY:'L' .BLKW 2E$IOPR:'L' .BLKW 2E$IERS:'L' .BLKB 1E$IERH:'L' .BLKB 1 .IF DF R$$MPLWE$IBLK:'L' .BLKW 2E$ICYL:'L' .BLKW 2 .ENDCG .EVEN E$ILEN:'L' EI$SUB ='B' 1  .IF DF R$$MPL$ EI$NUX ='B' 2 .ENDC$ H9 | Maximum Retries | Retries Left |O.=0.E$OLGN:'L' .BLKW 1E$OTSK:'L' .BLKW 2E$OUIC:'L' .BLKW 1E$OTID:'L' .BLKB 2E$OTIU:'L' .BLKB 1 .BLKB 1BE$OFNC:'L' .BLKW 1E$OFLG:'L' .BLKB 1 .BLKB 1LE$OADD:'L' .BLKW 2E$OSIZ:'L' .BLKW 1E$ORTY:'L' .BLKB 1' .BLKB 1E .EVEN E$OLEN:'L' EO$TRA ='B' 1  EO$DMA ='B' 2' EO$EXT ='B' 4. EO$PIP ='B' 10V .=0NE$ALGH:'L' .BLKW 1 .=0 E$ALDV:'L' .BLKW 1E$ALUN:'L' .BLKB 1E$APCO:'L' .BLKB 1E$APUN:'L' .BLKB 1E$APSU:'L' .BLKB 1 .IF DF R$$MPL.E$APDV:'L' .BLKW 1 .ENDC'E$ADFG:'L' .BLKB 1E$ATIU:'L' .BLKB 1E$ATSK:'L' .BLKW 2E$AUIC:'L' .BLKW 1E$ATID:'L' .BLKW 1E$AFNC:'L' .BLKW 1E$AFLG:'L' .BLKB 1 .BLKB 1WE$AADD:'L' .BLKW 2E$ASIZ:'L' .BLKW 1 .EVEN E$ALEN:'L' EA$SUB ='B' 1' .IF DF R$$MPL  EA$NUX ='B' 2 .ENDC$ EA$TRA ='B' 1$ EA$DMA ='B' 2 EA$EXT ='B' 4W EA$PIP ='B' 10 .PSECT .MACRO EPKDF$ X,Y .ENDM .ENDMX  .MACRO EVNDF$ L,B,LST .IIF NB LST .LIST .ASECT' .=0E.VLNK:'L' .BLKW 1E.VSIZ:'L' .BLKB 1E.VTYP:'L' .BLKB 1E.VUCB:'L' .BLKW 1 ET.LOW='B'0 ET.QIO='B'0L ET.BND='B'2' ET.UNB='B'4$ ET.BCP='B'6B ET.REJ='B'10 ET.DIS='B'12 ET.DCP='B'14 ET.ICS='B'16 ET.OOB='B'20 ET.ONO='B'22 ET.PHO='B'24 ET.HI='B'24P .=E.VUCB+2'E.VBCT:'L' .BLKW 1E.VBND:'L' .BLKB 6 E.VBLN:'L' .=E.VUCB+2E.VAPR:'L' .BLKW 1E.VADR:'L' .BLKW 1E.VFLG:'L' .BLKW 1 .=E.VFLG+2X E.VSLN:'L' .=E.VFLG+2E.VOBM:'L' .BLKW 6E.VHDR:'L' .BLKW 2E.VTAB:'L' .BLKB 10. E.VOLN:'L' .=E.VFLG+2WE.VSWC:'L' .BLKW 1 E.VTLN:'L' EF.NCO='B'1. EF.NOI='B'2W EF.AST='B'10 EF.LCK='B'40 EF.QUE='B'100' EF.MDE='B'200 .=E.VUCB+2 E.VULN:'L' .=E.VUCB+22E.VRR:'L' .BLKW 1I E.VRLN:'L' .=E.VUCB+2TE.VRD:'L' .BLKW 1' E.VDLN:'L' .=E.VUCB+2V E.VDCL:'L' .PSECTL .IF NB LST .NLISTB.IFF .MACRO EVNDF$ .ENDM.ENDC' .ENDM EVNDF$AX  .MACRO HDRDF$,L,B .ASECTX.=0SH.CSP:'L'.BLKW 1H.HDLN:'L'.BLKW 1WH.EFLM:'L'.BLKW 2WH.CUIC:'L'.BLKW 1BH.DUIC:'L'.BLKW 1.H.IPS:'L'.BLKW 1H.IPC:'L'.BLKW 1H.ISP:'L'.BLKW 1H.ODVA:'L'.BLKW 1FH.ODVL:'L'.BLKW 1'H.TKVA:'L'.BLKW 1'H.TKVL:'L'.BLKW 1.H.PFVA:'L'.BLKW 1'H.FPVA:'L'.BLKW 1.H.RCVA:'L'.BLKW 1.H.EFSV:'L'.BLKW 1+H.FPSA:'L'.BLKW 1 H.WND:'L'.BLKW 1H.DSW:'L'.BLKW 1H.FCS:'L'.BLKW 1H.FORT:'L'.BLKW 1H.OVLY:'L'.BLKW 1$H.VEXT:'L'.BLKW 1.H.SPRI:'L'.BLKB 1H.NML:'L'.BLKB 1H.00DATADATADATADATADATADATADATADATADATADATARRVA:'L'.BLKW 1CH.X25:'L'.BLKB 1 .BLKB 1 .BLKW 2H.GARD:'L'.BLKW 1'H.NLUN:'L'.BLKW 1'H.LUN:'L'.BLKW 2H.FPSL='B'25.*2:.=0LW.BPCB:'L'.BLKW 1WW.BLVR:'L'.BLKW 11W.BHVR:'L'.BLKW 1FW.BATT:'L'.BLKW 1'W.BSIZ:'L'.BLKW 1'W.BOFF:'L'.BLKW 1.W.BFPD:'L'.BLKB 1'W.BNPD:'L'.BLKB 1.W.BLPD:'L'.BLKW 1. W.BLGH:'L' .PSECT .MACRO HDRDF$ X,Y .ENDM .ENDMX  .MACRO HWDDF$,L,BMPCSR='B'177746MPAR='B'172100PIRQ='B'177772PR0='B'0 PR1='B'40B PR4='B'200 PR5='B'240 PR6='B'300 PR7='B'340 PS='B'177776 SWR='B'177570L TPS='B'177564' .IF DF E$$EAE AC='B'177302 MQ='B'177304 SC='B'177310 .ENDC .IF DF M$$MGEKDSAR0='B'172360KDSDR0='B'172320KISAR0='B'172340KINAR0='B'KISAR0KISAR5='B'172352KINAR5='B'KISAR5KISAR6='B'172354KINAR6='B'KISAR6KISAR7='B'172356KINAR7='B'KISAR7KISDR0='B'172300KISDR6='B'172314KISDR7='B'172316SISDR0='B'172200UDSAR0='B'177660UDSDR0='B'177620UISAR0='B'177640UISAR4='B'177650UISAR5='B'177652UISAR6='B'177654UISAR7='B'177656UISDR0='B'177600UISDR4='B'177610UISDR5='B'177612UISDR6='B'177614UISDR7='B'177616UBMPR='B'1702003CMODE='B'140000D .IFTFPMODE='B'30000 .IFTD SR0='B'177572I SR3='B'172516 .ENDC FE.EXT='B'1A FE.MUP='B'2 FE.EXV='B'4A FE.DRV='B'10 FE.PLA='B'20 FE.CAL='B'40 FE.PKT='B'100 FE.EXP='B'2007 FE.LSI='B'4003FE.OFF='B'1000FE.FDT='B'2000FE.X25='B'4000FE.DYM='B'10000'FE.CEX='B'20000'FE.MXT='B'40000'FE.NLG='B'100000 F2.DAS='B'1A F2.LIB='B'2 F2.MP='B'4 F2.EVT='B'10 F2.ACN='B'20 F2.SDW='B'40 F2.POL='B'1000 F2.WND='B'2006 F2.DPR='B'4007F2.IRR='B'1000F2.GGF='B'2000F2.RAS='B'4000F2.AHR='B'10000FF2.RBN='B'20000F2.SWP='B'400007F2.STP='B'100000 F3.CRA='B'1E F3.NWK='B'2E F3.EIS='B'4E F3.STM='B'10 F3.UDS='B'20 F3.PRO='B'40 F3.XHR='B'100P F3.AST='B'200E F3.11S='B'400LF3.CLI='B'1000F3.TCM='B'2000F3.PMN='B'4000F3.WAT='B'10000MF3.RLK='B'20000XF3.SHF='B'40000T;F3.RES='B'100000' HF.UBM='B'1D HF.EIS='B'2L HF.QB='B'4 HF.CIS='B'200THF.FPP='B'100000 .MACRO HWDDF$ X,Y .ENDM .ENDMX  .MACRO ITBDF$ L,B,SYSDEF .IF DF A$$TRP .MCALL PKTDF$ PKTDF$' .ENDC .ASECT' .=0X.LNK:'L' .BLKW 1X.JSR:'L' JSR R5,@#0X.PSW:'L' .BLKB 1' .BLKB 1X.ISR:'L' .BLKW 10 X.FORK:'L' .BLKW 1 .BLKW 1 .BLKW 1 .BLKW 1 .IF DF M$$MGEX.REL:'L' .BLKW 1' .ENDCX.DSI:'L' .BLKW 1NX.TCB:'L' .BLKW 1' .IF NB SYSDEF .IF DF A$$TRP .BLKW 1X.AST:'L' .BLKB A.PRMF .ENDCX.VEC:'L' .BLKW 1FX.VPC:'L' .BLKW 1' X.LEN:'L'P .ENDC .PSECTR.MACRO ITBDF$ X,Y,Z .ENDM ITBDF$ .ENDM ITBDF$X  .MACRO LBLDF$ L,B .ASECTL.=0DR$LNAM:'L'.BLKW 2CR$LSA:'L' .BLKW 1.R$LHGV:'L'.BLKW 1.R$LMXV:'L'.BLKW 1R$LLDZ:'L'.BLKW 1R$LMXZ:'L'.BLKW 1 R$LOFF:'L'.BLKW 1'R$LWND:'L'.BLKW 11R$LSEG:'L'.BLKW 11R$LFLG:'L'.BLKW 1.R$LDAT:'L'.BLKW 3.R$LSIZ:'L'.BLKW 0KLD$ACC='B'100000LD$RSV='B'040000LD$CLS='B'020000LD$SUP='B'000010LD$REL='B'000004.=0NL$BTSK:'L'.BLKW 2 L$BPAR:'L'.BLKW 2 L$BSA:'L' .BLKW 1NL$BHGV:'L'.BLKW 1OL$BMXV:'L'.BLKW 1DL$BLDZ:'L'.BLKW 1DL$BMXZ:'L'.BLKW 1L$BOFF:'L'.BLKW 1BL$BWND:'L'.BLKB 1$L$BSYS:'L'.BLKB 1$L$BSEG:'L'.BLKW 1$L$BFLG:'L'.BLKW 1$L$BDAT:'L'.BLKW 3$!L$BLIB:'L'.BLKW <7.*>+1 L$BPRI:'L'.BLKW 1'L$BXFR:'L'.BLKW 11L$BEXT:'L'.BLKW 11L$BSGL:'L'.BLKW 1.L$BHRB:'L'.BLKW 1.L$BBLK:'L'.BLKW 1KL$BLUN:'L'.BLKW 1L$BROB:'L'.BLKW 1DL$BROL:'L'.BLKW 1S .BLKW <512.-.>/2LL$BASG:'L'.BLKW 0$$LBXL='B'<8.*>.=772KL$BFL2:'L'.BLKW 1KL$BLRL:'L'.BLKW 1KL$AME:'L' .BLKW 1K; .IIF NE .-1000 .ERROR DEFINITIONS OVERLAP NEXT LABEL BLOCK LB$REV='B'000400TS$PIC='B'100000TS$NHD='B'040000TS$ACP='B'020000TS$PMD='B'010000TS$SLV='B'004000TS$NSD='B'002000TS$PRV='B'000400TS$CMP='B'000200TS$CHK='B'000100TS$RES='B'000040TS$IOP='B'000020TS$SUP='B'000010TS$XHR='B'000004TS$NXH='B'000002TS$NEW='B'000001T2$FMP='B'000002T2$CLI='B'000001 .PSECT. .MACRO LBLDF$ X,Y .ENDM .ENDM@X  .MACRO PC00#O F &BDF$ L,B,SYSDEFL .ASECTK.=0P.LNK:'L'.BLKW 1P.PRI:'L'.BLKB 1P.IOC:'L'.BLKB 1P.NAM:'L'.BLKW 2P.SUB:'L'.BLKW 1P.MAIN:'L'.BLKW 1' .IF NB SYSDEF .IF NDF M$$MGE' P.HDR:'L'S .ENDC .IFTFP.REL:'L'.BLKW 1 P.BLKS:'L'P.SIZE:'L'.BLKW 14P.WAIT:'L'.BLKW 10P.SWSZ:'L'.BLKW 1P.BUSY:'L'.BLKB 2S P.OWN:'L'0P.TCB:'L'.BLKW 1P.STAT:'L'.BLKW 14 .IFTH .IF DF M$$MGEP.HDR:'L' .BLKW 1P .ENDCP.PRO:'L' .BLKW 11P.ATT:'L' .BLKW 2  .IF NDF P$$LASMP.LGTH='B'P.PRO .IFF P.LGTH='B'.D .ENDC .IFF .PSECTPS.OUT='B'100000PS.CKP='B'40000LPS.CKR='B'20000LPS.CHK='B'10000LPS.FXD='B'4000PS.PER='B'2000PS.LIO='B'1000 PS.NSF='B'400F PS.COM='B'200. PS.PIC='B'100C PS.SYS='B'40 PS.DRV='B'20 PS.DEL='B'10 PS.APR='B'7  .ASECTT.=0BA.PCBL:'L'.BLKW 1BA.PRI:'L'.BLKB 1A.IOC:'L'.BLKB 1A.TCB:'L'.BLKW 1A.TCBL:'L'.BLKW 1 A.STAT:'L'.BLKB 1 A.MPCT:'L'.BLKB 1BA.PCB:'L'.BLKW 1 A.LGTH='B'.  .PSECT: AS.DEL='B'10 AS.EXT='B'4A AS.WRT='B'2' AS.RED='B'1 .ENDC .MACRO PCBDF$ X,Y,Z .ENDM .ENDM X  .MACRO PKTDF$,L,B,SYSDEF0 .ASECTK.=177774A.KSR5:'L' .BLKW 1A.DQSR:'L' .BLKW 1 .BLKW 1A.CBL:'L' .BLKW 1CA.BYT:'L' .BLKW 1'A.AST:'L' .BLKW 10A.NPR:'L' .BLKW 1DA.PRM:'L' .BLKW 1' AS.FPA='B'1 AS.RCA='B'2' AS.RRA='B'3. AS.PFA='B'41 AS.REA='B'5L AS.CAA='B'6L AF.XCC='B'1C AF.NOT='B'2 AF.OOB='B'4B AF.AST='B'10 AF.ESQ='B'20 AF.LCK='B'40 AF.QUE='B'100 AF.MDE='B'200D AB.NPV='B'1E AB.TYP='B'2W AK.BUF='B'200D AK.OCB='B'201 AK.GBI='B'202X AK.GGF='B'303..=0O.LNK:'L'.BLKW 1O.MCRL:'L'.BLKW 1SO.PTCB:'L'.BLKW 1=O.AST:'L'.BLKW 1O.EFN:'L'.BLKW 1O.ESB:'L'.BLKW 1O.STAT:'L'.BLKW 8. O.LGTH='B'.  .ASECT.=0:I.LNK:'L' .BLKW 1:I.PRI:'L' .BLKB 1:I.EFN:'L' .BLKB 1AI.TCB:'L' .BLKW 1'I.LN2:'L' .BLKW 1PI.UCB:'L' .BLKW 1'I.FCN:'L' .BLKW 1FI.IOSB:'L' .BLKW 1 .BLKW 1 .BLKW 1I.AST:'L' .BLKW 1QI.PRM:'L' .BLKW 10 .BLKW 6 .BLKW 1IP.FAK ='B' 20IP.ABO ='B' 40IP.PND ='B' 100'IP.UMR ='B' 200' I.ATTL='B'.' I.LGTH='B'.F .ASECT.= 0I.XLNK:'L' .BLKW 1I.XIOP:'L' .BLKW 1I.XTCB:'L' .BLKW 1I.XMOD:'L' .BLKW 2I.XRBF:'L' .BLKW 2I.XRBL:'L' .BLKW 1I.XTMO:'L' .BLKW 1I.XPBF:'L' .BLKW 2I.XPBL:'L' .BLKW 1I.XPBV:'L' .BLKW 1I.XTTB:'L' .BLKW 2I.XTTL:'L' .BLKW 1I.XDBF:'L' .BLKW 2I.XDBL:'L' .BLKW 1 I.XLEN='B'.B.=0FG.LNK:'L' .BLKW 11G.GRP:'L' .BLKB 11G.STAT:'L' .BLKB 1G.CNT:'L' .BLKW 10G.EFLG:'L' .BLKW 2 G.LGTH='B'. GS.DEL='B'1B PC.HIH='B'1= PC.LOW='B'2U PC.ALF='B'4 PC.XAF='B'10 PC.XIT='B'200.PC.NRM='B'PC.HIH*400PC.ALM='B'PC.LOW*400 PF.INS='B'40 PF.LOG='B'100 PF.REQ='B'200WPF.ALL='B'177777.=0C.PTCB:'L' .BLKW 1C.PNAM:'L' .BLKW 2C.PSTS:'L' .BLKW 1C.PDPL:'L' .BLKB 1C.PCPL:'L' .BLKB 1 C.PRMT:'L' CP.NUL='B'1L CP.MSG='B'2 CP.LGO='B'4L CP.DSB='B'10 CP.PRV='B'20 CP.SGL='B'40 CP.NIO='B'100B CP.RST='B'200L CP.EXT='B'400T CM.INE='B'11 CM.IND='B'2B CM.CEN='B'3G CM.CDS='B'4 CM.ELM='B'5 CM.EXT='B'6 CM.LKT='B'7 CM.RMT='B'8. CM.MSG='B'9..=0FA.REL:'L' .BLKW 10A.DIS:'L' .BLKW 1HA.MAS:'L' .BLKW 2LA.NUM:'L' .BLKB 10A.FLEN:'L'.BLKB 1FA.LIN:'L' .BLKW 1LA.ACC:'L' .BLKB 1.A.STA:'L' .BLKB 1. A.PLEN='B'.W.=A.LINSA.IMAP:'L' .BLKW 1A.IBUF:'L' .BLKW 1A.ILEN:'L' .BLKW 1A.SMAP:'L' .BLKW 1A.SBUF:'L' .BLKW 1A.SLEN:'L' .BLKW 1A.IOS:'L' .BLKW 2S A.RES='B'. UA.ACC='B'1 UA.PRO='B'2L UA.ECH='B'40 UA.TYP='B'10 UA.SPE='B'20 UA.PUT='B'40 UA.CAL='B'100 UA.COM='B'200 UA.ALL='B'400MUA.TRN='B'1000UA.TRA='B'2000.=0.A.ACCE:'L' .BLKW 1A.DEQU:'L' .BLKW 1A.POWE:'L' .BLKW 1A.INPU:'L' .BLKW 1A.OUTP:'L' .BLKW 1A.CONN:'L' .BLKW 1A.DISC:'L' .BLKW 1A.RECE:'L' .BLKW 1A.PROC:'L' .BLKW 1A.TRAN:'L' .BLKW 1A.CALL:'L' .BLKW 1 AS.DLT='B'1. AS.DIS='B'2W .PSECTP .MACRO PKTDF$ X,Y,Z .ENDM .ENDMX  .MACRO SCBDF$,L,B,SYSDEF. .ASECT'.=177772S.RCNT:'L' .BLKB 1S.ROFF:'L' .BLKB 1S.BMSV:'L' .BLKW 1S.BMSK:'L' .BLKW 1S.LHD:'L' .BLKW 2AS.PRI:'L' .BLKB 1NS.VCT:'L' .BLKB 1'S.CTM:'L' 00+DATADATADATADATADATADATADATADATADATADATA.BLKB 1'S.ITM:'L' .BLKB 1'S.CON:'L' .BLKB 1'S.STS:'L' .BLKB 1'S.CSR:'L' .BLKW 1'S.PKT:'L' .BLKW 1'S.FRK:'L' .BLKW 1' S.DMCS:'L' .BLKW 1 .BLKW 1 .BLKW 1 .IF NB SYSDEF .IF DF L$$DRV & M$$MGE. .BLKW 1 .ENDC S.PORT:'L'S.PBIA='B'S.PORT+2S.QST='B'S.PORT+4.S.BSYU='B'S.PORT+6 S.CCB:'L'S.MPR:'L' .BLKW 6S .BLKW 1S.UMHD:'L'.BLKW 2.S.UMCT:'L'.BLKW 1. .IFF' .PSECT SP.EIP='B'1L SP.ENB='B'2' SP.LOG='B'4.SPARE=10 .ASECT..=0LM.LNK:'L' .BLKW 1M.UMRA:'L' .BLKW 1M.UMRN:'L' .BLKW 1M.UMVL:'L' .BLKW 1M.UMVH:'L' .BLKB 1M.BFVH:'L' .BLKB 1M.BFVL:'L' .BLKW 1 M.LGTH='B'.. .ENDC .PSECT .MACRO SCBDF$,X,Y,Z .ENDM .ENDMX  .MACRO TCBDF$,L,B,SYSDEF .ASECT.=0CT.LNK:'L' .BLKW 1AT.PRI:'L' .BLKB 1=T.IOC:'L' .BLKB 1UT.CPCB:'L' .BLKW 1T.NAM:'L' .BLKW 2KT.RCVL:'L' .BLKW 2T.ASTL:'L' .BLKW 2T.EFLG:'L' .BLKW 2T.UCB:'L' .BLKW 1PT.TCBL:'L' .BLKW 1T.STAT:'L' .BLKW 1T.ST2:'L' .BLKW 1LT.ST3:'L' .BLKW 11T.DPRI:'L' .BLKB 1T.LBN:'L' .BLKB 31T.LDV:'L' .BLKW 11T.PCB:'L' .BLKW 11T.MXSZ:'L' .BLKW 1T.ACTL:'L' .BLKW 1T.SAST:'L' .BLKW 1 .BLKB 1T.TIO:'L' .BLKB 1XT.TKSZ:'L' .BLKW 1$$$=.T.ATT:'L' .BLKW 2 T.OFF:'L' .BLKW 1 .BLKB 1T.SRCT:'L' .BLKB 1T.RRFL:'L' .BLKW 2 .IF NDF P$$LASB.=$$$ .ENDC .IF NB SYSDEF$$$=.BT.OCBH:'L' .BLKW 2T.RDCT:'L' .BLKW 1 .IF NDF P$$OFF'.=$$$2 .ENDC$$$=.KT.EFLM:'L' .BLKW 2 .IF NDF S$$TOP&T$$BUF.=$$$: .ENDC$$$=..T.HDLN:'L' .BLKB 1 .IF NDF A$$HDR.=$$$L .ENDC$$$=.DT.GGF:'L'.BLKB 1$ .IF NDF R$$SND&G$$EFN!A$$CLI&G$$EFN.=$$$' .ENDC .EVEN T.LGTH='B'.1 T.EXT='B'0 .IFFLTS.EXE='B'100000TS.RDN='B'40000=TS.MSG='B'20000KTS.NRP='B'10000BTS.RUN='B'4000TS.HLD='B'2000TS.STP='B'1000 TS.OUT='B'400N TS.CKP='B'200$ TS.CKR='B'100FATS.BLK='B'TS.CKP!TS.CKR!TS.EXE!TS.MSG!TS.NRP!TS.OUT!TS.RDN!TS.STPFT2.AST='B'100000T2.DST='B'40000.T2.CHK='B'20000T2.CKD='B'10000$T2.SEF='B'4000T2.FXD='B'2000T2.REX='B'1000 T2.CAF='B'400D T2.HLT='B'200N T2.ABO='B'100G T2.STP='B'40 T2.STP='B'20 T2.SPN='B'10 T2.SPN='B'4$ T2.WFR='B'2. T2.WFR='B'1'T3.ACP='B'100000T3.PMD='B'40000'T3.REM='B'20000'T3.PRV='B'10000'T3.MCR='B'4000T3.SLV='B'2000T3.CLI='B'1000 T3.RST='B'400P T3.NSD='B'200T T3.CAL='B'100P T3.ROV='B'40 T3.NET='B'20 T3.GFL='B'10; ='B'4S T3.SWS='B'2S; ='B'1U .ENDC .PSECT .MACRO TCBDF$ X,Y,Z .ENDM .ENDMX  .MACRO LCBDF$,L,B .ASECT0.=0FL.LNK:'L' .BLKW 1'L.NAM:'L' .BLKW 10L.UNIT:'L' .BLKB 1L.TYPE:'L' .BLKB 1L.UCB:'L' .BLKW 1'L.ASG:'L' .BLKW 12L.LGTH='B'.-L.LNK' .PSECTW .MACRO LCBDF$,X,Y .ENDM .ENDMhX  .MACRO UCBDF$,L,B,TTDEF,SYSDF .ASECT0 .IF NB SYSDF0 .IF DF E$$DVC .IF DF M$$MUP.=177766 .IFF.=177770 .ENDCU.IOC:'L' .BLKW 2'U.ERSL:'L' .BLKB 1U.ERHL:'L' .BLKB 1U.ERSC:'L' .BLKB 1U.ERHC:'L' .BLKB 1 .ENDC .ENDC.=177772 U.MUP:'L'U.CLI:'L' .BLKW 1CU.LUIC:'L' .BLKW 1U.OWN:'L' .BLKW 1KU.DCB:'L' .BLKW 1KU.RED:'L' .BLKW 1LU.CTL:'L' .BLKB 1LU.STS:'L' .BLKB 1KU.UNIT:'L' .BLKB 1U.ST2:'L' .BLKB 1.U.CW1:'L' .BLKW 1AU.CW2:'L' .BLKW 1NU.CW3:'L' .BLKW 1U.CW4:'L' .BLKW 1CU.SCB:'L' .BLKW 1FU.ATT:'L' .BLKW 1 U.BUF:'L' .BLKW 1D .BLKW 1U.CNT:'L' .BLKW 1U.ACP='B'U.CNT+2U.VCB='B'U.CNT+4U.CBF='B'U.CNT+2U.KCSR='B'U.CNT+2'U.KCS6='B'U.KCSR+2U.SPC='B'U.CNT+6U.SUB='B'U.CNT+6U.FNUM='B'U.CNT+10U.FCDE='B'U.CNT+12U.UTIL='B'U.VCB+2C UU.SER ='B'1 UU.RCT ='B'2 UU.AVN ='B'4 UU.GUS ='B'10E UU.ONL ='B'20 UU.SPC ='B'40 UU.ATN ='B'100UU.RDY ='B'200UU.ABO ='B'400:UU.SIO ='B'1000WUU.IOS ='B'2000.UU.BLK ='B'4000UU.KNO ='B'10000UU.SEL ='B'20000U.MEDI='B'U.VCB+4 U.BPKT='B'U.VCB+10U.MLUN='B'U.VCB+14U.UNFL='B'U.VCB+16U.UNTI='B'U.VCB+24U.2MED='B'U.VCB+34U.SHUN='B'U.VCB+40U.SHST='B'U.VCB+42U.TRCK='B'U.VCB+44U.GRP='B'U.VCB+46CU.CYL='B'U.VCB+50TU.USVR='B'U.VCB+52U.UHVR='B'U.VCB+53U.RCTS='B'U.VCB+54U.RBNS='B'U.VCB+56U.RCTC='B'U.VCB+57U.UNSZ='B'U.VCB+60003O F &U.VSER='B'U.VCB+64.=U.BUF4U.TUX:'L' .BLKW 1U.TSTA:'L' .BLKW 4U.TFRQ:'L' .BLKW 1U.TFLK:'L' .BLKW 1U.TCHP:'L' .BLKB 1U.TCVP:'L' .BLKB 1U.UIC:'L' .BLKW 10U.TTYP:'L' .BLKB 1U.TMTI:'L' .BLKB 1U.TTAB:'L' .BLKW 1U.CTYP:'L' .BLKB 1U.TLPP:'L' .BLKB 1U.TST5:'L' .BLKW 1U.TST6:'L' .BLKW 1U.TIXL:'L' .BLKW 1U.ACB:'L' .BLKW 1+U.AFLG:'L' .BLKW 1U.ADMA:'L' .BLKW 1 .=U.BUF+2'U.CTCB:'L' .BLKW 1U.COTQ:'L' .BLKW 2U.RED2:'L' .BLKW 1 S1.RST='B'1. S1.ESC='B'2+ S1.RSP='B'4' S1.PTH='B'10 S1.RNE='B'20 S1.TSY='B'40 S1.OBY='B'100 S1.IBY='B'200L S1.DPR='B'400'S1.DEC='B'1000S1.IBF='B'2000S1.DSI='B'4000S1.RES='B'10000BS1.RNF='B'20000KS1.TNE='B'40000.S1.USI='B'100000 S2.RCU='B'1T S2.WRA='B'61 S2.WRB='B'2. S2.WAL='B'10 S2.BRQ='B'20 S2.SRQ='B'40 S2.ORQ='B'100' S2.IRQ='B'200L S2.FLF='B'400.S2.ELF='B'1000 S2.CR='B'2000LS2.OBF='B'4000S2.PCU='B'10000+S2.BEL='B'20000LS2.CTO='B'40000.S2.CTS='B'100000 S3.ACR='B'1R S3.TAB='B'2E S3.CTC='B'4R S3.RAL='B'10 S3.NEC='B'20 S3.TSY='B'40 S3.8BC='B'100Y S3.FDX='B'200Y S3.MHE='B'400RS3.ICE='B'1000S3.TME='B'2000S3.PTH='B'4000S3.RES='B'10000'S3.PPT='B'20000'S3.RUB='B'40000' S4.HFL='B'7U S4.VFL='B'10 S4.HFF='B'20 S4.HHT='B'40 S4.DLO='B'1002 S4.HSY='B'200B S4.ANI='B'400QS4.AVO='B'1000S4.BLK='B'2000S4.DEC='B'4000S4.EDT='B'10000'S4.RGS='B'200000S4.SFC='B'400000S4.ABD='B'100000 S5.SW1='B'10 S5.TMM='B'2' S5.XOF='B'4C S5.XON='B'10 S5.HPC='B'14 S5.HPO='B'20 S5.OXF='B'40 S5.ITI='B'1003S5.RPO='B'2000S5.VER='B'10000'S5.BCC='B'20000'S5.DAO='B'400000S5.ABP='B'100000 S6.EIO='B'4000S6.RLU='B'1000S6.RDI='B'100000 .PSECT' DV.REC='B'1R DV.CCL='B'2 DV.TTY='B'4 DV.DIR='B'10 DV.SDI='B'20 DV.SQD='B'40 DV.MSD='B'100 DV.UMD='B'200 DV.MBC='B'400 DV.EXT='B'400DV.SWL='B'1000DV.ISP='B'2000DV.OSP='B'4000DV.PSE='B'100000DV.COM='B'200000DV.F11='B'400000DV.MNT='B'100000U2.DH1='B'100000U2.DJ1='B'40000'U2.RMT='B'20000U2.HFF='B'10000OU2.L8S='B'10000'U2.NEC='B'4000U2.CRT='B'2000U2.ESC='B'1000 U2.LOG='B'400D U2.SLV='B'2005 U2.DZ1='B'100 U2.HLD='B'40 U2.AT.='B'20 U2.PRV='B'10 U2.L3S='B'4C U2.SCS='B'4' U2.VT5='B'2' U2.LWC='B'1' UM.OVR='B'1' UM.CLI='B'36 UM.DSB='B'2000 UM.NBR='B'400U2.R04='B'100000U2.7CH='B'10000VU3.UPC='B'20000SU3.PAR='B'40000PU3.OPA='B'100000 U4.CR='B'100 UC.ALG='B'200C UC.NPR='B'100V UC.QUE='B'40 UC.PWF='B'20 UC.ATT='B'10 UC.KIL='B'4D UC.LGH='B'3 US.BSY='B'200 US.MNT='B'1000 US.FOR='B'40 US.MDM='B'20 US.PWF='B'10 US.ABO='B'12 US.MDE='B'2 US.WCK='B'10 US.SPU='B'20 US.VV='B'1 US.KPF='B'1D .IF NB TTDEF' .IF DF T$$CPW US.CRW='B'4' US.DSB='B'2' US.OIU='B'1' .IFFL US.DSB='B'10 US.CRW='B'4C US.ECH='B'2D US.OUT='B'1M .ENDC .ENDC US.FRK='B'20 US.SHR='B'10 US.LAB='B'4' US.BSP='B'2P US.OFL='B'1 US.RED='B'20 US.PUB='B'41 US.UMD='B'10 UD.UNS='B'0' UD.200='B'1E UD.556='B'2F UD.800='B'3T UD.160='B'4L UD.625='B'5H UD.8K='B'6 .MACRO UCBDF$,X,Y,Z,ZZ0 .ENDM .ENDMX  .MACRO MTADF$,L,B .ASECTE.=0V.TCNT:'L' .BLKW 1V.TYPE:'L' .BLKB 1V.VCHA:'L' .BLKB 1V.LABL:'L' .BLKB 12.V.NXT:'L' .BLKW 1V.MVL:'L' .BLKW 1UV.UVL:'L' .BLKW 1DV.ATL:'L' .BLKW 1'V.UCB:'L' .BLKW 1SV.RVOL:'L' .BLKB 1V.MOU:'L' .BLKB 10V.TCHR:'L' .BLKW 1V.SEQN:'L' .BLKW 1V.SECN:'L' .BLKW 1V.TPOS:'L' .BLKB 1V.PSTA:'L' .BLKB 1V.TIMO:'L' .BLKW 1V.STAT:'L' .BLKW 3V.TRTB:'L' .BLKB 1V.EFTV:'L' .BLKB 1V.BLKL:'L' .BLKW 1V.RECL:'L' .BLKW 1V.FNAM:'L' .BLKW 3V.FTYP:'L' .BLKW 1V.FVER:'L' .BLKW 1V.CDAT:'L' .BLKW 2V.EDAT:'L' .BLKW 2V.BLKC:'L' .BLKW 2V.RTYP:'L' .BLKB 1V.FATT:'L' .BLKB 1 .BLKB 30..V.WIND:'L' .BLKW 4.V.MST2:'L' .BLKW 1:V.FABY:'L' .BLKB 1L .BLKB 1V.ANSN:'L' .BLKB 17.V.BOFF:'L' .BLKB 1.V.DENS:'L' .BLKB 1.V.DRAT:'L' .BLKB 1.V.DBLK:'L' .BLKW 1.V.DREC:'L' .BLKW 1. S.VSCB='B'.' .PSECT1 .ASECT'.=0L W.CTL:'L'.BLKW 1L V.WINC='B'V.WIND+W.CTL .PSECT' .ASECT.=0L .IF DF R$$11MM.NXT:'L' .BLKW 1.00;DATADATADATADATADATADATADATADATADATADATA .ENDCM.UIC:'L' .BLKW 1'M.CH:'L' .BLKW 1M.PROT:'L' .BLKW 1 .IF NDF R$$11MC .BLKW 22M.NXT:'L' .BLKW 11 .ENDCM.RVOL:'L' .BLKB 1M.STAT:'L' .BLKB 1M.VIDP:'L' .BLKW 1M.UCB:'L' .BLKW 1Y S.MVL='B'. .PSECTB .ASECT..=0'L.NXT:'L' .BLKW 1FL.VOL1:'L' .BLKB 1L.VOL2:'L' .BLKB 1L.VID1:'L' .BLKB 6L.VID2:'L' .BLKB 6 S.UVL='B'. .PSECT.VM.OLD ='B' 200.VM.BYP ='B' 100VM.ULB ='B' 40VM.FSC ='B' 20VM.EXC ='B' 10 V2.INI ='B' 1. V2.XH2 ='B' 2. V2.XH3 ='B' 4.V2.NH3 ='B' 10V2.OAC ='B' 20 VP.RM ='B' 2 VP.WM ='B' 4 VP.UCM ='B' 6. VP.SM ='B' 10FVP.MOU ='B' 20VP.RWD ='B' 40VP.VFY ='B' VP.RWDVP.POS ='B' 100 VP.TO='B'1LWI.RDV ='B' 400.WI.WRV ='B' 1000WI.EXT ='B' 2000WI.LCK ='B' 4000MS.VER ='B' 200: MS.RID ='B' 1. MS.NMO ='B' 21 MS.TMO ='B' 4LMS.EXP ='B' 10 MO.OVR ='B' 12 MO.UIC ='B' 2. MO.PRO ='B' 4CMO.160 ='B' 10 .ENDMNX  .MACRO UDADF$,L,B .ASECT.=0CP.CRF:'L'.BLKB 4P.UNIT:'L'.BLKB 2 P.SEQ:'L'.BLKB 2P.OPCD:'L'.BLKB 12 .BLKB 1P.MOD:'L'.BLKB 2P.BCNT:'L'.BLKB 4MP.BUFF:'L'.BLKB 12.1P.LBN:'L'.BLKB 4 .BLKB 16. P.END:'L'Y P.LENG='B'..=P.BCNTP.OTRF:'L'.BLKB 4L.=P.BCNT .BLKB 2P.UNFL:'L'.BLKB 2I .BLKB 12.P.DVPM:'L'.BLKB 40P.SHUN:'L'.BLKB 2P.CPSP:'L'.BLKB 2N.=P.BCNT .BLKB 2P.UNFL:'L'.BLKB 2 .BLKB 12. .BLKB 4P.FORM:'L'.BLKB 2OP.SPED:'L'.BLKB 2B.=P.BCNTP.RBN:'L'.BLKB 4.=P.BCNT .BLKB 4 .BLKB 12.P.FMTI:'L'.BLKB 4L.=P.BCNTP.RECC:'L'.BLKB 4EP.TMGC:'L'.BLKB 4D.=P.BCNTP.VRSN:'L'.BLKB 2:P.CNTF:'L'.BLKB 2'P.HTMO:'L'.BLKB 2' .BLKB 2P.TIME:'L'.BLKB 8.P.CNTP:'L'.BLKB 4: .=P.OPCD+1P.FLGS:'L'.BLKB 1.P.STS:'L'.BLKB 2 .=P.BCNT+16.P.FBBK:'L'.BLKB 4K.=P.BCNTP.OTRF:'L'.BLKB 4BP.CMST:'L'.BLKB 2B.=P.BCNTP.MLUN:'L'.BLKB 2=P.UNFL:'L'.BLKB 2. .BLKB 4P.UNTI:'L'.BLKB 8.P.MEDI:'L'.BLKB 4'P.SHUN:'L'.BLKB 2'P.SHST:'L'.BLKB 2P.TRCK:'L'.BLKB 2=P.GRP:'L'.BLKB 2P.CYL:'L'.BLKB 2P.USVR:'L'.BLKB 1CP.UHVR:'L'.BLKB 1 P.RCTS:'L'.BLKB 2 P.RBNS:'L'.BLKB 1NP.RCTC:'L'.BLKB 1F.=P.SHUNP.FORM:'L'.BLKB 2 P.SPED:'L'.BLKB 2EP.FMEM:'L'.BLKB 2P.=P.TRCKP.UNSZ:'L'.BLKB 4LP.VSER:'L'.BLKB 4T.=P.FMEMP.MXWR:'L'.BLKB 4.P.NREC:'L'.BLKB 2=.=P.BCNTP.VRSN:'L'.BLKB 2.P.CNTF:'L'.BLKB 2=P.CTMO:'L'.BLKB 2BP.CSVR:'L'.BLKB 1BP.CHVR:'L'.BLKB 1.P.CNTI:'L'.BLKB 8..=P.BCNTP.RCSK:'L'.BLKB 4BP.TMSK:'L'.BLKB 4B.=0L.CRF:'L'.BLKB 4L.UNIT:'L'.BLKB 22L.SEQ:'L'.BLKB 2L.FMT:'L'.BLKB 1L.FLGS:'L'.BLKB 1 L.EVNT:'L'.BLKB 2 L.CNTI:'L'.BLKB 8.L.CSVR:'L'.BLKB 1 L.CHVR:'L'.BLKB 1ML.MLUN:'L'.BLKB 2DL.UNTI:'L'.BLKB 8.L.USVR:'L'.BLKB 1RL.UHVR:'L'.BLKB 1  .BLKB 2L.VSER:'L'.BLKB 4M .BLKB 16. L.LENG='B'.. .=L.MLUN+2L.BADR:'L'.BLKB 4R .=L.UHVR+1L.LVL:'L'.BLKB 1L.RTRY:'L'.BLKB 1KL.VSER:'L'.BLKB 4KL.HDCD:'L'.BLKB 4KL.SDI:'L'.BLKB 12. .=L.UHVR+1L.SCYL:'L'.BLKB 2 .=L.UHVR+1L.FMTD:'L' .BLKB 2L.GPCT:'L' .BLKB 4L.FSVR:'L' .BLKB 1L.FHVR:'L' .BLKB 1.=L.FMTD .BLKB 10.KL.STI:'L' .BLKB 62..=P.MEDIP.POS:'L' .BLKB 4.=P.FORMP.TRBC:'L' .BLKB 4 .=0NR$VRSN:'L' .BLKW 2R$USTA:'L' .BLKW 1R$CNTI:'L' .BLKW 4R$CSVR:'L' .BLKB 1R$CHVR:'L' .BLKB 1R$UNTI:'L' .BLKW 4R$USVR:'L' .BLKB 1R$UHVR:'L' .BLKB 1R$MLUN:'L' .BLKW 1R$CRF:'L' .BLKW 2'R$SEQ:'L' .BLKW 1'R$OPCD:'L' .BLKW 1 R$MSIZ='B'.D .PSECTB OP.ABO='B'1. OP.ACC='B'16.B OP.AVL='B'8. OP.CCD='B'17.' OP.CMP='B'32.T OP.DAP='B'11.. OP.ERS='B'18.1 OP.FMT='B'47.L OP.FLU='B'19. OP.GCS='B'2. OP.GUS='B'3. OP.ONL='B'9. OP.RD='B'33. OP.REP='B'37.. OP.RPL='B'20.' OP.SCC='B'4. OP.SUC='B'10.' OP.WR='B'34. OP.WTM='B'36.1OP.END='B'128. OP.SEX='B'7. OP.AVA='B'64.H OP.DUP='B'65. OP.ACP='B'66.W OP.ERG='B'26MD.CSE='B'20000'MD.CMP='B'40000NMD.EXP='B'100000MD.ERR='B'10000$ MD.OBC='B'4 MD.REV='B'10 MD.RWD='B'2S MD.UNL='B'20MD.SCH='B'4000MD.SCL='B'2000MD.SEC='B'1000 MD.SER='B'400' MD.SSH='B'200T MD.WBN='B'100. MD.WBV='B'40 MD.SEQ='B'20 MD.DLE='B'200' MD.EXC='B'40 MD.IMM='B'100' MD.ALL='B'2' MD.SPD='B'00CO F &13 MD.FEU='B'1' MD.VOL='B'2' MD.NXU='B'1C MD.RIP='B'1C MD.IMF='B'2W MD.CWB='B'10 MD.SWP='B'4P MD.SHD='B'20 MD.PRI='B'1 EF.BBR='B'200 EF.BBU='B'100 EF.LOG='B'40 EF.SEX='B'20 EF.EOT='B'10 EF.PLS='B'4' CF.ATN='B'200P CF.MSC='B'100E CF.OTH='B'40 CF.THS='B'20CF.RPL='B'100000 CF.SHD='B'2U CF.576='B'1S UF.CMR='B'1D UF.CMW='B'2UF.RPL='B'100000UF.INA='B'40000S UF.RMV='B'200WUF.SCH='B'4000UF.SCL='B'2000 UF.WBN='B'100'UF.WPH='B'20000'UF.WPS='B'10000' UF.576='B'4' UF.VSS='B'40 UF.VSU='B'20 FM.CNT='B'0' FM.BAD='B'1C FM.DSK='B'2C FM.SDI='B'3W FM.SDE='B'40 FM.TPE='B'5P FM.DEL='B'70 FM.FEL='B'10 FM.RPL='B'11 FM.STI='B'6' LF.SUC='B'200' LF.CON='B'1000 LF.BBR='B'40 LF.RCT='B'20 LF.SNR='B'10 ST.MSK='B'37 ST.SUB='B'40 ST.SUC='B'0' ST.CMD='B'1' ST.ABO='B'2S ST.OFL='B'35 ST.AVL='B'4C ST.MFE='B'5C ST.WPR='B'6R ST.CMP='B'7 ST.DAT='B'8. ST.HST='B'9. ST.CNT='B'10.' ST.DRV='B'11.' ST.DIA='B'31.' ST.BOT='B'15 ST.FMT='B'14 ST.LED='B'23 ST.POL='B'21 ST.RDT='B'20 ST.SEX='B'22 ST.TM ='B'16 ST.SUB='B'40 TF.800='B'1 TF.PE='B'2 TF.GCR='B'40 TF.BLK='B'10ST.NML='B'0*ST.SUB+ST.SUC0ST.SDI='B'1*ST.SUB+ST.SUC'ST.CON='B'2*ST.SUB+ST.SUC'ST.DUP='B'4*ST.SUB+ST.SUC'ST.ONL='B'8.*ST.SUB+ST.SUCST.SON='B'16.*ST.SUB+ST.SUC'ST.IPT='B'0*ST.SUB+ST.CMD'ST.UNK='B'0*ST.SUB+ST.OFL'ST.VOL='B'1*ST.SUB+ST.OFL'ST.IOP='B'2*ST.SUB+ST.OFL'ST.DPU='B'4.*ST.SUB+ST.OFLST.DIS='B'8.*ST.SUB+ST.OFLST.HWP='B'256.*ST.SUB+ST.WPRST.SWP='B'128.*ST.SUB+ST.WPRST.FER='B'0*ST.SUB+ST.DAT'ST.CTO='B'0*ST.SUB+ST.CNT'ST.FDC='B'1.*ST.SUB+ST.MFEST.FSH='B'2.*ST.SUB+ST.MFEST.FST='B'3.*ST.SUB+ST.MFEST.576='B'5.*ST.SUB+ST.MFEST.FCT='B'6.*ST.SUB+ST.MFEST.FEC='B'7.*ST.SUB+ST.MFEST.RCO='B'8.*ST.SUB+ST.MFEST.NRB='B'9.*ST.SUB+ST.MFEST.NMP='B'10.*ST.SUB+ST.MFEM ST.BBR='B'24ST.BBS='B'0*ST.SUB+ST.BBR'ST.BVO='B'1*ST.SUB+ST.BBR'ST.REF='B'2*ST.SUB+ST.BBR'ST.INR='B'3*ST.SUB+ST.BBR'ST.DAF='B'4*ST.SUB+ST.BBR'ST.NBA='B'5*ST.SUB+ST.BBR'ST.RCR='B'6*ST.SUB+ST.BBRRST.ISH='B'2.*ST.SUB+ST.DATST.DST='B'3.*ST.SUB+ST.DATST.ECC='B'7.*ST.SUB+ST.DATEV.ISH='B'2.*ST.SUB+ST.DATEV.DST='B'3.*ST.SUB+ST.DATEV.ECC='B'7.*ST.SUB+ST.DATEV.EC1='B'8.*ST.SUB+ST.DATEV.EC2='B'9.*ST.SUB+ST.DATEV.EC3='B'10.*ST.SUB+ST.DAT'EV.EC4='B'11.*ST.SUB+ST.DAT'EV.EC5='B'12.*ST.SUB+ST.DAT'EV.EC6='B'13.*ST.SUB+ST.DAT'EV.EC7='B'14.*ST.SUB+ST.DATEV.EC8='B'15.*ST.SUB+ST.DATTST.ODA='B'1.*ST.SUB+ST.HSTST.ODB='B'2.*ST.SUB+ST.HSTST.NXM='B'3.*ST.SUB+ST.HSTST.PAR='B'4.*ST.SUB+ST.HSTST.SDS='B'1.*ST.SUB+ST.CNTST.EDC='B'2.*ST.SUB+ST.CNTST.IDS='B'3.*ST.SUB+ST.CNTEV.SDS='B'1.*ST.SUB+ST.CNTEV.EDC='B'2.*ST.SUB+ST.CNTEV.IDS='B'3.*ST.SUB+ST.CNTST.SRT='B'1.*ST.SUB+ST.DRVST.SRI='B'2.*ST.SUB+ST.DRVST.POE='B'3.*ST.SUB+ST.DRVST.RDY='B'4.*ST.SUB+ST.DRVST.CLK='B'5.*ST.SUB+ST.DRVST.RSP='B'6.*ST.SUB+ST.DRVST.SUR='B'7.*ST.SUB+ST.DRVST.PSP='B'8.*ST.SUB+ST.DRVEV.SRT='B'1.*ST.SUB+ST.DRVEV.SRI='B'2.*ST.SUB+ST.DRVEV.POE='B'3.*ST.SUB+ST.DRVEV.RDY='B'4.*ST.SUB+ST.DRVEV.CLK='B'5.*ST.SUB+ST.DRVEV.RSP='B'6.*ST.SUB+ST.DRVEV.SUR='B'7.*ST.SUB+ST.DRVEV.PSP='B'8.*ST.SUB+ST.DRV MSCNT='B' 1E DISK='B' 2 DISKLT='B' 4 HSC50 ='B' 1.U UDA50 ='B' 2.T RC25 ='B' 3.T VMS ='B' 4.' TU81 ='B' 5.V UDA5A ='B' 6.S RD.RX ='B' 7.T T1020 ='B' 8.U TK50 ='B' 9.KRUX50 ='B' 10.QDA50 ='B' 13.TK70 ='B' 14.RRD50 ='B' 16.RQDX3 ='B' 19. RA80 ='B' 1 RC25 ='B' 2 RCF25 ='B' 3 RA60 ='B' 4 RA81 ='B' 5 RD51 ='B' 6 RX50 ='B' 7 RD52 ='B' 10R RD53 ='B' 11+ RX33 ='B' 12' RA82 ='B' 13D RD31 ='B' 14. RD54 ='B' 15 RRD50 ='B' 16. RX31 ='B' 17P RX32 ='B' 20+ RX18 ='B' 21B7; THEREFORE "DURA 80" IS ENCODED AS .WORD 022544,010120' .MACRO UDADF$ X,Y .ENDM .ENDMX  .MACRO SPMDF$,L,B .MCALL SPMHK$ .MACRO $DFINI TYPE,INIVAL TYPE'VAL=INIVAL TYPE'MIN=INIVAL .ENDM $DFINI5 .MACRO $DFN TYPE,SYM,LEN TYPE'SYM=TYPE'VAL TYPE'VAL=TYPE'VAL+1 .IIF NB LEN TYPE'SYM'L=LEND .ENDM $DFN .MACRO $DFN2 TYPE,SYM TYPE'SYM=TYPE'VAL TYPE'VAL=TY00KMTADATADATADATADATADATADATADATADATAPE'VAL+2 .ENDM $DFN2  .MACRO $DFEND TYPE1 TYPE'MAX=TYPE'VAL .ENDM $DFEND SPMHK$' .PSECT8 .MACRO SPMDF$ X,Y .ENDM .ENDM SPMDF$D"X  .MACRO SPMHK$,L,B$ .ASECTN $DFINI H$,2 $DFN2 H$,CDRP $DFN2 H$,RTSK $DFN2 H$,XTSK $DFN2 H$,SCTX $DFN2 H$,LCTX $DFN2 H$,USTP $DFN2 H$,QAST $DFN2 H$,EXTK $DFN2 H$,QTRP $DFN2 H$,QLDR $DFN2 H$,GLDR $DFN2 H$,FLDR $DFN2 H$,RLPR $DFN2 H$,QDRV $DFN2 H$,GPKT $DFN2 H$,IODN $DFN2 H$,IOFN $DFN2 H$,QAC1 $DFN2 H$,QAC2 $DFN2 H$,GACP $DFN2 H$,OVLY $DFN2 H$,SYEN $DFN2 H$,SYXT $DFN2 H$,EIDL $DFN2 H$,XIDL $DFN2 H$,USER $DFEND H$ .PSECTN .MACRO SPMHK$ X,Y .ENDM .ENDM SPMHK$ $DFINI H$,2 $DFN2 H$,CDRP $DFN2 H$,RTSK $DFN2 H$,XTSK $DFN2 H$,SCTX $DFN2 H$,LCTX $DFN2 H$,USTP $DFN2 H$,QAST $DFN2 H$,EXTK $DFN2 H$,QTRP $DFN2 H$,QLDR $DFN2 H$,GLDR $DFN2 H$,FLDR $DFN2 H$,RLPR $DFN2 H$,QDRV $DFN2 H$,GPKT $DFN2 H$,IODN $DFN2 H$,IOFN $DFN2 H$,QAC1 $DFN2 H$,QA<0X  "@?08Z###LL #LI"#LK#LQ#LY#L`#Lm#L{##,#,#:^#T #T #T {#T #T ##T (#T d#T p#T Iq#T Lq#T Qs#T # 8# =# y# `# ,# `# _# !# 8;# ;;# Jm# K# # K# xQ# Z# 8^# `# y# .# p:# 8 # d# f# H# p# # # K# ]a# q# r# r# # !# 8"# # K# xQ# (}# <}# # # p#n #;T#`# s#x#S~##iw##s##-!###t:#u:#L#?T#r#\#\##\'L#\?T#\X#\Z#\f#\s#\w#!u#!y##y#$y#%'#,.#,8Y#-Lr#0L#0#0W#0r#0y#0z}#2`m#2(x#3#3p#3x#3#3L#3k#4#4H:#58#{D#{F#D#%#z###w*#H;#Q#S##{wH qHaOwHH@'H#{_Hsh<}HDH, zH#HziTH'yiwH # H ;;H 8;HyswH*DH@#'H "@;HHsO!HTH 8^H ,HQU[HLL Hz H#KHQH"HHH yHT|HHdfHv6H"ԃH@y_H"Hh"HctHz*HLmH@ HyHJ Hs qH9"H{(gHyHf6KHQtH){DH.s<}HfHy#VNHz"H{rH{rH "HgD)H3{H ch5H9qH"H(H@tGH0#H\xH<H gH@*"Hn qHv6fH *HaH* ZH`H#H .H z{yH #{Hd@yH 3Hoh|dHxeHdBaHfOBzH(7xHZH0tBxH$\H H H _H zsHi8^Hd&HdoMHS~H  # #D #&0  rSmlEr"&"id#   0@e 6@#040 6w!p2$q:NfzE`PZ4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@baVN@f@@ft:@fy:@cIq@s}@  D"0d^Whh!h  D"w & w  D  8#"#)%ĥ ĥ oos fy:|w 0 *0 @Q$    0 40 60))  eB  :# 3&*w #(Bs}NaVNfft:tcIq P) @#**fff  &*wL. P358e$8w2eZ8d?!HeZlst2&e %p8q #) *R*)@#0l C# 02sBr돀8 00ĥۇAĥĊ  000 0 @0 &*0 @ bbr,}lu # eB&B B * eBe>  # #D&iq:&rS.mlE2r"&>i #&0 #   0@e 6@#040 6w!p2@q:jfzF`84eDb@s@r"&@r@q:@i@o@r,}@aVN@f@@fy:@"  D"0h&h  D"w  D 8#"#)%ĥ ĥ w 0 o sfy:|*0 @Q$    0 40 60))eB &*   w6 . 2358e$8aVNxs8w22&e %p8q #) *R*)@#0l Cs"Nr돀t# 028 00ĥۇAĥĊ  000 0 @0 (bnr,}&*0 @ u * eBe>  # #D #iq: r"&,inl&0 #   0@e 6@#040 6w!p2.q:XfzF`W4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@RaVN@f@@ft:@fy:@cIq@  D"0Nh'h  D"w  D 8#"#)%ĥ ĥ w 0 o sfy:|*0 @Q$    0 40 60))eB  :# 3&*w #( P) @8aVNPft:^cIqxeZ#00O F &**fff  &*wL. P358e$8w22&e  "d?!2eZVsts|t%p8q #) *R*)@#0l C# 028,r돀 00ĥۇAĥĊ  000 0 @0 &*0 @ u # bLr,}jivq:leB&B B * eBe>  # #D #&rSmlEr"&(ij0 #   0@e 6@#040 6w!p2*q:TfZ:dw =Ds.@D@o@  D"0zpwh wh  D"w *  )Ĕ%.&%;D  5)5@DD ͥ*Ce a%wUX5@ o^D|5U U*U  5@XU@5 U*U  ʥ*%C!.D` *weC5U5  5 5@e s. t*jafZ De&@e&@r@c2 @w@aK@  D"0`pZh  D"d 6 p 4 0`p f 64 46 e*w & e&,w:c2 HaKNr\e&z\g =De&@py@r@r@w@w@pJ,@o@mo@r,}@f@  D"0}h  D"w o832de& & & B  2PΕ   N Υ$Ε  2o pJ,|2Υ   v Ε f e * *e*w mo>wTr,}rf~py*0, N  )*)    l 0l  r,e&t   ee@ x0 j) E ep )w ,  N w  L B # f  `*,r,}4w@rZmo4l*w)0406 l0  fz\ghy =De&@r@w@w@pK,@o@mo@sk@r,}@f@  D"0 h  D"w o832de& & & B  2PΕ   N Υ$Ε  2o pK,|2Υ   v Ε f e * *e*w0, mo>wTr,}rf~r J  )*)    l 0l   e&t  ee@ t. f' E ep )w ,  w  LwB # f  `**w)0406 r,}w$sk>mojfl l0 r7q Db@wt@rk@wL @bG@s2 @  D"0<rhrh  D"@e6p 4 8  &s2 "b*bG.rk2wL :wt:\q D  D"0hr,}h  D"l. 00l  0 *Js"& Ds@@  D"0Nr"&h  D"R82e& 0 0 0 80 B0 0 0 0)#0.s"RtL00TADATADATADATADATADATADATADATADATA 'Dq:@i@  D"0 rkhwkh  D"$ U4 6wi"q:R$t_ Dw@aK@s2 @  D"0rh  D"&4&6 64 wr%64 2 6  l0 & Z46 64 :s2 6s2 paKH|)0406 0 *0e6p 4 @wJw Dw@f@  D"0wL h  D"" Bfep`pww fr4ΧDb@wt@bG@wk@a[M@f@  D"0`whwh  D"d ) !f  e) . e6p 4 08*w&bGa[M&wk2wtXbbfBd Dw@  D"0wh  D" ) . .w  D"0wL h  D"" Bfep`pww fr4ΧDb@wt@bG@wk@a[M@f@  D"0`whwh  D"d ) !f  e) . e6p 4 08*w&bGa[M&wk2wtXbbfBd Dw@  D"0wh  D" ) . :,d D  D"0aZh  D" =p!Օ^bK VN Ds@s@o@f@  D"0;VNhaVNh  D"w BC "& @SY*p0p210=E%0=w*e "fo6sffjs&| D CB.ER  Df@  D"0|iWhrwh`i h  D"46f %8 E D/D!D l0l8epl0pɥ .ɕ*w~fzw4*Dw@s@r"&@q:@w@i@o@f@  D"0X`h  D"w *8g#) *X -8  .NA *)98 eB &o(we >E p* wsPq:^r"&bfZ& jDq:@i@o@  D"0vch `rh  D"zw  )*  fU %  BA `6p 4p`4 %60 4o&i8q:Ze Ds@q:@i@f@  D"0cIqh  D"M=f& e %&&eH =&e0  U   E >  sXi8|>E=uf p  wq:6fZz Dq:@i@  D"0HeZhrShft:h   D"L   f >5>Eu    i:q:: & D  D"0h  D" z, ,De&@py@r@r@pJ,@o@mo@s2 @f@  D"0l}h   D"w ) 8C 8* ) *w*   ep &o pJ, rNfbpyre&|p  އ#= EW9ť^*0 ` Ca 00O F &C  = L  0* = Eե^ A e@ ߇ = Ep2!t)8eE`l0  0 0/ &l0 `p l064p 4 p  ,Vs2  J *` C#   D @)  6?0D)&rBmoz,hy ,De&@r@pK,@o@mo@sk@s2 @f@  D"0d h  D"w ) 8C $* ) *w*  ep p   o pK, rNf^e&|#= EW9ť^*0 ` Ca C  = X  0* = Eե^ A e@ ߇ = Ep2!)8eE`l0 t 0 0/ &l0 `p l064p 4 p  8 V Bs2 x*`)w C#   D @)  6?0D)skr:mozE`W4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@Rf@@ft:@fy:@cIq@s}@  D"0hp!h  D"w  D 8#"#)%ĥ ĥ w 0 o sfy:|*0 @Q$    0 40 60))  h# a&* =+w` `p!22s}Jft: EW!p0p22,2 ˇ#( P) @#**fff  s8cIqReZxd?!t &*w. l58e$8wV 2k  ,EB0-%. # eZ0sXsp.2e  483  -  r38 (#5=A#@))  sxr돀l*R*)@#0l C# 028 00ĥۇAĥĊ  Rb000 0 @0 &*0 @ u # eB&B B * eB,r,}:iFq:\rSdmlEhr"&tide>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@#0$q:Z\40 6w/!0/ l0/!p!0 .=p0p2fzE`PZ4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@baVN@f@@ft:@fy:@cIq@s}@  D"0^Whh!h  D"w & w  D  8#"#)%ĥ ĥ oos fy:|w 0 *0 @Q$    0 40 60))  eB  h# a&* =+Bs}NaVNfft:w` `p!2 EW!p0p22,2 ˇ#( P) @#*<sTcIqneZt*fff  &*w. l58e$8wV 2k  ,EB0-%d?!(eZLsts. #p.2e  483  -  r38 (#5=&s2lA#@)) *R*)@#0l C# 0200TADATADATADATADATADATADATADATADATA8 00rnbĥۇAĥĊ  000 0 @0 &*0 @ u # eB&B B 8r,}Vibq:xrSd * eBe>  # #D #=0/H#@mlEr"&i&0 # = e0   0@e 6=#02/002#@q:v\ @#?@#040 6w/!0/ l0/!p!0 .=p0p2,fzF`84eDb@s@r"&@r@q:@i@o@r,}@aVN@f@@fy:@"  D"0h&h  D"w  D 8#"#)%ĥ ĥ w  0 o sfy:|*0 @Q$    0 40 60))eB &*   w . l58e$8aVNxs8wV 2k  ,EB0-%. #p.2e  483  -$sRs^t  r38 (#5=A#@)) *R*)@#0l C# 02Dr돀8 00ĥۇAĥĊ  000 0 @0 &*0 @bdr,}l u * eBe>  # #D #=0iq:r"&"i/H#@&0 # = e0   0@e 6=#02/002Nq:d# @#?@#040 6w/!0/ l0/!p!0 .=p0p:f2zF`W4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@RaVN@f@@ft:@fy:@cIq@  D"0h'h  D"w  D 8#"#)%ĥ ĥ w 0 o sfy:|*0 @Q$    0 40 60))eB  h# a&* =+w` `p!28aVNPft: EW!p0p22,2 ˇ#( P) @#**fff &s>cIqXeZ~d?!t &*w. l58e$8wV 2k  ,EB0-%. #eZ6s^sp.2e  483  -  r38 (#5=A#@)) s~r돀l *R*)@#0l C# 028 00ĥۇAĥXbĊ  000 0 @0 &*0 @ u # eB&B B * e,"r,}@iLq:brSjmlEnr"&zidBe>  # #D #=0/H#@&0 # = e0   0@e 6=#02/002# @#?@*q:`\#040 6w/!0/ l0/!p!0 .=p0p2fZ:dw =Ds.@D@o@  D"0pwh wh  D"w *  ע"wf)Ĕ%.&%;D  5)5@DD ͥ*Ce e%w UojD|\5@ 5U U*U  "5@\U@5 5LU*U  ʥ*%00O F &C!.D` *weC5U5  5 54s.t@e*=U Ee& REe  ӥ" wV ˥"   ˥" (Ք     Օ zafZ Db@e&@e&@c@r@i @c2 @w@aK@  D"0pZh   D"=D `p46 f 64/=  @) 0  8w 46 ,i $e&0wNchblc2 zaK$|8 e*w re&z\g =De&@py@r@r@w@w@pJ,@o@mo@i@aZ@r,}@*f@  D"0F}h  D"w o832de& & & B  2PΕ   N Υ$Ε  2o pJ,|2Υ   v Ε f e * *e*w@)mo>wTr,}rf *0,   )*)(   =  l 0lpy r2e&t   4/ e&=Ba@a e0b eaZfie@ ` Y= E8 el0  & 0 l0`p l064p 4 lep )wT%  ,  N w  L B # >aZLaZZr,}bwnrb f  `**w)0406 l0  mo8fz\ghy =De&@r@w@w@pK,@o@mo@i@sk@aZ@r,}@f@"  D"0* h  D"w o832de& & & B  2PΕ   N Υ$Ε  2o pK,|2Υ   v Ε f e * *e*w@)0,mo>wTr,}rf   )*)(   =  l 0l  re&raZt 0/ e&=Ba@a e0b ee@ ^Ni W= E8 el0  & 0 l0`p l064p 4 ep )lwl%  ,  w<  LwB # f &&aZ4aZ>r,}FwRsklmoF `**w)0406 l0 fz7q Db@w@w@wt@rk@wL @iW@rw@bG@s2 @f@ " D"0rhrh  D"e6p 4 8 .8 81416   8 -̋8s2 "b*iWwL BrwFf:\q D  D"0r,}h  D"> =00l&8el2 0 |*Js"& Ds@@  D"0^r"&h00TADATADATADATADATADATADATADATADATA  D"b8 -2e  0 0 0 80 B0 0 0 0)#0.s*ZtL *Dxk@q:@i@  D"0Frkhwkh  D"J U8UM%..w wiP;=K>LB>ύB؍B8?;?K@%  ~Ct@JCt@CtAAHA B)C)B8)B/CF/C 0D8D2;EJKE(Ϋϫ|xnF,{nEnFqCg;qC8OG2;OFKOG:GةM(NNN`{":z0/I/I 0J[G[H[HkstKtJtKD8hL6;hK KhK2/L2/L62 0L[ RO!!Mz!!M$!! M'!)N'!)Nj'!)N,6!8Ox6!;O$6!KO[!8Pn[!;PH[!KQq!tQq!tQq!tQxs!8hRns!;hRDs!KhR"" #)S  #)R #)S #8T #;S #KT~#8U #;T\#KU#HVh#HV# IV#xU#{UZ#U" &Df &Q.!&9<~!&J>"& <"&)="&)?"&H="& I@V"&z@d/&&H/&)@/&9h=*/&Jh?2&<p2& >3&^MI& I&8W,I&;WI&KW&P$:&^&b&b%J&:F&{;;(^L(z;(XP(8X(Y;,x^E3^J2^M3^O3^6^6^5^4^5p^5HE`[2 E`[0.E`[/E`[.E`[/E`[/rN`z1*N`{0N` {0N` {1N`{0\N`<1N`O2r1aydztdzvd {vfZ fzwtfzy"f {yh\g9\g9\g:j}j|"kzk|k{k {k{vk8zkzpNq8O q8~ q;~ qKXq8,q;qKq8lq;qK!q)8!q)!q)"qS"q %q)%q)%q)~8q)8q)8q)|Iq87\q/qqor/or/or 0or[Tor[Nor[hr)sx<`s{<s<J;s8,;s;;sKzUs)VUs)Us)cs8-cs;-HcsK.sxUs{UBsUss8>s&tv9wx 9w{ T9w 9wKO:wP)4:wb*DDwx<0Dw{<FDw<aw84aw;awKiwt8iwt^iwt0rwrw2rw rw8hrw;hrwKhw)Tw)w)wx Tw{ w x/x/Lx 0"x8h(ySLy yyy Cy:@Eyx Ey{ >Ey Ny8jNy;@NyKRyx Ry{ Ry Wy[Wy[\Wy[yx `y{ y yx by{ y y)y)y)y8y;yKZyx y{ vy 4y) y)y)xy}TyxUy{UyUyayahy b.y8hy;h@yKhyx#y{#y#^4z4zh4z*DzHDzHDz Ibkz8kz;,kzK}x ,z}{ ,f} -~/~/~ 0~[~[~[[X; 3c')b')8')I8hI;hfIKh$L: L8hL;h`LKh"S88S;SKSzSzZS {,S8S;SK|x l|{ | : ,87bSb 58hv5;h5KhH}7/l/B 0aa bx#v{#6#\,E8\tH\ I|la w,"fwtR\a 8e^6a ^ .BLKB NFILES*S.BFHD+B .IFF .BLKB NFILES*T .ENDC .PSECT PSECTL .ENDM FSRSZ$fW  .MACRO FDBDF$ .MCALL FDBSZ$ FDBSZ$B ...PC1=.L .BLKB S.FDB .ENDM FDBDF$EW ' .MACRO FDAT$A RTYP,RATT,RSIZ,CNTG,ALOC .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$L, CBYTE$ ,F.RTYPA CBYTE$ ,F.RATTC CWORD$ ,F.RSIZD CWORD$ ,F.CNTG CWORD$ ,F.ALOCS .ENDM FDAT$AW  .MACRO FDRC$A RACC,URBA,URBS, .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$LF CBYTE$ ,F.RACCH CWORD$ ,F.URBD+2  CWORD$ ,F.URBD .ENDM FDRC$AW ( .MACRO FDOP$A LUN,FNPT,DFNB,FACC,FACTRL .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$L. CBYTE$ ,F.LUNT CWORD$ ,F.DSPTL CWORD$ ,F.DFNB CBYTE$ ,F.FACC  CWORD$ ,F.ACTLR .ENDM FDOP$ACW ! .MACRO FDBF$A EFN,OVBS,MBCT,MBFG  .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$L CBYTE$ ,F.EFNC CWORD$ ,F.OVBSD CBYTE$ ,F.MBCTO CBYTE$ ,F.MBFGC .ENDM FDBF$AOW , .MACRO FDBK$A BKAD,BKSZ,BKVB,BKEF,BKST,BKDN .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$LF CWORD$ ,F.BKDS+2$ CWORD$ ,F.BKDS  CWORD$ ,F.BKVB+2U CBYTE$ ,F.BKEFP CWORD$ ,F.BKSTN CWORD$ ,F.BKDNC .ENDM FDBK$ACW + .MACRO FDAT$R FDB,RTYP,RATT,RSIZ,CNTG,ALOCE .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDBW CMOV$B RTYP,F.RTYP CMOV$B RATT,F.RATT CMOV$W RSIZ,F.RSIZD CMOV$W CNTG,F.CNTGC CMOV$W ALOC,F.ALOCM .ENDM FDAT$RBW ! .MACRO FDRC$R FDB,RACC,URBA,URBS, .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDB$ CMOV$B RACC,F.RACCO CMOV$W URBA,F.URBD+2C CMOV$W URBS,F.URBD .ENDM FDRC$RFW , .MACRO FDOP$R FDB,LUN,FNPT,DFNB,FACC,FACTRL .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDB CMOV$B LUN,F.LUNT CMOV$W FNPT,F.DSPT, CMOV$W DFNB,F.DFNBD CMOV$B FACC,F.FACCL CMOV$W FACTRL,F.ACTLP .ENDM FDOP$R$W % .MACRO FDBF$R FDB,EFN,OVBS,MBCT,MBFGC .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDB CMOV$B EFN,F.EFNR CMOV$W OVBS,F.OVBSA CMOV$B MBCT,F.MBCT$ CMOV$B MBFG,F.MBFGB .ENDM FDBF$R W 0 .MACRO FDBK$R FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN# .MCALL LDFDB$,CMOV$B,CMOV$W,CMOV$2P LDFDB$ FDBP CMOV$W BKAD,F.BKDS+2C CMOV$W BKSZ,F.BKDSV CMOV$2 BKVB,F.BKVBO CMOV$B BKEF,F.BKEF$ CMOV$W BKST,F.BKST$ CMOV$W BKDN,F.BKDN$ .ENDM FDBK$R~W  .MACRO FDBSZ$ .IIF DF,S.FDB,.MEXIT .MCALL FDOFF$,DEF$L FDOFF$ DEF$NC DEF$L S.FDB .ENDM FDBSZ$BRW  .MACRO FDOF$L .MCALL FDOFF$ FDOFF$ DEF$L .ENDM FDOF$LCW + .MACRO NMBLK$ FNAME,FTYPE,VERS,DEVNAM,UNITD .MCALL RAD50$,CWORD$,00TADATADATADATADATADATADATADATADATANBOFF$ NBOFF$ DEF$LL .IIF NDF,...PC1,...PC1=0$ ...PC3=...PC1 ...PC1=.K .=...PC1+N.FNAM RAD50$ ,S.FNAM/2 .=...PC1+N.FTYP RAD50$ ,S.FTYP/2 CWORD$ ,N.FVERK .IF NB,DEVNAM .=...PC1+N.DVNM .WORD "DEVNAM .ENDC CWORD$ ,N.UNITI .=...PC1+S.FNB$ ...PC1=...PC3 .ENDM NMBLK$SRW  .MACRO NBOF$L .MCALL NBOFF$ NBOFF$ DEF$LD .ENDM NBOF$LEW  .MACRO LDFDB$ FDB .IIF B,FDB,.MEXIT .NTYPE PAR$$$,FDB .IIF EQ,PAR$$$,.MEXIT MOV FDB,R0 .ENDM LDFDB$W  .MACRO CMOV$W VAR,OFFSET. .IF IDN,<#0>,. CLR OFFSET(R0)A .MEXITM .ENDC .IIF NB,VAR, MOV VAR,OFFSET(R0) .ENDM CMOV$WVW  .MACRO CMOV$B VAR,OFFSETM .IF IDN,<#0>,N CLRB OFFSET(R0) .MEXIT .ENDC! .IIF NB,VAR, MOVB VAR,OFFSET(R0)B .ENDM CMOV$BW  .MACRO CMOV$2 VAR,OFFSETF .IIF B,VAR,.MEXIT MOV VAR,-(SP) MOV @(SP),OFFSET(R0)F ADD #2,(SP) MOV @(SP)+,OFFSET+2(R0) .ENDM CMOV$2RW  .MACRO CBYTE$ VAR,OFFSET .IF NB,VAR ...PC2=.V .=...PC1+OFFSET .BYTE VAR .=...PC2R .ENDC .ENDM CBYTE$W  .MACRO CWORD$ VAR,OFFSETN .IF NB,VAR ...PC2=. .=...PC1+OFFSET .WORD VAR .=...PC2< .ENDC .ENDM CWORD$T"W & .MACRO CSTRG$ VAR,OFFSET,MAXLG,FILL=0 .IF NB, .NCHR ...PC3, .IF GE MAXLG-...PC3F ...PC2=., .=...PC1+OFFSET .ASCII ^VAR^F .REPT MAXLG-...PC3 .BYTE FILLS .ENDR .=...PC2R .IFF .ERROR .ENDCB .ENDC .ENDM CSTRG$NZW  .MACRO CGET$B OFFSET,VARV" .IIF NB MOVB OFFSET(R0),VAR .ENDMZW  .MACRO CGET$W OFFSET,VARF! .IIF NB MOV OFFSET(R0),VARS .ENDMjW  .MACRO FCSBT$ GLOBL .MCALL DEFIN$ ...GBL=0R" .IIF IDN,,,...GBL=1 DEFIN$ FD.FTN,1 DEFIN$ FD.CR,2 DEFIN$ FD.PRN,4 DEFIN$ FD.BLK,10 DEFIN$ FD.RWM,1 DEFIN$ FD.RAN,2 DEFIN$ FD.PLC,4 DEFIN$ FD.INS,10L DEFIN$ FD.REC,1 DEFIN$ FD.CCL,2 DEFIN$ FD.TTY,4 DEFIN$ FD.DIR,10C DEFIN$ FD.SDI,20 DEFIN$ FD.SQD,40B DEFIN$ FD.ISP,2000B DEFIN$ FD.OSP,4000) DEFIN$ FD.PSE,10000 DEFIN$ FD.COM,20000 DEFIN$ FD.F11,40000 DEFIN$ FD.MNT,100000, DEFIN$ NB.VER,1 DEFIN$ NB.TYP,2 DEFIN$ NB.NAM,4 DEFIN$ NB.SVR,10. DEFIN$ NB.STP,20G DEFIN$ NB.SNM,40L DEFIN$ NB.DIR,100 DEFIN$ NB.DEV,200 DEFIN$ NB.SD1,400 DEFIN$ NB.SD2,1000F DEFIN$ NB.ANS,2000  DEFIN$ NB.WCH,4000P? DEFIN$ NB.WLV,10000 ;WILDCARD VERSION NUMBER. USED BY PIP ANDF ;THE AME.D= DEFIN$ NB.SUP,20000 ;CAN SUPERSEDE ON COMBINDED CREATE/ENTERN/ ;OPERATION. THIS IS USED ONLY BY FCS UNDERP! ;THE AME, AND THE AME ITSELF.F DEFIN$ R.FIX,1 DEFIN$ R.VAR,20 DEFIN$ R.SEQ,3V DEFIN$ R.STM,4T DEFIN$ FA.RD,1N DEFIN$ FA.WRT,2 DEFIN$ FA.EXT,4 DEFIN$ FA.CRE,10B DEFIN$ FA.TMP,20B DEFIN$ FA.SHR,40B DEFIN$ FA.APD,100 DEFIN$ FA.NSP,100 DEFIN$ FO.RD,FA.RDB# DEFIN$ FO.WRT,FA.WRT!FA.EXT!FA.CREF# DEFIN$ FO.APD,FA.WRT!FA.EXT!FA.APDM DEFIN$ FO.MFY,FA.WRT DEFIN$ FO.UPD,FA.WRT!FA.EXT DEFIN$ FA.ENB,100000N DEFIN$ FA.SEQ,40000 DEFIN$ FA.WCK,20000 DEFIN$ FA.POS,10000 DEFIN$ FA.RWD,4000E DEFIN$ FA.EXL,4000F DEFIN$ FA.LKL,2000D DEFIN$ FA.EXC,2000N DEFIN$ FA.DLK,1000. DEFIN$ CH.AND,1 DEFIN$ FD.RAH,1 DEFIN$ FD.WBH,2 DEFIN$ FL.AEX,1;E7 DEFIN$ FL.VCP,2 ;THIS FILE IS PARSED USING THE VMS ACPA DEFIN$ FF.RWD,1 DEFIN$ FF.POE,2 DEFIN$ FF.NV,3F DEFIN$ FF.SPC,4 DEFIN$ FF.CHR,5 DEFIN$ FF.RWF,6 DEFIN$ FT.ANI,1 DEFIN$ FT.BBF,2 DEFIN$ FT.MBF,4 .MACRO FCSBT$ ARG .ENDM FCSBT$0 .ENDM FCSBT$AfW  .MACRO DEFIN$ SYM,VAL .IIF EQ,...GBL-1,.GLOBL SYM SYM=^O .ENDM DEFIN$DrW  .MACRO FDOFF$ OFFSET .MCALL OFFSET,DEF$I,NBOFF$  NBOFF$ OFFSET DEF$I 0E ; F.RTYP IS ASSUMED TO BE AT OFFSET ZERO BY SEVERAL MODULES. DO NOTS ; CHANGE IT OFFSET F.RTYP,1 OFFSET F.RATT,1 OFFSET F.RSIZ,2 OFFSET F.HIBK,4 OFFSET F.EFBK,4 OFFSET F.FFBY,2 OFFSET S.FATT OFFSET F.RACC,1 OFFSET F.RCTL00O F &,1 OFFSET F.BKDS OFFSET F.URBD,4 OFFSET F.BKST OFFSET F.NRBD,2 OFFSET F.BKDN OFFSET ,2 OFFSET F.OVBS OFFSET F.NREC,2 OFFSET F.EOBB,2 OFFSET F.CNTG OFFSET F.RCNM,2 OFFSET F.STBK OFFSET ,2 OFFSET F.ALOC,2 OFFSET F.LUN,1O OFFSET F.FACC,1 OFFSET F.DSPT,2 OFFSET F.DFNB,2 OFFSET F.BKEF OFFSET F.EFN,1  OFFSET F.BKP1,1 OFFSET F.ERR,21 OFFSET F.MBCT,1 OFFSET F.MBC1,1 OFFSET F.MBFG,1 OFFSET F.BGBC,1 OFFSET F.VBSZ,2 OFFSET F.BBFS,2 OFFSET F.BKVB OFFSET F.VBN,41 OFFSET F.BDB,2 OFFSET F.EXT4 OFFSET F.SPDV,2 OFFSET F.FLG2 OFFSET F.SPUN,1 OFFSET F.CHR,1E OFFSET F.ACTL,2 OFFSET F.SEQN,2 OFFSET F.FNB,S.FNBN! .IIF IDN,,,.MEXITK .IF IDN,,C* .GLOBL F.FNAM,F.FTYP,F.FVER,F.DVNM,F.UNIT .ENDC F.FNAM=N.FNAM+F.FNB F.FTYP=N.FTYP+F.FNB F.FVER=N.FVER+F.FNB F.DVNM=N.DVNM+F.FNB F.UNIT=N.UNIT+F.FNB OFFSET S.FDB1 DEF$I 0 OFFSET FX.LEN,2 OFFSET FX.DMX,1 OFFSET FX.DLN,1 OFFSET FX.DIR,2 .MACRO FDOFF$ ARG .ENDM FDOFF$ .ENDM FDOFF$EW  .MACRO BDOFF$ OFFSET2 .MCALL OFFSET,DEF$I DEF$I 0 OFFSET ,4 OFFSET B.VBN,4E OFFSET B.BBFS,2 OFFSET B.NXBD,2 OFFSET ,1 OFFSET B.BFST,1 OFFSET ,2 OFFSET S.BFHD! .IIF IDN,,,.MEXITD .MACRO BDOFF$ ARG .ENDM BDOFF$F .ENDM BDOFF$.vW  .MACRO NBOFF$ OFFSET= .MCALL OFFSET,DEF$I,DEF$L DEF$I 0 OFFSET S.FNAM OFFSET S.FTYP OFFSET S.FNTY OFFSET S.FNBW OFFSET S.ANM1 OFFSET S.ANM2 S.FNAM=6F S.FTYP=2N S.ANM1=12.. S.ANM2=5. S.FNTY=/2  OFFSET N.FID,2. OFFSET N.ANM1,4 OFFSET N.FNAM,S.FNAM OFFSET N.FTYP,S.FTYPE OFFSET N.FVER,2 OFFSET S.NFEN DEF$L S.NFEN  OFFSET N.STAT,2 OFFSET N.NEXT,2 OFFSET N.ANM2 OFFSET N.DID,6I OFFSET N.DVNM,2 OFFSET N.UNIT,2 OFFSET S.FNBF DEF$L S.FNB S.FNBW=S.FNB/2B! .IIF IDN,,,.MEXITD .MACRO NBOFF$ ARG .ENDM NBOFF$F .ENDM NBOFF$FN W  .MACRO FSROF$ OFFSET1! .MCALL OFFSET,DEF$I,DEF$L,DEFIN$Y ...GBL=0M# .IIF IDN,,,...GBL=1.;P DEF$I 0 OFFSET ,4 OFFSET A.BFSR,2 OFFSET A.EFSR,2 OFFSET A.OWUI,2 OFFSET A.FIPR,2 OFFSET A.DPB,24.E OFFSET A.IOST,4 OFFSET A.DFDR,26. OFFSET A.DFBC,2 OFFSET A.DFUI,2M; ***WARNING*** NO SPACE MAY BE ADDED OR SUBTRACTED BEFORE A.JUMP. A.JUMP ISLJ; FILLED IN AT ASSEMBLY TIME SO FOR FCSRES TASKS TO WORK IT MUST STAY AT A; CONSTANT OFFSET.;. OFFSET A.JUMP,4 OFFSET A.MODE,2+ .IF DF L$$GCL ;IF LOGICAL NAMES SUPPORTEDL. .IF DF V$$ACP ;IF BUILT FOR USE WITH VMS ACP9 OFFSET A.EXDS,52. ; AREA FOR STORAGE OF DIRECTORY STRINGF4 DEFIN$ S.EXDS,52. ;LENGTH OF DIRECTORY STORAGE AREA. OFFSET A.LGBK,80. ;LOGICAL NAME STORAGE BLOCK# DEFIN$ S.LGBK,80. ;LENGTH OF BLOCKI+ OFFSET A.PRS,34. ;LOGICAL NAME PARSE BLOCKS( DEFIN$ S.PRS,34. ;LENGTH OF PARSE BLOCK OFFSET A.FLAG,2 ;FLAG WORDO2 DEFIN$ AF.CCR,1 ;FLAG TO INDICATE COMBINED CREATE2 DEFIN$ AF.RLG,2 ;FLAG TO INDICATE REMOTE LOGICALS .IFF ;IF NO V$$ACPI9 OFFSET A.EXDS,12. ; AREA FOR STORAGE OF DIRECTORY STRINGH4 DEFIN$ S.EXDS,12. ;LENGTH OF DIRECTORY STORAGE AREA. OFFSET A.LGBK,40. ;LOGICAL NAME STORAGE BLOCK# DEFIN$ S.LGBK,40. ;LENGTH OF BLOCK8+ OFFSET A.PRS,28. ;LOGICAL NAME PARSE BLOCKK( DEFIN$ S.PRS,28. ;LENGTH OF PARSE BLOCK .ENDC ;V$$ACP# .IFF ;IF NO LOGICAL NAME SUPPORT 8 OFFSET A.EXDS,12. ;AREA FOR STORAGE OF DIRECTORY STRING4 DEFIN$ S.EXDS,12. ;LENGTH OF DIRECTORY STORAGE AREA .ENDC OFFSET S.FSR2 DEF$L S.FSR2. DEF$I 0 OFFSET A.F5SZ,2 ;SIZE OF FSR5$ OFFSET A.LDVL,2 ;LAST DEVICE LENGTH OFFSET A.LDVA,2 OFFSET A.LDIL,2 OFFSET A.LDIA,2# .IF DF V$$ACP ;IF VMS ACP SUPPORTA% OFFSET A.OUBK,80. ;CSI OUTPUT BUFFER $ OFFSET A.LODV,6 ;LAST OUTPUT DEVICE) OFFSET A.LODI,52. ;LAST OUTPUT DIRECTORYF# OFFSET A.LIDV,6 ;LAST INPUT DEVICE ( OFFSET A.LIDI,52. ;LAST INPUT DIRECTORY$ OFFSET A.INBK,80. ;CSI INPUT BUFFER' DEFIN$ S.LDV,6 ;LENGTH OF LAST DEVICEE+ DEFIN$ S.LDI,52. ;LENGTH OF LAST DIRECTORYD .IFF ;V$$ACPD% OFFSET A.OUBK,40. ;CSI OUTPUT BUFFER$ O00TADATADATADATADATADATADATADATADATAFFSET A.LODV,6 ;LAST OUTPUT DEVICE) OFFSET A.LODI,12. ;LAST OUTPUT DIRECTORY # OFFSET A.LIDV,6 ;LAST INPUT DEVICE ( OFFSET A.LIDI,12. ;LAST INPUT DIRECTORY? OFFSET A.INBK ;CSI INPUT BUFFER:NOT USED, BUT NEED THE OFFSET;' DEFIN$ S.LDV,6 ;LENGTH OF LAST DEVICE;+ DEFIN$ S.LDI,12. ;LENGTH OF LAST DIRECTORYI .ENDC ;V$$ACP OFFSET S.FSR5 DEF$I 0 OFFSET ,16. OFFSET D.DFID,6 OFFSET D.DFDV,2 OFFSET D.DFUN,2! .IIF IDN,,,.MEXITF .MACRO FSROF$ ARG .ENDM FSROF$ .ENDM FSROF$W  .MACRO FDSOF$ OFFSETF .MCALL OFFSET,DEF$I,DEF$L DEF$I 0 OFFSET N.DEVD,4 OFFSET N.DIRD,4 OFFSET N.FNMD,4 OFFSET S.FIDS .IF IDN,, DEF$L S.FIDSE .MEXITD .ENDC .MACRO FDSOF$ ARG .ENDM FDSOF$E .ENDM FDSOF$VrW  .MACRO DEF$G VAR,SIZI .MCALL DEF$LC .IIF NB,VAR,.GLOBL VAR DEF$L VAR,SIZ .ENDM DEF$GVW  .MACRO DEF$N VAR,SIZF .MCALL DEF$L, DEF$L ,SIZE .ENDM DEF$NFW  .MACRO DEF$I IVAL ...TPC=^O .ENDM DEF$IW  .MACRO DEF$L SYM,SIZI .IF NB,SYMI SYM=^O<...TPC>D .ENDC .IF NB,SIZ ...TPC=^O<...TPC+SIZ> .ENDC .ENDM DEF$LW  .MACRO RAD50$ STRING,MAXWRD ...PC2=.D .RAD50 /STRING/ .IF GT,<.-...PC2>-^O<2*MAXWRD>3 .ERROR ;STRING RAD50 - STRING TOO LONG, TRUNCATED  .=^O<...PC2+<2*MAXWRD>> .MEXIT .ENDC .REPT ^O/2>> .WORD 0 .ENDR .ENDM RAD50$F@W  .MACRO CALL ADR JSR PC,ADR .ENDM CALL.<W  .MACRO RETURN RTS PC .ENDM RETURN$>W  .MACRO CALLR ADRT JMP ADR .ENDM CALLRW  .MACRO ABRT$C TSK,PSCT,ERRL .MCALL ABRT$,DIR$ .IF NDF $$$GLBR .PSECT $DPB$.,D$$$=.. .IFTF ABRT$ TSK .IFT. .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM ABRT$C W  .MACRO ABRT$S NADR,ERRD .MCALL RFA$,DIR$C RFA$ NADR MOV (PC)+,-(SP) .BYTE 83.,3 DIR$ ,ERR .ENDM ABRT$SW  .MACRO ABRT$ TSKR .MCALL R50$,OFF$L .IF NDF $$$GLB .BYTE 83.,3 R50$ TSKP .ENDC .IF NDF A.BTTN .NLIST OFF$R OFF$ A.BTTN,4 .LIST .ENDC .ENDM ABRT$vW & .MACRO ACHN$ MOD,TBMSK,LUN,FSBUF,FSSZ .MCALL OFF$,LNMOD$. .IF NDF $$$GLB$ LNMOD$F .BYTE 207.,5 .BYTE 6 .BYTE MOD .BYTE LUN .BYTE TBMSK .WORD FSBUF .WORD FSSZ .ENDC .IF NDF A.LFUNR6 .IRP X,<,,,,> OFF$ X3 .ENDM .IRP X,<,> OFF$ XA .ENDM .ENDC .ENDM ACHN$W . .MACRO ACHN$C MOD,TBMSK,LUN,FSBUF,FSSZ,CS,ERR .MCALL ACHN$,DIR$ .IF NDF $$$GLBT .PSECT $DPB$.,D$$$=.N .IFTF ACHN$ MOD,TBMSK,LUN,FSBUF,FSSZ  .IFTS .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ACHN$C$W + .MACRO ACHN$S MOD,TBMSK,LUN,FSBUF,FSSZ,ERRN .MCALL DIR$,MOV$,MVB$,LNMOD$. LNMOD$ MOV$ FSSZ MOV$ FSBUFR MVB$ LUN,TBMSKU MVB$ #6,MOD MOV (PC)+,-(SP) .BYTE 207.,53 DIR$ ,ERR .ENDM ACHN$S2W # .MACRO ALTP$C TTASK,NPRIO,PSCT,ERR .MCALL ALTP$,DIR$ .IF NDF $$$GLBT .PSECT $DPB$.,D$$$=.R .IFTF ALTP$ TTASK,NPRIO .IFTL .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM ALTP$CKW  .MACRO ALTP$S NAME,PRI,ERR$ .MCALL MOV$,RFA$,DIR$ MOV$ PRI RFA$ NAME MOV (PC)+,-(SP) .BYTE 9.,4B DIR$ ,ERR .ENDM ALTP$SMW  .MACRO ALTP$ NAME,PRI .MCALL R50$,OFF$U .IF NDF $$$GLB6 .BYTE 9.,4C R50$ NAME .WORD PRI .ENDC .IF NDF A.LTTN$ .NLIST OFF$ OFF$ A.LTTN,4 OFF$ A.LTPR,2 .LIST .ENDC .ENDM ALTP$W  .MACRO ALUN$C LUN,DA,DU,CS,ERR .MCALL ALUN$,DIR$ .IF NDF $$$GLBS .PSECT $DPB$.,D$$$=.C .IFTF ALUN$ LUN,DA,DU .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ALUN$CIW  .MACRO ALUN$S LUN,DA,DU,ERR .MCALL MOV$,DIR$E MOV$ DU MOV$ DA MOV$ LUN MOV (PC)+,-(SP) .BYTE 7,4 DIR$ ,ERR .ENDM ALUN$SFRW  .MACRO ALUN$ LUN,DA,DUP .MCALL OFF$ .IF NDF $$$GLB. .BYTE 7,4 .WORD LUN .IF B  .WORD 0 .IFF .NCHR $00O F &$$T1,$$$$T2=. .ASCII /DA/ .=$$$T2+2L .ENDC .WORD DU. .ENDC .IF NDF A.LULUF .NLIST+ .IRP X,<,,,>D OFF$ XF .ENDM .LIST .ENDC .ENDM ALUN$W  .MACRO ASTX$C PSCT,ERR  .MCALL ASTX$,DIR$ .IF NDF $$$GLBR .PSECT $DPB$.,D$$$=.M .IFTF ASTX$ .IFTS .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM ASTX$CW  .MACRO ASTX$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 115.,1L DIR$F .IIF NB , JSR PC,ERR .ENDM ASTX$SAZW  .MACRO ASTX$T .IF NDF $$$GLBO .BYTE 115.,1 .ENDC .ENDM ASTX$W  .MACRO ATRG$ RDB, .MCALL OFF$ .IF NDF $$$GLB .BYTE 57.,2 .WORD RDB .ENDC .IF NDF A.TRBAA OFF$X OFF$ A.TRBA,2 .ENDC .ENDM ATRG$W  .MACRO ATRG$C RDB,CS,ERRF .MCALL ATRG$,DIR$ .IF NDF $$$GLB  .PSECT $DPB$.,D$$$=.A .IFTF ATRG$ RDB .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ATRG$C.W  .MACRO ATRG$S RDB,ERR .MCALL DIR$,MOV$$ MOV$ RDB MOV (PC)+,-(SP) .BYTE 57.,2 DIR$ ,ERR .ENDM ATRG$SW 0 .MACRO CINT$C VEC,BASE,ISR,DSI,PSW,AST,PSCT,ERR .MCALL CINT$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.N .IFTF CINT$ VEC,BASE,ISR,DSI,PSW,ASTC .IFTM .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM CINT$CW + .MACRO CINT$S VEC,BASE,ISR,DSI,PSW,AST,ERR .MCALL RVP$,DIR$ RVP$ VEC,BASE,ISR,DSI,PSW,AST MOV (PC)+,-(SP) .BYTE 129.,7 DIR$ ,ERR .ENDM CINT$SRLW & .MACRO CINT$ VEC,BASE,ISR,DSI,PSW,AST .MCALL OFF$ .IF NDF $$$GLBM .BYTE 129.,7 .WORD VEC .WORD BASEC .WORD ISR .WORD DSI .WORD PSW .WORD AST .ENDC .IF NDF C.INVE OFF$  OFF$ C.INVE,2 OFF$ C.INBA,2 OFF$ C.INIS,2 OFF$ C.INDI,2 OFF$ C.INPS,2 OFF$ C.INAS,2 .ENDC .ENDM CINT$W  .MACRO CLEF$C EFN,CS,ERR, .MCALL CLEF$,DIR$ .IF NDF $$$GLBR .PSECT $DPB$.,D$$$=.I .IFTF CLEF$ EFN .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CLEF$CW  .MACRO CLEF$S EFN,ERR .MCALL MOV$,DIR$$ MOV$ EFN$ MOV (PC)+,-(SP) .BYTE 31.,2 DIR$ ,ERR .ENDM CLEF$SRW  .MACRO CLEF$ EFN .MCALL OFF$ .IF NDF $$$GLB .BYTE 31.,2 .WORD EFN .ENDC .IF NDF C.LEEFO .NLISTI OFF$F OFF$ C.LEEF,2 .LIST .ENDC .ENDM CLEF$2W , .MACRO CLON$ MOD,PRMLST,LNS,LNSSZ,ENS,ENSSZ .MCALL OFF$,LNMOD$R .IF NDF $$$GLBD LNMOD$ .BYTE 207.,7E .BYTE 11. .BYTE MOD $$$ARG = 0 .IRP SYM .BYTE SYM$$$ARG=$$$ARG+1A .ENDM .IIF LT 2-$$$ARG,.ERROR .IF GT 2-$$$ARG .REPT <2-$$$ARG>. .BYTE 0 .ENDR .ENDC .WORD LNS .WORD LNSSZ .WORD ENS .WORD ENSSZ .ENDC .IF NDF C.LFUN$A .IRP X,<,,,,,> OFF$ XO .ENDM* .IRP X,<,,> OFF$ X .ENDM .ENDC .ENDM CLON$W 4 .MACRO CLON$C MOD,PRMLST,LNS,LNSSZ,ENS,ENSSZ,CS,ERR .MCALL CLON$,DIR$ .IF NDF $$$GLBA .PSECT $DPB$.,D$$$=.> .IFTF' CLON$ MOD,,LNS,LNSSZ,ENS,ENSSZ2 .IFT, .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CLON$CEW 1 .MACRO CLON$S MOD,PRMLST,LNS,LNSSZ,ENS,ENSSZ,ERRZ .MCALL DIR$,MOV$,MVB$,LNMOD$R LNMOD$L MOV$ ENSSZD MOV$ ENS, MOV$ LNSSZ, MOV$ LNS MVB$ PRMLST MVB$ #11.,MOD MOV (PC)+,-(SP) .BYTE 207.,7 DIR$ ,ERR .ENDM CLON$S.0W , .MACRO CLOG$ MOD,PRMLST,LNS,LNSSZ,ENS,ENSSZ .MCALL OFF$,LNMOD$. .IF NDF $$$GLB LNMOD$$ .BYTE 207.,7  .BYTE 0 .BYTE MOD $$$ARG = 0 .IRP SYM .BYTE SYM$$$ARG=$$$ARG+1  .ENDM .IIF LT 2-$$$ARG,.ERROR .IF GT 2-$$$ARG .REPT <2-$$$ARG>L .BYTE 0 .ENDR .ENDC .WORD LNS .WORD LNSSZ .WORD ENS .WORD ENSSZ .ENDC .IF NDF C.LFUN A .IRP X,<,,,,,>( OFF$ X) .ENDM* .IRP X,<,,> OFF$ X .ENDM .ENDC .ENDM CLOG$W 4 .MACRO CLOG$C MOD,PRMLST,LNS,LNSSZ,ENS,ENSSZ,CS,ERR .MCALL CLOG$,DIR$ .IF NDF $$$GLBA .00TADATADATADATADATADATADATADATADATAPSECT $DPB$.,D$$$=.> .IFTF' CLOG$ MOD,,LNS,LNSSZ,ENS,ENSSZ2 .IFT, .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CLOG$CEW 1 .MACRO CLOG$S MOD,PRMLST,LNS,LNSSZ,ENS,ENSSZ,ERRZ .MCALL DIR$,MOV$,MVB$,LNMOD$R LNMOD$L MOV$ ENSSZD MOV$ ENS, MOV$ LNSSZ, MOV$ LNS( MVB$ PRMLST MVB$ #0,MOD MOV (PC)+,-(SP) .BYTE 207.,7> DIR$ ,ERR .ENDM CLOG$SW  .MACRO CMKT$C EFN,AST,PSCT,ERRP .MCALL CMKT$,DIR$ .IF NDF $$$GLBC .PSECT $DPB$.,D$$$=.$ .IFTF CMKT$ EFN,AST .IFT> .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM CMKT$C.W  .MACRO CMKT$S EFN,AST,ERR .MCALL DIR$,RVP$ $$$T1=0 .IIF NB EFN $$$T1=1 .IIF NB AST $$$T1=1 .IF EQ $$$T1  MOV (PC)+,-(SP) .BYTE 27.,1 .IFF RVP$ EFN,ASTN MOV (PC)+,-(SP) .BYTE 27.,3 .ENDC DIR$ ,ERR .ENDM CMKT$S+>W  .MACRO CMKT$ EFN,ASTM .MCALL OFF$ .IF NDF $$$GLBA $$$T1=0 .IIF NB EFN $$$T1=1 .IIF NB AST $$$T1=1 .IF EQ $$$T1. .BYTE 27.,1 .IFF$ .BYTE 27.,3 .WORD EFN .WORD AST .ENDC .ENDC .IF NDF C.MKEF .NLISTK OFF$ OFF$ C.MKEF,2 OFF$ C.MKAE,2 .LIST .ENDC .ENDM CMKT$W  .MACRO CNCT$ TNAME,EFN,EAST,ESB .MCALL OFF$,R50$ .IF NDF $$$GLB .BYTE 143.,6. R50$ TNAMEF .WORD EFN .WORD EAST .WORD ESB .ENDC .IF NDF C.NCTNN6 .IRP X,<,,,,> OFF$ X$ .ENDM .ENDC .ENDM CNCT$W ( .MACRO CNCT$C TNAME,EFN,EAST,ESB,CS,ERR .MCALL CNCT$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=.N .IFTF CNCT$ TNAME,EFN,EAST,ESBS .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CNCT$CW % .MACRO CNCT$S TNAME,EFN,EAST,ESB,ERRA .MCALL DIR$,MOV$,RFA$,MVB$. MOV$ ESBL MOV$ EAST MOV$ EFN0 RFA$ TNAMEO MOV (PC)+,-(SP) .BYTE 143.,6 DIR$ ,ERR .ENDM CNCT$S.W  .MACRO CPCR$ NAME .MCALL R50$,OFF$F .IF NDF $$$GLBN .BYTE 205.,3$ R50$ NAME .ENDC .IF NDF C.PCNMA OFF$E OFF$ C.PCNM,2 .ENDC .ENDM CPCR$W  .MACRO CPCR$C NAME,CS,ERR .MCALL CPCR$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.E .IFTF CPCR$ NAMEC .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CPCR$CRW  .MACRO CPCR$S NAME,ERRL .MCALL DIR$,MOV$,RFA$ RFA$ NAME MOV (PC)+,-(SP) .BYTE 205.,3, DIR$ ,ERR .ENDM CPCR$S$W  .MACRO CRAW$ WDBA .MCALL OFF$ .IF NDF $$$GLBF .BYTE 117.,2E .WORD WDB .ENDC .IF NDF C.RABAF OFF$A OFF$ C.RABA,2 .ENDC .ENDM CRAW$W  .MACRO CRAW$C WDB,CS,ERRM .MCALL CRAW$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.D .IFTF CRAW$ WDB .IFTM .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CRAW$CNW  .MACRO CRAW$S WDB,ERR .MCALL DIR$,MOV$L MOV$ WDB, MOV (PC)+,-(SP) .BYTE 117.,2) DIR$ ,ERR .ENDM CRAW$SRW  .MACRO CRGF$C GROUP,CS,ERRW .MCALL CRGF$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.W .IFTF CRGF$ GROUP .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CRGF$CW  .MACRO CRGF$S GROUP,ERR .MCALL MOV$,DIR$F MOV$ GROUP MOV (PC)+,-(SP) .BYTE 157.,2 DIR$ ,ERR .ENDM CRGF$S W  .MACRO CRGF$ GROUP$ .MCALL OFF$ .IF NDF $$$GLBR .BYTE 157.,2. .WORD GROUP .ENDC .IF NDF C.RGRP+ .NLIST. OFF$7 OFF$ C.RGRP,2 .LIST .ENDC .ENDM CRGF$W  .MACRO CRRG$ RDB. .MCALL OFF$ .IF NDF $$$GLBL .BYTE 55.,2 .WORD RDB .ENDC .IF NDF C.RRBA OFF$ OFF$ C.RRBA,2 .ENDC .ENDM CRRG$W  .MACRO CRRG$C RDB,CS,ERRS .MCALL CRRG$,DIR$ .IF NDF $$$GLB  .PSECT $DPB$.,D$$$=. .IFTF CRRG$ RDB .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CRRG$CUW  .MACRO CRRG$S RDB,ERR .MCALL DIR$,MOV$O MOV$ RDB MOV (PC)+,-(SP) .BYTE 55.,2 DIR$ ,ERR .ENDM CRRG$SW ! .MACRO CRVT$ IAST,OAST,AAST,MLEN .MCALL OFF$ .IF NDF $$$GLB$ .BYTE 149.,5. .WORD IASTB .WORD OASTF .WORD AAST .WORD MLEN  .ENDC .IF NDF C.RVIAC6 .IRP X,<,00O F &,,,> OFF$ X, .ENDM .ENDC .ENDM CRVT$W ) .MACRO CRVT$C IAST,OAST,AAST,MLEN,CS,ERRD .MCALL CRVT$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.  .IFTF CRVT$ IAST,OAST,AAST,MLEN .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CRVT$CNW & .MACRO CRVT$S IAST,OAST,AAST,MLEN,ERR .MCALL DIR$,MOV$$ MOV$ MLEN MOV$ AAST MOV$ OAST MOV$ IAST MOV (PC)+,-(SP) .BYTE 149.,5O DIR$ ,ERR .ENDM CRVT$SCW  .MACRO CSRQ$C TT,RT,CS,ERR, .MCALL CSRQ$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=. .IFTF CSRQ$ TT,RT .IFT, .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM CSRQ$CFW  .MACRO CSRQ$S TN,RN,ERR .MCALL RFA$,DIR$S RFA$ TN MOV (PC)+,-(SP) .BYTE 25.,3 DIR$ ,ERR .ENDM CSRQ$SW  .MACRO CSRQ$ TT,RTT .MCALL R50$,OFF$C .IF NDF $$$GLBM .BYTE 25.,3 R50$ TT .ENDC .IF NDF C.SRTNV .NLISTS OFF$Y OFF$ C.SRTN,4 OFF$ C.SRRN,4 .LIST .ENDC .ENDM CSRQ$W  .MACRO DECL$C EFN,PSCT,ERR. .MCALL DECL$,DIR$ .IF NDF $$$GLB= .PSECT $DPB$.,D$$$=. .IFTF DECL$ EFN .IFT$ .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM DECL$CAtW  .MACRO DECL$S EFN,ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 35.,1 DIR$ ,ERR .ENDM DECL$S\W  .MACRO DECL$ EFN. .IF NDF $$$GLB .BYTE 35.,1 .ENDC .ENDM DECL$HW ! .MACRO DLON$ MOD,TBNUM,LNS,LNSSZF .MCALL OFF$,LNMOD$R .IF NDF $$$GLBN LNMOD$M .BYTE 207.,5 .BYTE 12. .BYTE MOD .BYTE TBNUM .BYTE 0 .WORD LNS .WORD LNSSZ .ENDC .IF NDF D.LFUN=A .IRP X,<,,,,,>C OFF$ XD .ENDM .ENDC .ENDM DLON$W ) .MACRO DLON$C MOD,TBNUM,LNS,LNSSZ,CS,ERR. .MCALL DLON$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.  .IFTF DLON$ MOD,TBNUM,LNS,LNSSZ .IFTC .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM DLON$C,W & .MACRO DLON$S MOD,TBNUM,LNS,LNSSZ,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$E LNMOD$Y MOV$ LNSSZE MOV$ LNSY MOV$ TBNUML MVB$ #12.,MOD MOV (PC)+,-(SP) .BYTE 207.,5 DIR$ ,ERR .ENDM DLON$SDFW ! .MACRO DLOG$ MOD,TBNUM,LNS,LNSSZ. .MCALL OFF$,LNMOD$ .IF NDF $$$GLB. LNMOD$N .BYTE 207.,5S .BYTE 2 .BYTE MOD .BYTE TBNUM .BYTE 0 .WORD LNS .WORD LNSSZ .ENDC .IF NDF D.LFUNDA .IRP X,<,,,,,>M OFF$ X .ENDM .ENDC .ENDM DLOG$W ) .MACRO DLOG$C MOD,TBNUM,LNS,LNSSZ,CS,ERRL .MCALL DLOG$,DIR$ .IF NDF $$$GLBV .PSECT $DPB$.,D$$$=. .IFTF DLOG$ MOD,TBNUM,LNS,LNSSZ .IFTR .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM DLOG$COW & .MACRO DLOG$S MOD,TBNUM,LNS,LNSSZ,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$Y LNMOD$Y MOV$ LNSSZE MOV$ LNSY MOV$ TBNUML MVB$ #2,MOD MOV (PC)+,-(SP) .BYTE 207.,5R DIR$ ,ERR .ENDM DLOG$S,W  .MACRO DSAR$C PSCT,ERR .MCALL DSAR$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.C .IFTF DSAR$ .IFT, .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM DSAR$CDpW  .MACRO DSAR$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 99.,1 DIR$ ,ERR .ENDM DSAR$SXW  .MACRO DSAR$M .IF NDF $$$GLBZ .BYTE 99.,1 .ENDC .ENDM DSAR$W  .MACRO DSCP$C PSCT,ERR  .MCALL DSCP$,DIR$ .IF NDF $$$GLB) .PSECT $DPB$.,D$$$=.E .IFTF DSCP$ .IFT .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM DSCP$C,pW  .MACRO DSCP$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 95.,1 DIR$ ,ERR .ENDM DSCP$SXW  .MACRO DSCP$ .IF NDF $$$GLBR .BYTE 95.,1 .ENDC .ENDM DSCP$W  .MACRO DTRG$ RDB .MCALL OFF$ .IF NDF $$$GLBR .BYTE 59.,2 .WORD RDB .ENDC .IF NDF D.TRBAD OFF$ OFF$ D.TRBA,2 .ENDC .ENDM DTRG$W  .MACRO DTRG$C RDB,CS,ERRS .MCALL DTRG$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.R .IFTF DTRG$ RDB .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM DTRG$CLW 00 TADATADATADATADATADATADATADATADATA .MACRO DTRG$S RDB,ERR .MCALL DIR$,MOV$C MOV$ RDB MOV (PC)+,-(SP) .BYTE 59.,2 DIR$ ,ERR .ENDM DTRG$SW  .MACRO ELAW$ WDB .MCALL OFF$ .IF NDF $$$GLBF .BYTE 119.,2$ .WORD WDB .ENDC .IF NDF E.LABAC OFF$N OFF$ E.LABA,2 .ENDC .ENDM ELAW$W  .MACRO ELAW$C WDB,CS,ERR  .MCALL ELAW$,DIR$ .IF NDF $$$GLB$ .PSECT $DPB$.,D$$$=.C .IFTF ELAW$ WDB .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ELAW$CNW  .MACRO ELAW$S WDB,ERR .MCALL DIR$,MOV$ MOV$ WDB$ MOV (PC)+,-(SP) .BYTE 119.,2S DIR$ ,ERR .ENDM ELAW$SRW  .MACRO ELGF$C GROUP,CS,ERRW .MCALL ELGF$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.W .IFTF ELGF$ GROUP .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ELGF$CW  .MACRO ELGF$S GROUP,ERR .MCALL MOV$,DIR$F MOV$ GROUP MOV (PC)+,-(SP) .BYTE 159.,2 DIR$ ,ERR .ENDM ELGF$S W  .MACRO ELGF$ GROUP$ .MCALL OFF$ .IF NDF $$$GLBL .BYTE 159.,2. .WORD GROUP .ENDC .IF NDF E.LGRP+ .NLIST. OFF$9 OFF$ E.LGRP,2 .LIST .ENDC .ENDM ELGF$W  .MACRO ELVT$ UNUM .MCALL OFF$ .IF NDF $$$GLBL .BYTE 151.,2B .WORD UNUM .ENDC .IF NDF E.LVNMF OFF$S OFF$ E.LVNM,2 .ENDC .ENDM ELVT$W  .MACRO ELVT$C UNUM,CS,ERR .MCALL ELVT$,DIR$ .IF NDF $$$GLBU .PSECT $DPB$.,D$$$=.Y .IFTF ELVT$ UNUMR .IFTM .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ELVT$C.W  .MACRO ELVT$S UNUM,ERR. .MCALL DIR$,MOV$N MOV$ UNUM MOV (PC)+,-(SP) .BYTE 151.,2 DIR$ ,ERR .ENDM ELVT$S.W  .MACRO EMST$ TNAME,STATUS .MCALL OFF$,R50$. .IF NDF $$$GLB. .BYTE 147.,4. R50$ TNAME. .WORD STATUSE .ENDC .IF NDF E.MSTNV OFF$. OFF$ E.MSTN,4 OFF$ E.MSST,2 .ENDC .ENDM EMST$W " .MACRO EMST$C TNAME,STATUS,CS,ERR .MCALL EMST$,DIR$ .IF NDF $$$GLBU .PSECT $DPB$.,D$$$=. .IFTF EMST$ TNAME,STATUSM .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM EMST$CLW  .MACRO EMST$S TNAME,STATUS,ERR1 .MCALL DIR$,MOV$,RFA$ MOV$ STATUS RFA$ TNAME MOV (PC)+,-(SP) .BYTE 147.,4C DIR$ ,ERR .ENDM EMST$S$W  .MACRO ENAR$C PSCT,ERRS .MCALL ENAR$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.  .IFTF ENAR$ .IFTM .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM ENAR$C,rW  .MACRO ENAR$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 101.,1$ DIR$ ,ERR .ENDM ENAR$SSZW  .MACRO ENAR$. .IF NDF $$$GLB .BYTE 101.,1. .ENDC .ENDM ENAR$W  .MACRO ENCP$C PSCT,ERRT .MCALL ENCP$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=. .IFTF ENCP$ .IFT .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM ENCP$C$pW  .MACRO ENCP$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 97.,1 DIR$ ,ERR .ENDM ENCP$SNXW  .MACRO ENCP$A .IF NDF $$$GLB. .BYTE 97.,1 .ENDC .ENDM ENCP$W  .MACRO EXIF$C EFN,CS,ERR .MCALL EXIF$,DIR$ .IF NDF $$$GLB$ .PSECT $DPB$.,D$$$=.N .IFTF EXIF$ EFN .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM EXIF$C$W  .MACRO EXIF$S EFN,ERR .MCALL MOV$,DIR$ MOV$ EFNS MOV (PC)+,-(SP) .BYTE 53.,2 DIR$ ,ERR .ENDM EXIF$SW  .MACRO EXIF$ EFNI .MCALL OFF$ .IF NDF $$$GLB. .BYTE 53.,2 .WORD EFN .ENDC .IF NDF E.XFEF. .NLISTP OFF$F OFF$ E.XFEF,2 .LIST .ENDC .ENDM EXIF$W  .MACRO EXIT$C PSCT,ERR, .MCALL EXIT$,DIR$ .IF NDF $$$GLB$ .PSECT $DPB$.,D$$$=.$ .IFTF EXIT$ .IFTN .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM EXIT$CEW  .MACRO EXIT$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 51.,1 DIR$+ .IIF NB , CALL ERR .ENDM EXIT$SEXW  .MACRO EXIT$  .IF NDF $$$GLBL .BYTE 51.,1 .ENDC .ENDM EXIT$W  .MACRO EXST$C STS,CS,ERRL .MCALL EXST$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF EXST$ STS .IFTC .PSECT CS DIR$ #$$$,E00O F &RR .ENDC .ENDM EXST$C.W  .MACRO EXST$S STS,ERR .MCALL MOV$,DIR$,OFF$ MOV$ STS MOV (PC)+,-(SP) .BYTE 29.,2 DIR$ ,ERR .NLISTT$$$OST=05 .IRP X,<,,,>I OFF$ X> .ENDM .LIST .ENDM EXST$SW  .MACRO EXST$ STSF .MCALL OFF$ .IF NDF $$$GLB .BYTE 29.,2 .WORD STS .ENDC .IF NDF E.XSTSC .NLIST. OFF$X OFF$ E.XSTS,2$$$OST=05 .IRP X,<,,,> OFF$ XS .ENDM .LIST .ENDC .ENDM EXST$W  .MACRO EXTK$C INC,CS,ERR .MCALL EXTK$,DIR$ .IF NDF $$$GLBM .PSECT $DPB$.,D$$$=.. .IFTF EXTK$ INC .IFT$ .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM EXTK$CEW  .MACRO EXTK$S INC,ERR .MCALL MOV$,DIR$ CLR -(SP) MOV$ INC  MOV (PC)+,-(SP) .BYTE 89.,3 DIR$ ,ERR .ENDM EXTK$SSW  .MACRO EXTK$ INC. .MCALL OFF$ .IF NDF $$$GLBT .BYTE 89.,3 .WORD INC .WORD 0 .ENDC .IF NDF E.XTINO .NLIST. OFF$. OFF$ E.XTIN,2 .LIST .ENDC .ENDM EXTK$W  .MACRO FEAT$ FEAT .MCALL OFF$,FEADF$$ .IF NDF $$$GLBB .BYTE 177.,2. .WORD FEATI .ENDC .IF NDF F.EAF OFF$$ OFF$ F.EAF,2 .IF DF $$$GLB FEADF$ ,<=> .IFFA FEADF$S .ENDC .ENDC .ENDM FEAT$W  .MACRO FEAT$C FEAT,CS,ERR .MCALL FEAT$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.  .IFTF FEAT$ FEATF .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW  .MACRO FEAT$S FEAT,ERRO .MCALL MOV$,DIR$2 MOV$ FEAT MOV (PC)+,-(SP) .BYTE 177.,2. DIR$ ,ERR .ENDMW + .MACRO FSS$ FSBUF,FSSZ,PRSBLK,PRSSZ,RESERVO .MCALL OFF$ .IF NDF $$$GLBF .IIF NB RESERV, .ERROR .BYTE 207.,7 .BYTE 5 .BYTE 0 .WORD 0 .WORD FSBUF .WORD FSSZA .WORD PRSBLK .WORD PRSSZ .ENDC .IF NDF F.RSV1LA .IRP X,<,,,,,>F OFF$ XF .ENDM .IRP X,<,>N OFF$ XM .ENDM .ENDC .ENDM FSS$EW 3 .MACRO FSS$C FSBUF,FSSZ,PRSBLK,PRSSZ,RESERV,CS,ERRE .MCALL FSS$,DIR$R .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.B .IFTF$ FSS$ FSBUF,FSSZ,PRSBLK,PRSSZ,RESERV .IFT$ .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM FSS$CW 0 .MACRO FSS$S FSBUF,FSSZ,PRSBLK,PRSSZ,RESERV,ERR .IIF NB RESERV, .ERRORC .MCALL DIR$,MOV$,MVB$ MOV$ PRSSZ, MOV$ PRSBLK MOV$ FSSZ MOV$ FSBUFL MOV$ #0 MVB$ #5,. MOV (PC)+,-(SP) .BYTE 207.,7, DIR$ ,ERR .ENDM FSS$SW * .MACRO GCCI$ CBUF,CBFL,IBUF,IBFL,ADDR,NCP .MCALL OFF$ .IF NDF $$$GLB. .BYTE 127.,7. .BYTE NCP .BYTE 0 .WORD ADDRD .WORD CBUFF .WORD CBFLU .WORD IBUF, .WORD IBFL .ENDC .IF NDF G.CCNC A .IRP X,<,,,,,>U OFF$ XS .ENDM OFF$ G.CCIL,2$$$OST=0K .IRP X,<,,,,,> OFF$ XU .ENDM$$$OST=0@ .IRP X,<,,,,> OFF$ X .ENDM .IRP X,<,> OFF$ XN .ENDM .IF DF $$$GLB# .GLOBL GC.CND,GC.CST,GC.CEX,GC.CCSP .ENDC GC.CND=200 GC.CST=002 GC.CEX=001 GC.CCS=000 .ENDC .ENDM GCCI$W 2 .MACRO GCCI$C CBUF,CBFL,IBUF,IBFL,ADDR,NCP,CS,ERR .MCALL GCCI$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.$ .IFTF# GCCI$ CBUF,CBFL,IBUF,IBFL,ADDR,NCPA .IFTC .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW / .MACRO GCCI$S CBUF,CBFL,IBUF,IBFL,ADDR,NCP,ERR> .MCALL MOV$,MVB$,DIR$ MOV$ IBFL MOV$ IBUF MOV$ CBFL MOV$ CBUF MOV$ ADDR MVB$ NCP,#0 MOV (PC)+,-(SP) .BYTE 127.,7. DIR$ ,ERR .ENDMW # .MACRO GCII$ BUF,BUFL,CLI,DEV,UNITG .MCALL OFF$,R50$ .IF NDF $$$GLBC .BYTE 173.,7. .WORD BUF .WORD BUFLC R50$ CLII$$$T2=.N .ASCII /DEV/S .=$$$T2+2D .BYTE UNIT,0F .ENDC .IF NDF G.CIBFBA .IRP X,<,,,,,> OFF$ X .ENDM$$$OST=0@ .IRP X,<,,,,> OFF$ XM .ENDM!00TADATADATADATADATADATADATADATADATA .IRP X,<,>R OFF$ XC .ENDM .ENDC .ENDM GCII$W + .MACRO GCII$C BUF,BUFL,CLI,DEV,UNIT,CS,ERRU .MCALL GCII$,DIR$ .IF NDF $$$GLB0 .PSECT $DPB$.,D .IFTF$$$=., GCII$ BUF,BUFL,CLI,DEV,UNIT .IFTL .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW ( .MACRO GCII$S BUF,BUFL,CLI,DEV,UNIT,ERR .MCALL MOV$,MVB$,DIR$,RFA$V MVB$ UNIT,#0 MOV$ DEV RFA$ CLIO MOV$ BUFL MOV$ BUF4 MOV (PC)+,-(SP) .BYTE 173.,7. DIR$ ,ERR .ENDM GCII$SNFW ! .MACRO GDIR$ MOD,ENS,ENSSZ,RSIZEN .MCALL OFF$,LNMOD$I .IF NDF $$$GLB LNMOD$R .BYTE 207.,6. .BYTE 4 .BYTE MOD .WORD 0 .WORD ENS .WORD ENSSZ .WORD RSIZE .ENDC .IF NDF G.DFUNGA .IRP X,<,,,,,>N OFF$ XM .ENDM .ENDC .ENDM GDIR$W ) .MACRO GDIR$C MOD,ENS,ENSSZ,RSIZE,CS,ERR .MCALL GDIR$,DIR$ .IF NDF $$$GLBO .PSECT $DPB$.,D$$$=. .IFTF GDIR$ MOD,ENS,ENSSZ,RSIZE .IFTR .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GDIR$COW & .MACRO GDIR$S MOD,ENS,ENSSZ,RSIZE,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$Y LNMOD$Y MOV$ RSIZED MOV$ ENSSZS MOV$ ENSS MOV$ #0 MVB$ #4,MOD MOV (PC)+,-(SP) .BYTE 207.,6D DIR$ ,ERR .ENDM GDIR$S>W $ .MACRO GDVI$C LUN,BUFA,BUFL,CS,ERR .MCALL GDVI$,DIR$ .IF NDF $$$GLBD .PSECT $DPB$.,D$$$=.C .IFTF GDVI$ LUN,BUFA,BUFL .IFT$ .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GDVI$CD6W  .MACRO GDVI$S LUN,BUFA,BUFL,ERR .MCALL MOV$,DIR$,OFF$ MOV$ BUFL MOV$ BUFA MOV$ LUNM MOV (PC)+,-(SP) .BYTE 5,4 DIR$ ,ERR .IF NDF G.DVNAM .NLISTV$$$OST=0A .IRP X,<,,,,> OFF$ X7 .ENDM .LIST .ENDC .ENDM GDVI$SW  .MACRO GDVI$ LUN,BUFA,BUFLR .MCALL OFF$ .IF NDF $$$GLB$ .BYTE 5,4 .WORD LUN .WORD BUFAF .WORD BUFLN .ENDC .IF NDF G.DVLUC .NLISTR+ .IRP X,<,,,> OFF$ X. .ENDM .IF NDF G.DVNAL$$$OST=0B .IRP X,<,,,,> OFF$ XY .ENDM .ENDC .LIST .ENDC .ENDM GDVI$hW - .MACRO GIN$C SFCN,P1,P2,P3,P4,P5,P6,P7,P8,P9, .MCALL GIN$,DIR$,GFN$,OFF$M .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF GFN$ .NARG $$$NA $$$I=$$$NC .BYTE 169.,$$$N+1. .IRP $$$PRM, .IF EQ $$$I .MEXITF .IFFD $$$I=$$$I-1R .ENDC .WORD $$$PRM< .ENDR .IF NDF G.INSFO .NLIST.6 .IRP X,<,,,,> OFF$ X< .ENDR* .IRP X,<,,> OFF$ X .ENDR* .IRP X,<,,> OFF$ X  .ENDR .ENDC .IFTP .PSECT CS DIR$ #$$$ .ENDC .ENDM GIN$C<W - .MACRO GIN$S SFCN,P1,P2,P3,P4,P5,P6,P7,P8,P9A .MCALL MOV$,DIR$,OFF$,MVB$,GFN$ GFN$$ .NARG $$$N, $$$I=$$$N,$$$K=9.P. .IRP $$$PRM, .IF GT $$$I-$$$K$ MOV$ $$$PRM .ENDC $$$K=$$$K-1L .ENDR MOV (PC)+,-(SP) .BYTE 169.,$$$N+1 DIR$P .ENDM GIN$SW , .MACRO GIN$ SFCN,P1,P2,P3,P4,P5,P6,P7,P8,P9 .MCALL OFF$,GFN$< .IF NDF $$$GLB, GFN$P .NARG $$$N $$$I=$$$N .BYTE 169.,$$$N+1. .IRP $$$PRM, .IF EQ $$$I .MEXIT$ .IFFP $$$I=$$$I-1, .ENDC .WORD $$$PRMO .ENDR .ENDC .IF NDF G.INSF. .NLIST,6 .IRP X,<,,,,> OFF$ XS .ENDM* .IRP X,<,,> OFF$ X .ENDR* .IRP X,<,,> OFF$ XG .ENDR .ENDC .ENDM GIN$RW  .MACRO GLUN$C LUN,BUFA,CS,ERR$ .MCALL GLUN$,DIR$ .IF NDF $$$GLBA .PSECT $DPB$.,D$$$=.Y .IFTF GLUN$ LUN,BUFAP .IFTN .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GLUN$C$LW  .MACRO GLUN$S LUN,BUFA,ERR .MCALL MOV$,DIR$,OFF$ MOV$ BUFA MOV$ LUNR MOV (PC)+,-(SP) .BYTE 5,3 DIR$ ,ERR .IF NDF G.LUNAS .NLIST$$$OST=06 .IRP X,<,,,> OFF00#O F &$ XP .ENDM$$$OST=1 .IRP X,<> OFF$ X. .ENDM .LIST .ENDC .ENDM GLUN$S.W  .MACRO GLUN$ LUN,BUFA .MCALL OFF$ .IF NDF $$$GLBS .BYTE 5,3 .WORD LUN .WORD BUFAL .ENDC .IF NDF G.LULU  .NLIST + .IRP X,<,,,> OFF$ XA .ENDM .IF NDF G.LUNA$$$OST=06 .IRP X,<,,,> OFF$ X3 .ENDM$$$OST=1 .IRP X,<> OFF$ X0 .ENDM .ENDC .LIST .ENDC .ENDM GLUN$W  .MACRO GMCR$C CS,ERR. .MCALL GMCR$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.U .IFTF GMCR$ .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GMCR$CLW  .MACRO GMCR$D .MCALL OFF$ .IF NDF $$$GLB  .BYTE 127.,41. .BLKW 40. .ENDC .IF NDF G.MCRB .NLISTA OFF$M OFF$ G.MCRB,80. .LIST .ENDC .ENDM GMCR$W  .MACRO GMCX$ WVEC .MCALL OFF$ .IF NDF $$$GLBR .BYTE 113.,2> .WORD WVEC. .ENDC .IF NDF G.MCVAN OFF$N OFF$ G.MCVA,2 .ENDC .ENDM GMCX$W  .MACRO GMCX$C WVEC,CS,ERR .MCALL GMCX$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.  .IFTF GMCX$ WVEC. .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GMCX$CCW  .MACRO GMCX$S WVEC,ERR  .MCALL DIR$,MOV$C MOV$ WVEC MOV (PC)+,-(SP) .BYTE 113.,2. DIR$ ,ERR .ENDM GMCX$S.W  .MACRO GPRT$C PRT,BUF,CS,ERR .MCALL GPRT$,DIR$ .IF NDF $$$GLBE .PSECT $DPB$.,D$$$=.. .IFTF GPRT$ PRT,BUF .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GPRT$CW  .MACRO GPRT$S PRT,BUF,ERR .MCALL MOV$,RFA$,DIR$,OFF$C MOV$ BUF RFA$ PRTF MOV (PC)+,-(SP) .BYTE 65.,4 DIR$ ,ERR .IF NDF G.PRPB .NLISTC$$$OST=0* .IRP X,<,,> OFF$ XM .ENDM .LIST .ENDC .ENDM GPRT$SYBW  .MACRO GPRT$ PRT,BUF .MCALL OFF$,R50$A .IF NDF $$$GLBF .BYTE 65.,4 R50$ PRTI .WORD BUF .ENDC .IF NDF G.PRPND .NLIST OFF$ OFF$ G.PRPN,4 OFF$ G.PRBA,2 .IF NDF G.PRPBR$$$OST=0* .IRP X,<,,> OFF$ XB .ENDM .ENDC .LIST .ENDC .ENDM GPRT$HW  .MACRO GREG$ RID,BUF6 .MCALL OFF$ .IF NDF $$$GLBP .BYTE 65.,4 .WORD 0,RID .WORD BUF .ENDC .IF NDF G.RGID> .NLISTM OFF$M OFF$ ,2 OFF$ G.RGID,2 OFF$ G.RGBA,2 .IF NDF G.RGRB $$$OST=0* .IRP X,<,,> OFF$ X. .ENDM .ENDC .LIST .ENDC .ENDM GREG$W  .MACRO GREG$C RID,BUF,CS,ERR. .MCALL GREG$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=., .IFTF GREG$ RID,BUF .IFTM .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GREG$CW  .MACRO GREG$S RID,BUF,ERR .MCALL MOV$,DIR$,OFF$ MOV$ BUFD MOV$ RIDO CLR -(SP) MOV (PC)+,-(SP) .BYTE 65.,4 DIR$ ,ERR .IF NDF G.RGRBD .NLIST $$$OST=0* .IRP X,<,,> OFF$ XR .ENDM .LIST .ENDC .ENDM GREG$SNW  .MACRO GSSW$C PSCT,ERR .MCALL GSSW$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=.F .IFTF GSSW$ .IFTD .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM GSSW$CCrW  .MACRO GSSW$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 125.,1F DIR$ ,ERR .ENDM GSSW$S$ZW  .MACRO GSSW$S .IF NDF $$$GLBS .BYTE 125.,14 .ENDC .ENDM GSSW$W  .MACRO GTIM$C BUFA,CS ERR .MCALL GTIM$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.. .IFTF GTIM$ BUFA .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GTIM$CFVW  .MACRO GTIM$S BUFA,ERRF .MCALL MOV$,DIR$,OFF$ MOV$ BUFA MOV (PC)+,-(SP) .BYTE 61.,2 DIR$ ,ERR .IF NDF G.TIYRR .NLISTE$$$OST=05 .IRP X,<,,,>. OFF$ X$ .ENDM5 .IRP X,<,,,>1 OFF$ X. .ENDM .LIST .ENDC .ENDM GTIM$S.tW  .MACRO GTIM$ BUFA .MCALL OFF$ .IF NDF $$$GLBC .BYTE 61.,2 .WORD BUFA .ENDC .IF NDF G.TIBAS .NLISTD OFF$$ OFF$ G.TIBA,2 .IF NDF G.TIYR$$$OST=05 .IRP X,<,,,>M OFF$ X .ENDM5 .IRP X,<,,,>. OFF$ X$ .ENDM .ENDC .LIST .ENDC .ENDM GTIM$W  .MACRO GTSK$C BUFA,CS,ERR .MCALL GTSK$,DIR$ .IF NDF $$$GLBC .PSECT $DPB$.,D$$$=. .IFT GTSK$ BUFAM .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM GTSK$C$W  .MACRO GTSK$S BUFA,ERRF .MCALL MOV$,DIR$,OFF$ MOV$ BUFA MOV (PC)+,-(SP) .BYTE 63.,2 DIR$ ,ERR .IF NDF G.TSTN  .NLISTR$$$OST=0@ .IRP X,<,,,,> OFF$ X, .ENDM@ .IRP X,<,,,,> OFF$ X .ENDM OFF$ G.TSVL,2 OFF$ G.TSTS,2 OFF$ G.TSSY,2 OFF$ G.TSDU,2$$$OST=05 .IRP X,<,,,>. OFF$ X  .ENDM .LIST .ENDC .ENDM GTSK$S$W  .MACRO GTSK$ BUFA .MCALL OFF$ .IF NDF $$$GLB$ .BYTE 63.,2 .WORD BUFAS .ENDC .IF NDF G.TSBAE .NLISTN OFF$T OFF$ G.TSBA,2 .IF NDF G.TSTN<$$$OST=0@ .IRP X,<,,,,> OFF$ X. .ENDM@ .IRP X,<,,,,> OFF$ XL .ENDM OFF$ G.TSVL,2 OFF$ G.TSTS,2 OFF$ G.TSSY,2 OFF$ G.TSDU,2$$$OST=05 .IRP X,<,,,>. OFF$ XN .ENDM .ENDC .LIST .ENDC .ENDM GTSK$^W  .MACRO IHAR$C PSCT,ERR .MCALL DSAR$C DSAR$C PSCT,ERR .ENDM IHAR$CBTW  .MACRO IHAR$S ERR .MCALL DSAR$S DSAR$S ERR. .ENDM IHAR$S4HW  .MACRO IHAR$> .MCALL DSAR$O DSAR$ .ENDM IHAR$W  .MACRO MAP$ WDB .MCALL OFF$ .IF NDF $$$GLBL .BYTE 121.,2 .WORD WDB .ENDC .IF NDF M.APBAY OFF$F OFF$ M.APBA,2 .ENDC .ENDM MAP$DW  .MACRO MAP$C WDB,CS,ERR .MCALL MAP$,DIR$C .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF MAP$ WDBC .IFTR .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM MAP$CW  .MACRO MAP$S WDB,ERR .MCALL DIR$,MOV$A MOV$ WDB. MOV (PC)+,-(SP) .BYTE 121.,2. DIR$ ,ERR .ENDM MAP$SW " .MACRO MRKT$C EF,TM,TU,AST,CS,ERR .MCALL MRKT$,DIR$ .IF NDF $$$GLBL .PSECT $DPB$.,D$$$=.W .IFTF MRKT$ EF,TM,TU,AST .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM MRKT$CW  .MACRO MRKT$S EF,TM,TU,AST,ERR. .MCALL RVP$,DIR$S RVP$ EF,TM,TU,AST MOV (PC)+,-(SP) .BYTE 23.,5 DIR$ ,ERR .ENDM MRKT$S.W  .MACRO MRKT$ EFN,TM,TU,ASTA .MCALL OFF$ .IF NDF $$$GLBA .BYTE 23.,5 .WORD EFN .WORD TME .WORD TUD .WORD AST .ENDC .IF NDF M.KTEF .NLISTR6 .IRP X,<,,,,> OFF$ XL .ENDM .LIST .ENDC .ENDM MRKT$W  .MACRO MSDS$ MASK .MCALL OFF$ .IF NDF $$$GLBM .BYTE 201.,2. .WORD MASK. .ENDC .IF NDF M.SDMA, .IRP X,<,>S OFF$ XF .ENDM .ENDC .ENDM MSDS$W  .MACRO MSDS$C MASK,CS,ERR .MCALL MSDS$,DIR$ .IF NDF $$$GLB, .PSECT $DPBD$ D$$$=.N .IFTF MSDS$ MASK. .IFTO .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW  .MACRO MSDS$S MASK,ERR, .MCALL MOV$,DIR$G MOV$ MASK MOV (PC)+,-(SP) .BYTE 201.,2. DIR$ ,ERR .ENDMW  .MACRO MVTS$ ACTION,ADDR,VAL. .MCALL OFF$ .IF NDF $$$GLB. .BYTE 203.,4. .WORD ACTIONN .WORD ADDRM .WORD VAL .ENDC .IF NDF M.VTAC 6 .IRP X,<,,,,> OFF$ XC .ENDM $$$=05 .IRP X,<,,,>$ OFF$ XF .ENDM5 .IRP X,<,,,>. OFF$ X .ENDM .ENDC .ENDM MVTS$W % .MACRO MVTS$C ACTION,ADDR,VAL,CS,ERR) .MCALL MVTS$,DIR$ .IF NDF $$$GLB .PSECT $DPBD$ D$$$=.  .IFTF MVTS$ ACTION,ADDR,VAL .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW " .MACRO MVTS$S ACTION,ADDR,VAL,ERR .MCALL MOV$,DIR$, MOV$ VAL2 MOV$ ADDR MOV$ ACTION MOV (PC)+,-(SP) .BYTE 203.,4. DIR$ ,ERR .ENDM003O F &W V .MACRO PFCS$ MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFNBK,DFNSZ,RSMSK .MCALL OFF$,LNMOD$ .IF NDF $$$GLB LNMOD$ .BYTE 207.,13.C .BYTE 8.R .BYTE MOD .BYTE LUN .BYTE TBMSK .WORD PRBUF .WORD PRSZ$ .WORD RSBUF .WORD RSSZA .WORD RSLEN .WORD PRSBLKC .WORD PRSSZ .WORD DFNBK .WORD DFNSZ .WORD RSMSK .ENDC .IF NDF F.LMODR6 .IRP X,<,,,,> OFF$ XN .ENDM5 .IRP X,<,,,> OFF$ X .ENDM5 .IRP X,<,,,>P OFF$ XK .ENDM .IRP X,<,>N OFF$ X .ENDM .ENDC .ENDM PFCS$HW ^ .MACRO PFCS$C MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFNBK,DFNSZ,RSMSK,CS,ERR .MCALL PFCS$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=. .IFTFO PFCS$ MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFNBK,DFNSZ,RSMSKL .IFTO .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM PFCS$CRW [ .MACRO PFCS$S MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFNBK,DFNSZ,RSMSK,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$N LNMOD$ MOV$ RSMSKN MOV$ DFNSZC MOV$ DFNBK MOV$ PRSSZR MOV$ PRSBLK MOV$ RSLENF MOV$ RSSZ MOV$ RSBUFS MOV$ PRSZ MOV$ PRBUFS MVB$ LUN,TBMSK MVB$ #8.,MODF MOV (PC)+,-(SP) .BYTE 207.,13.= DIR$ ,ERR .ENDM PFCS$SKW U .MACRO PRMS$ MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFBUF,DFSZ,RSMSKN .MCALL OFF$,LNMOD$ .IF NDF $$$GLB. LNMOD$S .BYTE 207.,13.P .BYTE 7 .BYTE MOD .BYTE LUN .BYTE TBMSK .WORD PRBUF .WORD PRSZ$ .WORD RSBUF .WORD RSSZ .WORD RSLEN .WORD PRSBLK .WORD PRSSZ .WORD DFBUF .WORD DFSZ .WORD RSMSK .ENDC .IF NDF R.LFUN6 .IRP X,<,,,,> OFF$ X( .ENDM5 .IRP X,<,,,> OFF$ X .ENDM5 .IRP X,<,,,>K OFF$ XB .ENDM .IRP X,<,>F OFF$ XL .ENDM .ENDC .ENDM PRMS$FW ] .MACRO PRMS$C MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFBUF,DFSZ,RSMSK,CS,ERRR .MCALL PRMS$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=. .IFTFN PRMS$ MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFBUF,DFSZ,RSMSK .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM PRMS$C.~W Z .MACRO PRMS$S MOD,TBMSK,LUN,PRBUF,PRSZ,RSBUF,RSSZ,RSLEN,PRSBLK,PRSSZ,DFBUF,DFSZ,RSMSK,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$, LNMOD$F MOV$ RSMSK MOV$ DFSZ MOV$ DFBUF MOV$ PRSSZ MOV$ PRSBLK MOV$ RSLENN MOV$ RSSZ MOV$ RSBUFL MOV$ PRSZ MOV$ PRBUFZ MVB$ LUN,TBMSK. MVB$ #7,MOD MOV (PC)+,-(SP) .BYTE 207.,13.. DIR$ ,ERR .ENDM PRMS$SMW 6 .MACRO QIO$C FNC,LUN,EFN,PRI,IOST,AST,PRMLST,PSCT,ERR .MCALL QDPB$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=. .IFTF* QDPB$ 1,FNC,LUN,EFN,PRI,IOST,AST, .IFTS .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM QIO$CW 1 .MACRO QIO$S FNC,LUN,EFN,PRI,IOST,AST,PRMLST,ERRU .MCALL QDPB$S/ QDPB$S 1,FNC,LUN,EFN,PRI,IOST,AST,,ERRS .ENDM QIO$SW , .MACRO QIO$ FNC,LUN,EFN,PRI,IOST,AST,PRMLST .MCALL QDPB$,* QDPB$ 1,FNC,LUN,EFN,PRI,IOST,AST, .ENDM QIO$RW 7 .MACRO QIOW$C FNC,LUN,EFN,PRI,IOST,AST,PRMLST,PSCT,ERRN .MCALL QDPB$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.E .IFTF* QDPB$ 3,FNC,LUN,EFN,PRI,IOST,AST, .IFTE .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM QIOW$CIW 2 .MACRO QIOW$S FNC,LUN,EFN,PRI,IOST,AST,PRMLST,ERR .MCALL QDPB$S/ QDPB$S 3,FNC,LUN,EFN,PRI,IOST,AST,,ERR .ENDM QIOW$S$W - .MACRO QIOW$ FNC,LUN,EFN,PRI,IOST,AST,PRMLSTN .MCALL QDPB$S* QDPB$ 3,FNC,LUN,EFN,PRI,IOST,AST, .ENDM QIOW$vW 6 .MACRO QDPB$S DIC,FNC,LUN,EFN,PRI,IOST,AST,PRMLST,ERR .MCALL RVP$,MVB$,DIR$ .NLIST$$$ARG=0 .IRP X,$$$ARG=$$$ARG+1M .ENDM .LIST .IF GT 6-$$$ARG .REPT <6-$$$ARG>. CLR -(SP)00;TADATADATADATADATADATADATADATADATA .ENDR .ENDC .IIF NB , RVP$ PRMLST RVP$ IOST,AST MVB$ EFN, RVP$ FNC,LUNP MOV (PC)+,-(SP) .BYTE DIC,12. DIR$ ,ERR .ENDM QDPB$S"W 1 .MACRO QDPB$ DIC,FNC,LUN,EFN,PRI,IOST,AST,PRMLSTC .MCALL OFF$ .IF NDF $$$GLBN .BYTE DIC,12. .WORD FNC .WORD LUN .BYTE EFN,0 .WORD IOSTB .WORD AST .NLISTI$$$ARG=0 .LIST .IRP X, .WORD X .NLIST$$$ARG=$$$ARG+1, .LIST .ENDM .IF GT 6-$$$ARG .REPT <6-$$$ARG>- .WORD 0 .ENDR .ENDC .ENDC .IF NDF Q.IOFNN .NLIST 6 .IRP X,<,,,,> OFF$ XU .ENDM( .IRP X,<,,> OFF$ XP .ENDM .LIST .ENDC .ENDM QDPB$W  .MACRO RCST$ TNAME,BUFL .MCALL OFF$,R50$$ .IF NDF $$$GLB1 .BYTE 139.,4 R50$ TNAME. .WORD BUF .ENDC .IF NDF R.CSTN OFF$I OFF$ R.CSTN,4 OFF$ R.CSBF,2 .ENDC .ENDM RCST$W  .MACRO RCST$C TNAME,BUF,CS,ERRA .MCALL RCST$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=.N .IFTF RCST$ TNAME,BUF .IFTQ .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RCST$CUW  .MACRO RCST$S TNAME,BUF,ERR .MCALL DIR$,MOV$,RFA$ MOV$ BUFC RFA$ TNAME$ MOV (PC)+,-(SP) .BYTE 139.,4 DIR$ ,ERR .ENDM RCST$S0W  .MACRO RDAF$C BA,CS,ERR .MCALL RDAF$,DIR$ .IF NDF $$$GLBR .PSECT $DPB$.,D$$$=.S .IFTF RDAF$ BA2 .IFTC .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RDAF$CAW  .MACRO RDAF$S BA,ERRN .MCALL MOV$,DIR$  MOV$ BA MOV (PC)+,-(SP) .BYTE 39.,2 DIR$ ,ERR .ENDM RDAF$S W  .MACRO RDAF$ BA .MCALL OFF$ .IF NDF $$$GLBT .BYTE 39.,2 .WORD BA$ .ENDC .IF NDF R.DABAR .NLIST$ OFF$( OFF$ R.DABA,2.E .LIST .ENDC .ENDM RDAF$W " .MACRO RDBBK$ SIZ,NAM,PAR,STS,PRO .MCALL RDBDF$,R50$F RDBDF$L .WORD 0 .WORD SIZ R50$ NAMF R50$ PARB .WORD STS .WORD PRO .ENDM RDBBK$"W  .MACRO RDBDF$ GBL .MCALL .BLKW.,.BLK. .BLK. .BLKW. 1,R.GID,GBLV .BLKW. 1,R.GSIZ,GBL .BLKW. 2,R.GNAM,GBL .BLKW. 2,R.GPAR,GBL .BLKW. 1,R.GSTS,GBL .BLKW. 1,R.GPRO,GBL .BLKW. 0,R.GLGH,GBL .IF IDN ,1 .GLOBL RS.CRR,RS.UNM,RS.MDL,RS.NDL,RS.ATT,RS.NEXF# .GLOBL RS.DEL,RS.EXT,RS.WRT,RS.REDR .ENDCRS.CRR=^O<100000>ARS.UNM=^O<40000>RS.MDL=^O<200>RS.NDL=^O<100> RS.ATT=^O<40>. RS.NEX=^O<20>S RS.DEL=^O<10> RS.EXT=^O<4> RS.WRT=^O<2> RS.RED=^O<1> .MACRO RDBDF$ X .ENDM .ENDM RDBDF$$W  .MACRO RDEF$C EFN,CS,ERR, .MCALL RDEF$,DIR$ .IF NDF $$$GLBL .PSECT $DPB$.,D$$$=.  .IFTF RDEF$ EFN .IFTS .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RDEF$CW  .MACRO RDEF$S EFN,ERR .MCALL MOV$,DIR$S MOV$ EFNF MOV (PC)+,-(SP) .BYTE 37.,2 DIR$ ,ERR .ENDM RDEF$S0W  .MACRO RDEF$ EFN0 .MCALL OFF$ .IF NDF $$$GLB0 .BYTE 37.,2 .WORD EFN .ENDC .IF NDF R.DEEFS .NLIST> OFF$D OFF$ R.DEEF,2.D .LIST .ENDC .ENDM RDEF$W  .MACRO RDXF$C BA,CS,ERR .MCALL RDXF$,DIR$ .IF NDF $$$GLBL .PSECT $DPB$.,D$$$=.= .IFTF RDXF$ BAE .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RDXF$C$W  .MACRO RDXF$S BA,ERRE .MCALL MOV$,DIR$R CLR -(SP) MOV$ BA MOV (PC)+,-(SP) .BYTE 39.,3.E DIR$ ,ERR .ENDM RDXF$SW  .MACRO RDXF$ BA .MCALL OFF$ .IF NDF $$$GLBE .BYTE 39.,3.E .WORD BA .WORD 0 .ENDC .IF NDF R.DABA .NLISTE OFF$ OFF$ R.DABA,2.. .LIST .ENDC .ENDM RDXF$W  .MACRO RCVD$C TN,BA,CS,ERR. .MCALL RCVD$,DIR$ .IF NDF $$$GLB= .PSECT $DPB$.,D$$$=.. .IFTF RCVD$ TN,BA .IFTE .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RCVD$CRW  .MACRO RCVD$S TN,BA,ERR .MCALL MOV$,DIR$, RFA$+ MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 75.,4 DIR$ ,ERR .ENDM RCVD$SDW  .MACRO RCVD$ TN,BA .MCALL OFF$, R50$ .IF NDF $$$GLB .BYTE 75.,4 R50$ TN .WORD BA .ENDC .IF NDF R.VDTN .NLIST. .IRP X,<,,> OFF$ XR .ENDM .LIST00CO F & .ENDC .ENDM RCVD$W  .MACRO RCVX$C TN,BA,CS,ERR. .MCALL RCVX$,DIR$ .IF NDF $$$GLBC .PSECT $DPB$.,D$$$=.N .IFTF RCVX$ TN,BA .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RCVX$C,W  .MACRO RCVX$S TN,BA,ERR .MCALL MOV$,DIR$, RFA$R MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 77.,4 DIR$ ,ERR .ENDM RCVX$S.W  .MACRO RCVX$ TN,BA .MCALL OFF$, R50$ .IF NDF $$$GLB .BYTE 77.,4 R50$ TN .WORD BAD .ENDC .IF NDF R.VXTN .NLIST. .IRP X,<,,> OFF$ XR .ENDM .LIST .ENDC .ENDM RCVX$W ? .MACRO RLON$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMODS .MCALL OFF$,LNMOD$R .IF NDF $$$GLBR LNMOD$ .BYTE 207.,10.. .BYTE 14. .BYTE MOD .WORD TBMSK .WORD LNS .WORD LNSSZ .WORD ENS .WORD ENSSZ .WORD RSIZE .WORD RTBMODM .WORD STATUS .ENDC .IF NDF R.LFUN A .IRP X,<,,,,,>N OFF$ XB .ENDM@ .IRP X,<,,,,> OFF$ X .ENDM .ENDC .ENDM RLON$W G .MACRO RLON$C MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,CS,ERR .MCALL RLON$,DIR$ .IF NDF $$$GLBR .PSECT $DPB$.,D$$$=.0 .IFTF8 RLON$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RLON$C.@W D .MACRO RLON$S MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$. LNMOD$R MOV$ STATUS MOV$ RTBMOD MOV$ RSIZEL MOV$ ENSSZS MOV$ ENS MOV$ LNSSZ. MOV$ LNSM MVB$ TBMSK,#0 MVB$ #14.,MOD MOV (PC)+,-(SP) .BYTE 207.,10., DIR$ ,ERR .ENDM RLON$SRW ? .MACRO RLOG$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMODM .MCALL OFF$,LNMOD$N .IF NDF $$$GLBZ LNMOD$ .BYTE 207.,10.S .BYTE 10. .BYTE MOD .WORD TBMSK .WORD LNS .WORD LNSSZ .WORD ENS .WORD ENSSZ .WORD RSIZE .WORD RTBMODT .WORD STATUSL .ENDC .IF NDF R.LFUNA .IRP X,<,,,,,>M OFF$ X .ENDM@ .IRP X,<,,,,> OFF$ X2 .ENDM .ENDC .ENDM RLOG$W G .MACRO RLOG$C MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,CS,ERR .MCALL RLOG$,DIR$ .IF NDF $$$GLBZ .PSECT $DPB$.,D$$$=.0 .IFTF8 RLOG$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RLOG$C.@W D .MACRO RLOG$S MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$. LNMOD$R MOV$ STATUS MOV$ RTBMOD MOV$ RSIZEL MOV$ ENSSZS MOV$ ENS MOV$ LNSSZ. MOV$ LNSM MVB$ TBMSK,#0 MVB$ #10.,MOD MOV (PC)+,-(SP) .BYTE 207.,10., DIR$ ,ERR .ENDM RLOG$SRdW  .MACRO RMAF$S ERR MOV (PC)+,-(SP) .BYTE 163.,1F DIR$ ,ERR .ENDM RMAF$S,W N .MACRO RPOI$ TNAME,PN,PR,UGC,UMC,PARENT,BUFADR,BUFLEN,SC,DNAM,UNIT,TASK,OCBAD .MCALL R50$,OFF$R .IF NDF $$$GLBK .BYTE 11.,16. R50$ TNAMES .BLKW 3 .BYTE UMC,UGC R50$ PARENT .WORD OCBAD .WORD BUFADRS .WORD BUFLEN .BYTE UNIT .BYTE SCS .IF NB DNAM$$$T2=.S .ASCII /DNAM/ .=$$$T2+2, .IFFB .WORD .ENDC R50$ TASK .ENDC .IF NDF R.POTK B .IRP X,<,,,,,> OFF$ X .ENDM@ .IRP X,<,,,,> OFF$ XN .ENDM OFF$ R.POTN,2 .IF DF $$$GLB .GLOBL RP.OEX,RP.OAL,RP.ONX .ENDC RP.OEX=200 RP.OAL=001 RP.ONX=002 .ENDC .ENDM RPOI$8W V .MACRO RPOI$C TNAME,PN,PR,UGC,UMC,PARENT,BUFADR,BUFLEN,SC,DNAM,UNIT,TASK,OCBAD,CS,ERR .MCALL RPOI$,DIR$ .IF NDF $$$GLB= .PSECT $DPB$.,D$$$=. .IFTFG RPOI$ TNAME,PN,PR,UGC,UMC,PARENT,BUFADR,BUFLEN,SC,DNAM,UNIT,TASK,OCBAD. .IFT, .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RPOI$C<fW S .MACRO RPOI$S TNAME,PN,PR,UGC,UMC,PARENT,BUFADR,BUFLEN,SC,DNAM,UNIT,TASK,OCBAD,ERRB .MCALL MVB$,MOV$,RFA$,DIR$X RFA$ TASK MOV$ DNAM MVB$ UNIT,SCX MOV$ 00KTADATADATADATADATADATADATADATADATABUFLEN MOV$ BUFADR MOV$ OCBAD RFA$ PARENT MVB$ UMC,UGCR CLR -(SP) CLR -(SP) CLR -(SP) RFA$ TNAMEC MOV (PC)+,-(SP) .BYTE 11.,16. DIR$ ,ERR .ENDM RPOI$SBW # .MACRO RQST$C TN,PN,PR,GC,P,CS,ERR, .MCALL RQST$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=.R .IFTF RQST$ TN,PN,PR,GC,P .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW  .MACRO RQST$S TN,PN,PR,GC,P,ERR .MCALL MVB$,RFA$,DIR$ MVB$ P,GC CLR -(SP) RFA$N RFA$ TN MOV (PC)+,-(SP) .BYTE 11.,7 DIR$ ,ERR .ENDM RQST$SA*W  .MACRO RQST$ TN,PN,PR,GC,PC .MCALL R50$,OFF$M .IF NDF $$$GLBS .BYTE 11.,7 R50$ TN .WORD 0,0 .WORD 0 .BYTE P,GC .ENDC .IF NDF R.QSTNN .NLISTCA .IRP X,<,,,,,>= OFF$ XF .ENDM .LIST .ENDC .ENDM RQST$W  .MACRO RREF$ WDB .MCALL OFF$ .IF NDF $$$GLBS .BYTE 81.,2 .WORD WDB .ENDC .IF NDF R.REBA, OFF$R OFF$ R.REBA,2 .ENDC .ENDM RREF$W  .MACRO RREF$C WDB,CS,ERRA .MCALL RREF$,DIR$ .IF NDF $$$GLBP .PSECT $DPB$.,D$$$=.O .IFTF RREF$ WDB .IFTY .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RREF$CGW  .MACRO RREF$S WDB,ERR .MCALL DIR$,MOV$< MOV$ WDBR MOV (PC)+,-(SP) .BYTE 81.,2 DIR$ ,ERR .ENDM RREF$SW  .MACRO RSUM$C TN,CS,ERR .MCALL RSUM$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.. .IFTF RSUM$ TN. .IFTR .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RSUM$C$W  .MACRO RSUM$S TN,ERR, .MCALL RFA$,DIR$, RFA$ TN MOV (PC)+,-(SP) .BYTE 47.,3 DIR$ ,ERR .ENDM RSUM$SW  .MACRO RSUM$ TN .MCALL R50$,OFF$$ .IF NDF $$$GLB .BYTE 47.,3 R50$ TN .ENDC .IF NDF R.SUTNM .NLIST OFF$C OFF$ R.SUTN,4 .LIST .ENDC .ENDM RSUM$W / .MACRO RUN$C TN,PN,PR,UG,UP,SM,SU,RM,RU,CS,ERR$ .MCALL RUN$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.. .IFTF RUN$ TN,PN,PR,UG,UP,SM,SU,RM,RU .IFTN .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RUN$CW , .MACRO RUN$S TN,PN,PR,UG,UP,SM,SU,RM,RU,ERR .MCALL RVP$,MVB$,RFA$,DIR$ RVP$ SM,SU,RM,RU. MVB$ UP,UGN CLR -(SP) RFA$$ RFA$ TN MOV (PC)+,-(SP) .BYTE 17.,11. DIR$ ,ERR .ENDM RUN$SW & .MACRO RUN$ TN,PN,PR,GC,P,SM,SU,RM,RU .MCALL R50$,OFF$ .IF NDF $$$GLB  .BYTE 17.,11. R50$ TN .WORD 0,0 .WORD 0 .BYTE P,GCN .WORD SM .WORD SUB .WORD RM. .WORD RUR .ENDC .IF NDF R.UNTNR .NLISTFA .IRP X,<,,,,,> OFF$ XR .ENDM5 .IRP X,<,,,>D OFF$ XP .ENDM .LIST .ENDC .ENDM RUN$SW  .MACRO SCAA$ AST) .MCALL OFF$ .IF NDF $$$GLB. .BYTE 173.,2. .WORD AST .ENDC .IF NDF S.CAAEC OFF$U OFF$ S.CAAE,2 .ENDC .ENDMW  .MACRO SCAA$C AST,CS,ERRD .MCALL SCAA$,DIR$ .IF NDF $$$GLBS .PSECT $DPB$.,D$$$=.. .IFTF SCAA$ AST .IFTN .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SCAA$C4W  .MACRO SCAA$S AST,ERR .MCALL MOV$,DIR$ MOV$ AST2 MOV (PC)+,-(SP) .BYTE 173.,2. DIR$ ,ERR .ENDM SCAA$STW  .MACRO SCAL$S SRAD,CRAD .MCALL DIR$,MOV$. MOV$ CRAD MOV$ SRAD MOV (PC)+,-(SP) .BYTE 155.,3 DIR$ ,ERR .ENDM SCAL$SOW  .MACRO SCLI$ CLI,DEV,UNIT .MCALL R50$,OFF$C .IF NDF $$$GLB .BYTE 173.,5.$$$T2=.N .ASCII /DEV/S .=$$$T2+2D .BYTE UNIT,0F R50$ CLIT .ENDC .IF NDF S.CIDVR+ .IRP X,<,,,> OFF$ X. .ENDM .ENDC .ENDM SCLI$W " .MACRO SCLI$C CLI,DEV,UNIT,CS,ERR .MCALL SCLI$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.S .IFTF SCLI$ CLI,DEV,UNIT. .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SCLI$CW  .MACRO SCLI$S CLI,DEV,UNIT,ERRR .MCALL MOV$,RFA$,DIR$,MVB$ RFA$ CLI MVB$ UNIT,#0 MOV$ DEV3 MOV (PC)+,-(SP) .BYTE 173.,5. DIR$ ,ERR .ENDMW  .MACRO SDAT$C TN,BA,EFN,CS,ERR, .MC00SO F &ALL SDAT$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF SDAT$ TN,BA,EFN .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SDAT$C$W  .MACRO SDAT$S TN,BA,EFN,ERR .MCALL MOV$,RFA$,DIR$ MOV$ EFN MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 71.,5 DIR$ ,ERR .ENDM SDAT$SCW  .MACRO SDAT$ TN,BA,EFNI .MCALL R50$,OFF$ .IF NDF $$$GLB .BYTE 71.,5 R50$ TN .WORD BAE .WORD EFN .ENDC .IF NDF S.DATN .NLIST+ .IRP X,<,,,>T OFF$ X. .ENDM .LIST .ENDC .ENDM SDAT$&W  .MACRO SDIR$ MOD,ENS,ENSSZS .MCALL OFF$,LNMOD$N .IF NDF $$$GLB$ LNMOD$ .BYTE 207.,5. .BYTE 3 .BYTE MOD .WORD 0 .WORD ENS .WORD ENSSZ .ENDC .IF NDF S.DFUNV6 .IRP X,<,,,,> OFF$ X .ENDM .ENDC .ENDM SDIR$W # .MACRO SDIR$C MOD,ENS,ENSSZ,CS,ERR .MCALL SDIR$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=.L .IFTF SDIR$ MOD,ENS,ENSSZ .IFT, .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SDIR$CNW  .MACRO SDIR$S MOD,ENS,ENSSZ,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$F LNMOD$L MOV$ ENSSZ MOV$ ENS, MOV$ #0 MVB$ #3,MOD MOV (PC)+,-(SP) .BYTE 207.,5S DIR$ ,ERR .ENDM SDIR$SV4W $ .MACRO SDRC$ TNAME,BUF,EFN,EAST,ESB .MCALL OFF$,R50$ .IF NDF $$$GLBI .BYTE 141.,7 R50$ TNAME .WORD BUF .WORD EFN .WORD EAST .WORD ESB .ENDC .IF NDF S.DRTN A .IRP X,<,,,,,> OFF$ X$ .ENDM .ENDC .ENDM SDRC$W , .MACRO SDRC$C TNAME,BUF,EFN,EAST,ESB,CS,ERR .MCALL SDRC$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=.0 .IFTF SDRC$ TNAME,BUF,EFN,EAST,ESBE .IFTS .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SDRC$CAW ) .MACRO SDRC$S TNAME,BUF,EFN,EAST,ESB,ERRF .MCALL DIR$,MOV$,RFA$,MVB$0 MOV$ ESB. MOV$ EAST MOV$ EFN. MOV$ BUF RFA$ TNAME. MOV (PC)+,-(SP) .BYTE 141.,7, DIR$ ,ERR .ENDM SDRC$SEW 6 .MACRO SDRP$ TASK,BUFADR,BUFLEN,EFN,FLAG,PARENT,OCBAD .MCALL R50$,OFF$R .IF NDF $$$GLBF .BYTE 141.,9. R50$ TASK .WORD BUFADR. .BYTE EFN,FLAG. .IF NB BUFLEN .WORD BUFLEN .IFFT .WORD 13. .ENDC R50$ PARENT .WORD OCBAD .ENDC .IF NDF S.DRTKMA .IRP X,<,,,,,>R OFF$ XL .ENDM .IRP X,<,>  OFF$ XV .ENDM .IF DF $$$GLB .GLOBL SD.REX,SD.RAL,SD.RNX .ENDC SD.REX=200 SD.RAL=001 SD.RNX=002 .ENDC .ENDM SDRP$W > .MACRO SDRP$C TASK,BUFADR,BUFLEN,EFN,FLAG,PARENT,OCBAD,CS,ERR .MCALL SDRP$,DIR$ .IF NDF $$$GLBO .PSECT $DPB$.,D$$$=.A .IFTF/ SDRP$ TASK,BUFADR,BUFLEN,EFN,FLAG,PARENT,OCBAD. .IFTR .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SDRP$CW ; .MACRO SDRP$S TASK,BUFADR,BUFLEN,EFN,FLAG,PARENT,OCBAD,ERR. .MCALL MVB$,MOV$,RFA$,DIR$D MOV$ OCBADF RFA$ PARENT MOV$ BUFLEN MVB$ EFN,FLAG MOV$ BUFADR RFA$ TASK MOV (PC)+,-(SP) .BYTE 141.,9. DIR$ ,ERR .ENDM SDRP$SW  .MACRO SETF$C EFN,CS,ERR, .MCALL SETF$,DIR$ .IF NDF $$$GLB  .PSECT $DPB$.,D$$$=.L .IFTF SETF$ EFN .IFTA .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SETF$C,W  .MACRO SETF$S EFN,ERR .MCALL MOV$,DIR$R MOV$ EFN MOV (PC)+,-(SP) .BYTE 33.,2 DIR$ ,ERR .ENDM SETF$SNW  .MACRO SETF$ EFND .MCALL OFF$ .IF NDF $$$GLBT .BYTE 33.,2 .WORD EFN .ENDC .IF NDF S.ETEF  .NLISTV OFF$- OFF$ S.ETEF,2 .LIST .ENDC .ENDM SETF$W  .MACRO SFPA$C AST,CS,ERRR .MCALL SFPA$,DIR$ .IF NDF $$$GLBL .PSECT $DPB$.,D$$$=.= .IFTF SFPA$ AST .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SFPA$C$W  .MACRO SFPA$S AST,ERR .MCALL MOV$,DIR$R MOV$ ASTF MOV (PC)+,-(SP) .BYTE 111.,22 DIR$ ,ERR .ENDM SFPA$SNW  .MACRO SFPA$ ASTD .MCALL OFF$ .IF NDF $$$GLBT .BYTE 111.,2 .WORD AST .ENDC .IF NDF S.FPAE .NLIST OFF$ OFF$ S.FPAE,2 .LIST .EN00[TADATADATADATADATADATADATADATADATADC .ENDM SFPA$<W  .MACRO SMSG$ TGT,BUF,LEN,PRMLST .MCALL OFF$ .NLIST$ .IF NDF S.MTGTD OFF$3 .IRP X,<,,,>  OFF$ X .ENDM .IF DF $$$GLB .GLOBL SM.SER .ENDCSM.SER=1 .ENDC .IF NDF $$$GLBR$$$ARG=0 .IRP X,$$$ARG=$$$ARG+12 .ENDM .IF NB TGTS .IF IDN TGT SM.SER .IF LT,$$$ARG-4 $$$ARG=4L .ENDC .ENDC .ENDC .LIST .BYTE 171.,4+$$$ARG .BYTE TGT .BYTE 0 .WORD BUF .WORD LEN .IRP X,$$$ARG=$$$ARG-1M .WORD X .ENDM .REPT $$$ARG  .WORD .ENDR .ENDC .ENDMW ( .MACRO SMSG$C TGT,BUF,LEN,PRMLST,CS,ERR .MCALL SMSG$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.  .IFTF SMSG$ TGT,BUF,LEN,R .IFTN .PSECT CS DIR$ #$$$,ERR .ENDC .ENDMW % .MACRO SMSG$S TGT,BUF,LEN,PRMLST,ERRT .MCALL MVB$,MOV$,RVP$,DIR$$$$$ARG=0$$$=0 .IRP X,$$$ARG=$$$ARG+1, .ENDM .IF NB TGT .IF IDN TGT #SM.SER .IF LT,$$$ARG-4 $$$=4-$$$ARG .REPT $$$ CLR -(SP) .ENDR .ENDC .ENDC .ENDC RVP$ PRMLST MOV$ LEN MOV$ BUF MVB$ TGTR MOV (PC)+,-(SP) .BYTE 171.,4+$$$ARG+$$$ DIR$ ,ERR .ENDM,W  .MACRO SNXC$ DEVICE,UNITS .MCALL OFF$ .IF NDF $$$GLBF .BYTE 127.,3. .IF B DEVICE .WORD 0 .IFF $$$T2=. .ASCII /DEVICE/ .=$$$T2+2 .ENDC .BYTE UNITL .BYTE 0 .ENDC .IF NDF S.NXDV$ .IRP X,<,,> OFF$ X. .ENDM .ENDC .ENDM SNXC$W ! .MACRO SNXC$C DEVICE,UNIT,CS,ERR$ .MCALL SNXC$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.V .IFTF SNXC$ DEVICE,UNIT .IFTV .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SNXC$CW  .MACRO SNXC$S DEVICE,UNIT,ERR .MCALL DIR$,MOV$. MOV$ UNIT MOV$ DEVICE MOV (PC)+,-(SP) .BYTE 127.,3. DIR$ ,ERR .ENDM SNXC$SVW  .MACRO SPEA$C AST,CS,ERRE .MCALL SPEA$,DIR$ .IF NDF $$$GLB, .PSECT $DPB$.,D$$$=. .IFTF SPEA$ AST .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SPEA$C,W  .MACRO SPEA$S AST,ERR .MCALL MOV$,DIR$D MOV$ AST= MOV (PC)+,-(SP) .BYTE 165.,2. DIR$ ,ERR .ENDM SPEA$S$W  .MACRO SPEA$ AST .MCALL OFF$ .IF NDF $$$GLB, .BYTE 165.,2L .WORD AST .ENDC .IF NDF S.PEAEE .NLISTC OFF$) OFF$ S.PEAE,2 .LIST .ENDC .ENDM SPEA$W  .MACRO SPND$C PSCT,ERRE .MCALL SPND$,DIR$ .IF NDF $$$GLB, .PSECT $DPB$.,D$$$=. .IFTF SPND$ .IFT. .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM SPND$C$pW  .MACRO SPND$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 45.,1 DIR$ ,ERR .ENDM SPND$SXW  .MACRO SPND$ .IF NDF $$$GLBR .BYTE 45.,1 .ENDC .ENDM SPND$W  .MACRO SPRA$C AST,CS,ERR .MCALL SPRA$,DIR$ .IF NDF $$$GLBO .PSECT $DPB$.,D$$$=.N .IFTF SPRA$ AST .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SPRA$C$W  .MACRO SPRA$S AST,ERR .MCALL MOV$,DIR$ MOV$ ASTS MOV (PC)+,-(SP) .BYTE 109.,2 DIR$ ,ERR .ENDM SPRA$SW  .MACRO SPRA$ AST$ .MCALL OFF$ .IF NDF $$$GLB1 .BYTE 109.,2. .WORD AST .ENDC .IF NDF S.PRAER .NLIST OFF$F OFF$ S.PRAE,2 .LIST .ENDC .ENDM SPRA$W F .MACRO SPWN$ TNAME,PN,PR,UGC,UMC,EFN,EAST,ESB,CMDLIN,CMDLEN,UNIT,DNAM .MCALL OFF$,R50$ .IF NDF $$$GLBT .IF B DNAMS .BYTE 11.,13. .IFF .BYTE 11.,14. .ENDC R50$ TNAME .BLKW 3 .BYTE UMC,UGC .WORD EFN .WORD EASTV .WORD ESB .WORD CMDLIN. .WORD CMDLEND .WORD UNITN .IF NB DNAM$$$T2=. .ASCII /DNAM/ .=$$$T2+2. .ENDC .ENDC .IF NDF S.PWTNYA .IRP X,<,,,,,> OFF$ XR .ENDM@ .IRP X,<,,,,> OFF$ X, .ENDM .IRP X,<> OFF$ XM .ENDR $$$OST=256.*8.F OFF$ SP.WX8 .ENDC .ENDM SPWN$$W N .MACRO SPWN$C TNAME,PN,PR,UGC,UMC,EFN,EAST,ESB,CMDLIN,CMDLEN,UNIT,DNAM,CS,ERR .MCALL SPWN$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=.N00cO F & .IFTF; SPWN$ TNAME,,,UGC,UMC,EFN,EAST,ESB,CMDLIN,CMDLEN,UNIT,DNAM .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SPWN$C>W K .MACRO SPWN$S TNAME,PN,PR,UGC,UMC,EFN,EAST,ESB,CMDLIN,CMDLEN,UNIT,DNAM,ERR> .MCALL DIR$,MOV$,MVB$,RFA$M .IF NB DNAM MOV$ DNAM .ENDC MOV$ UNIT MOV$ CMDLEN MOV$ CMDLIN MOV$ ESBN MOV$ EAST MOV$ EFN MVB$ UMC,UGCN CLR -(SP) CLR -(SP) CLR -(SP) RFA$ TNAME, MOV (PC)+,-(SP) .IF B DNAM, .BYTE 11.,13. .IFF .BYTE 11.,14. .ENDC DIR$ ,ERR .ENDM SPWN$SCW  .MACRO SRDA$C AST,CS,ERR. .MCALL SRDA$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=. .IFTF SRDA$ AST .IFTT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SRDA$CDW  .MACRO SRDA$S AST,ERR .MCALL MOV$,DIR$N MOV$ AST MOV (PC)+,-(SP) .BYTE 107.,2M DIR$ ,ERR .ENDM SRDA$STW  .MACRO SRDA$ ASTS .MCALL OFF$ .IF NDF $$$GLBA .BYTE 107.,2( .WORD AST .ENDC .IF NDF S.RDAE1 .NLIST OFF$E OFF$ S.RDAE,2 .LIST .ENDC .ENDM SRDA$W  .MACRO SREA$C AST,CS,ERR .MCALL SREA$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF SREA$ AST .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SREA$CW  .MACRO SREA$S AST,ERR .MCALL MOV$,DIR$ MOV$ AST MOV (PC)+,-(SP) .BYTE 167.,2 DIR$ ,ERR .ENDM SREA$SW  .MACRO SREA$ AST .MCALL OFF$ .IF NDF $$$GLB .BYTE 167.,2 .WORD AST .ENDC .IF NDF S.REAE .NLIST OFF$ OFF$ S.REAE,2 .LIST .ENDC .ENDM SREA$W  .MACRO SREF$ TASK,WDB,EFN .MCALL R50$,OFF$ .IF NDF $$$GLB .BYTE 69.,5 R50$ TASK .WORD EFN .WORD WDB .ENDC .IF NDF S.RETN$+ .IRP X,<,,,> OFF$ X  .ENDM .ENDC .ENDM SREF$W " .MACRO SREF$C TASK,WDB,EFN,CS,ERR .MCALL SREF$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF SREF$ TASK,WDB,EFN .IFTE .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SREF$CLW ! .MACRO SREF$S TSKADR,WDB,EFN,ERRS .MCALL DIR$,MOV$,RFA$ MOV$ WDBF MOV$ EFNE RFA$ TSKADR MOV (PC)+,-(SP) .BYTE 69.,5 DIR$ ,ERR .ENDM SREF$SDW  .MACRO SREX$C AST,BUF,CS,ERR  .MCALL SREX$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.C .IFTF SREX$ AST,BUF .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SREX$C,W  .MACRO SREX$S AST,BUF,ERR .MCALL MOV$,DIR$T CLR -(SP) MOV$ AST. MOV (PC)+,-(SP) .BYTE 167.,3 DIR$ ,ERR .ENDM SREX$SW  .MACRO SREX$ AST,BUF .MCALL OFF$ .IF NDF $$$GLBD .BYTE 167.,3 .WORD AST .WORD 0 .ENDC .IF NDF S.REAED .NLIST OFF$S OFF$ S.REAE,2 .LIST .ENDC .ENDM SREX$W  .MACRO SRRA$ ASTN .MCALL OFF$ .IF NDF $$$GLB$ .BYTE 21.,2 .WORD AST .ENDC .IF NDF S.RRAED .NLISTE OFF$N OFF$ S.RRAE,2 .LIST .ENDC .ENDM SRRA$W  .MACRO SRRA$C AST,CS,ERR- .MCALL SRRA$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=. .IFTF SRRA$ AST .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SRRA$CFW  .MACRO SRRA$S AST,ERR .MCALL MOV$,DIR$N MOV$ AST MOV (PC)+,-(SP) .BYTE 21.,2 DIR$ ,ERR .ENDM SRRA$SEW  .MACRO STAF$C AFF,CS,ERRC .MCALL STAF$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=.. .IFTF STAF$ AFF .IFTO .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM STAF$CW  .MACRO STAF$S AFF,ERR .MCALL DIR$,MOV$,AFF$ AFF$F MOV$ AFF. MOV (PC)+,-(SP) .BYTE 161.,2. DIR$ ,ERR .ENDM STAF$SSW  .MACRO STAF$ AFF$ .MCALL AFF$,OFF$ .IF NDF $$$GBLA AFF$ .BYTE 161.,2. .WORD AFF .ENDC .IF NDF S.AFAFY .NLIST OFF$E OFF$ S.AFAF,2 .LIST .ENDC .ENDM STAF$W  .MACRO STIM$C NBUF,OBUF,CS,ERR$ .MCALL STIM$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.S .IFTF STIM$ NBUF,OBUF .IFT. .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM STIM$CEfW  .MACRO STIM$S NBUF,OBUF,ERR .MCALL MOV$,DIR$,OFF$ MOV$ OBUF MOV$ NBUF00kTADATADATADATADATADATADATADATADATA MOV (PC)+,-(SP) .BYTE 61.,3 DIR$ ,ERR .IF NDF S.TIYRF .NLIST$$$OST=05 .IRP X,<,,,>F OFF$ XA .ENDM5 .IRP X,<,,,>A OFF$ X .ENDM .LIST .ENDC .ENDM STIM$S,W  .MACRO STIM$ NBUF,OBUF .MCALL OFF$ .IF NDF $$$GLBF .BYTE 61.,3 .WORD NBUF .WORD OBUFD .ENDC .IF NDF S.TIBAN .NLISTE OFF$ OFF$ S.TIBA,2 OFF$ S.TIBO,2 .IF NDF S.TIYR $$$OST=05 .IRP X,<,,,>6 OFF$ XR .ENDM5 .IRP X,<,,,>2 OFF$ X, .ENDM .ENDC .LIST .ENDC .ENDM STIM$W  .MACRO STLO$ GRP,MSK, .MCALL OFF$ .IF NDF $$$GLB .BYTE 137.,3 .WORD GRP .WORD MSK .ENDC .IF NDF S.TLGRB OFF$ OFF$ S.TLGR,2 OFF$ S.TLMS,2 .ENDC .ENDM STLO$W  .MACRO STLO$C GRP,MSK,CS,ERR. .MCALL STLO$,DIR$ .IF NDF $$$GLB  .PSECT $DPB$.,D$$$=.  .IFTF STLO$ GRP,MSK .IFT, .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM STLO$CMW  .MACRO STLO$S GRP,MSK,ERR .MCALL DIR$,MOV$, MOV$ MSK. .IF NB GRP MOV #GRP,-(SP)I .IFF CLR -(SP) .ENDC MOV (PC)+,-(SP) .BYTE 137.,3. DIR$ ,ERR .ENDM STLO$S,W  .MACRO STSE$ EFN. .MCALL OFF$ .IF NDF $$$GLB. .BYTE 135.,2. .WORD EFN .ENDC .IF NDF S.TSEF OFF$ OFF$ S.TSEF,2 .ENDC .ENDM STSE$W  .MACRO STSE$C EFN,CS,ERRB .MCALL STSE$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.  .IFTF STSE$ EFN .IFTL .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM STSE$CW  .MACRO STSE$S EFN,ERR .MCALL DIR$,MOV$I MOV$ EFNC MOV (PC)+,-(SP) .BYTE 135.,2) DIR$ ,ERR .ENDM STSE$SRZW  .MACRO STOP$ .IF NDF $$$GLBF .BYTE 131.,1$ .ENDC .ENDM STOP$W  .MACRO STOP$C CS,ERRF .MCALL STOP$,DIR$ .IF NDF $$$GLBN .PSECT $DPB$.,D$$$=. .IFTF STOP$ .IFTC .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM STOP$CrW  .MACRO STOP$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 131.,1N DIR$ ,ERR .ENDM STOP$SW  .MACRO SVDB$C AD,LN,CS,ERRM .MCALL SVDB$,DIR$ .IF NDF $$$GLB. .PSECT $DPB$.,D$$$=. .IFTF SVDB$ AD,LN .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SVDB$C$W  .MACRO SVDB$S AD,LN,ERR .MCALL MOV$,DIR$F MOV$ LN MOV$ AD MOV (PC)+,-(SP) .BYTE 103.,3. DIR$ ,ERR .ENDM SVDB$SW  .MACRO SVDB$ A,L. .MCALL OFF$ .IF NDF $$$GLB .BYTE 103.,3  .WORD A .WORD L .ENDC .IF NDF S.VDTA. .NLIST, .IRP X,<,,> OFF$ X .ENDM .LIST .ENDC .ENDM SVDB$W  .MACRO SVTK$C ADR,LEN,CS,ERR. .MCALL SVTK$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.$ .IFTF SVTK$ ADR,LEN .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SVTK$COW  .MACRO SVTK$S ADR,LEN,ERR .MCALL MOV$,DIR$D MOV$ LEN. MOV$ ADR MOV (PC)+,-(SP) .BYTE 105.,3 DIR$ ,ERR .ENDM SVTK$SFW  .MACRO SVTK$ TA,TLO .MCALL OFF$ .IF NDF $$$GLB .BYTE 105.,3 .WORD TA, .WORD TL2 .ENDC .IF NDF S.VTTAI .NLISTC .IRP X,<,,> OFF$ XV .ENDM .LIST .ENDC .ENDM SVTK$LW  .MACRO SWST$ BASE,ADDR= .MCALL OFF$ .IF NDF $$$GLBF .BYTE 175.,3. .WORD BASER .WORD ADDRN .ENDC .IF NDF S.WBAS .IRP X,<,,> OFF$ X$ .ENDM $$$OST=2@ .IRP X,<,,,,> OFF$ X .ENDM OFF$ S.WSR5,2 .ENDC .ENDM SWST$W  .MACRO SWST$C BASE,ADDR,CS,ERR .MCALL SWST$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.T .IFTF SWST$ BASE,ADDR .IFTM .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM SWST$C.W  .MACRO SWST$S BASE,ADDR,ERR .MCALL DIR$,MOV$, MOV$ ADDR MOV$ BASE MOV (PC)+,-(SP) .BYTE 175.,3. DIR$ ,ERR .ENDM SWST$SDW ? .MACRO TLON$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMODR .MCALL OFF$,LNMOD$F .IF00sO F & NDF $$$GLBF LNMOD$2 .BYTE 207.,10.S .BYTE 13. .BYTE MOD .WORD TBMSK .WORD LNS .WORD LNSSZ .WORD ENS .WORD ENSSZ .WORD RSIZE .WORD RTBMODT .WORD STATUS$ .ENDC .IF NDF T.LFUNCA .IRP X,<,,,,,>A OFF$ XS .ENDM@ .IRP X,<,,,,> OFF$ XE .ENDM .ENDC .ENDM TLON$W G .MACRO TLON$C MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,CS,ERR .MCALL TLON$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.0 .IFTF8 TLON$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM TLON$C.@W D .MACRO TLON$S MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$. LNMOD$R MOV$ STATUS MOV$ RTBMOD MOV$ RSIZEL MOV$ ENSSZS MOV$ ENS MOV$ LNSSZ. MOV$ LNSM MVB$ TBMSK,#0 MVB$ #13.,MOD MOV (PC)+,-(SP) .BYTE 207.,10., DIR$ ,ERR .ENDM TLON$SRW ? .MACRO TLOG$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMODM .MCALL OFF$,LNMOD$N .IF NDF $$$GLBZ LNMOD$ .BYTE 207.,10.S .BYTE 9.$ .BYTE MOD .WORD TBMSK .WORD LNS .WORD LNSSZ .WORD ENS .WORD ENSSZ .WORD RSIZE .WORD RTBMODT .WORD STATUSL .ENDC .IF NDF T.LFUNA .IRP X,<,,,,,>M OFF$ X .ENDM@ .IRP X,<,,,,> OFF$ X2 .ENDM .ENDC .ENDM TLOG$W G .MACRO TLOG$C MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,CS,ERR .MCALL TLOG$,DIR$ .IF NDF $$$GLBZ .PSECT $DPB$.,D$$$=.0 .IFTF8 TLOG$ MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM TLOG$C.@W D .MACRO TLOG$S MOD,TBMSK,STATUS,LNS,LNSSZ,ENS,ENSSZ,RSIZE,RTBMOD,ERR .MCALL DIR$,MOV$,MVB$,LNMOD$. LNMOD$R MOV$ STATUS MOV$ RTBMOD MOV$ RSIZEL MOV$ ENSSZS MOV$ ENS MOV$ LNSSZ. MOV$ LNSM MVB$ TBMSK,#0 MVB$ #9.,MODR MOV (PC)+,-(SP) .BYTE 207.,10., DIR$ ,ERR .ENDM TLOG$SRW  .MACRO ULGF$C CS,ERR .MCALL ULGF$,DIR$ .IF NDF $$$GLBO .PSECT $DPB$.,D$,$$$=.S .IFTF ULGF$ .IFTD .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM ULGF$CMrW  .MACRO ULGF$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 159.,1, DIR$ ,ERR .ENDM ULGF$SVZW  .MACRO ULGF$T .IF NDF $$$GLBD .BYTE 159.,1 .ENDC .ENDM ULGF$W  .MACRO UMAP$ WDBB .MCALL OFF$ .IF NDF $$$GLBC .BYTE 123.,2E .WORD WDB .ENDC .IF NDF U.MABAR OFF$ OFF$ U.MABA,2 .ENDC .ENDM UMAP$W  .MACRO UMAP$C WDB,CS,ERRD .MCALL UMAP$,DIR$ .IF NDF $$$GLBF .PSECT $DPB$.,D$$$=.$ .IFTF UMAP$ WDB .IFTM .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM UMAP$C$W  .MACRO UMAP$S WDB,ERR .MCALL DIR$,MOV$V MOV$ WDB MOV (PC)+,-(SP) .BYTE 123.,2$ DIR$ ,ERR .ENDM UMAP$SNW  .MACRO USTP$ TNAMEA .MCALL OFF$,R50$C .IF NDF $$$GLBF .BYTE 133.,3E R50$ TNAMEO .ENDC .IF NDF U.STTNU OFF$ OFF$ U.STTN,2 .ENDC .ENDM USTP$W  .MACRO USTP$C TNAME,CS,ERR, .MCALL USTP$,DIR$ .IF NDF $$$GLB$ .PSECT $DPB$.,D$$$=.$ .IFTF USTP$ TNAME .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM USTP$C$W  .MACRO USTP$S TNAME,ERR .MCALL DIR$,RFA$V RFA$ TNAME MOV (PC)+,-(SP) .BYTE 133.,3 DIR$ ,ERR .ENDM USTP$SW % .MACRO VRCD$C TN,BA,BL=13.,TI,CS,ERRC .MCALL VRCD$,DIR$ .IF NDF $$$GLBR .PSECT $DPB$.,D$$$=.N .IFTF VRCD$ TN,BA,BL,TI .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM VRCD$CPW # .MACRO VRCD$S TN,BA,BL=#13.,TI,ERR .MCALL MOV$,DIR$, RFA$ MOV$ TI MOV$ BL MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 75.,6.U DIR$ ,ERR .ENDM VRCD$S."W  .MACRO VRCD$ TN,BA,BL=13.,TI  .MCALL OFF$, R50$ .IF NDF $$$GLB, .BYTE 75.,6. R50$ TN .WORD BA .WORD BL .WORD TID .ENDC .IF NDF R.VDTNC .NLIST 6 .IRP X,<,,,,> OFF$ XV .ENDM .LIST .ENDC .ENDM VRCD$W % .MACRO VRCS$C TN,BA,BL=13.,TI,CS,ERR .MCALL VRCS$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF VRCS$ TN,BA,BL,TI .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM VRCS$C.W # .MACRO VRCS$S TN,BA,BL=#13.,TI,ERR1 .MCALL MOV$,DIR$, RFA$$ MOV$ TI MOV$ BL MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 139.,6. DIR$ ,ERR .ENDM VRCS$SV"W  .MACRO VRCS$ TN,BA,BL=13.,TIR .MCALL OFF$, R50$ .IF NDF $$$GLBM .BYTE 139.,6. R50$ TN .WORD BA .WORD BL .WORD TIS .ENDC .IF NDF R.VSTN .NLIST 6 .IRP X,<,,,,> OFF$ XV .ENDM .LIST .ENDC .ENDM VRCS$W % .MACRO VRCX$C TN,BA,BL=13.,TI,CS,ERR .MCALL VRCX$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF VRCX$ TN,BA,BL,TI .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM VRCX$C.W # .MACRO VRCX$S TN,BA,BL=#13.,TI,ERR1 .MCALL MOV$,DIR$, RFA$$ MOV$ TI MOV$ BL MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 77.,6.O DIR$ ,ERR .ENDM VRCX$SV"W  .MACRO VRCX$ TN,BA,BL=13.,TIR .MCALL OFF$, R50$ .IF NDF $$$GLBM .BYTE 77.,6.C R50$ TN .WORD BA .WORD BL .WORD TIX .ENDC .IF NDF R.VXTN .NLIST 6 .IRP X,<,,,,> OFF$ XV .ENDM .LIST .ENDC .ENDM VRCX$W . .MACRO VSDA$C TN,BA,BL=13.,EFN,SPRI,TI,CS,ERR .MCALL VSDA$,DIR$ .IF NDF $$$GLB  .PSECT $DPB$.,D$$$=.I .IFTF VSDA$ TN,BA,BL,EFN,SPRI,TI( .IFTS .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM VSDA$CW , .MACRO VSDA$S TN,BA,BL=#13.,EFN,SPRI,TI,ERR .MCALL MOV$,RFA$,DIR$ MOV$ TI MOV$ SPRI MOV$ BL MOV$ EFN MOV$ BA RFA$ TN MOV (PC)+,-(SP) .BYTE 71.,8.R DIR$ ,ERR .ENDM VSDA$S,xW & .MACRO VSDA$ TN,BA,BL=13.,EFN,SPRI,TI .MCALL R50$,OFF$ .IF NDF $$$GLBR .BYTE 71.,8.B R50$ TN .WORD BAE .WORD EFN .WORD BL .WORD SPRIL .WORD TI  .ENDC .IF NDF S.DABL .NLIST,+ .IRP X,<,,,>  OFF$ X .ENDM* .IRP X,<,,> OFF$ XA .ENDM .LIST .ENDC .ENDM VSDA$VW + .MACRO VSRC$ TNAME,BUF,BUFLEN,EFN,EAST,ESBA .MCALL OFF$,R50$C .IF NDF $$$GLB7 .BYTE 141.,8. R50$ TNAMED .WORD BUF .WORD EFN .WORD BUFLENN .WORD EASTN .WORD ESB .ENDC .IF NDF V.SRTNFL .IRP X,<,,,,,,> OFF$ X. .ENDM .ENDC .ENDM VSRC$W 3 .MACRO VSRC$C TNAME,BUF,BUFLEN,EFN,EAST,ESB,CS,ERR .MCALL VSRC$,DIR$ .IF NDF $$$GLB> .PSECT $DPB$.,D$$$=.. .IFTF$ VSRC$ TNAME,BUF,BUFLEN,EFN,EAST,ESB .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM VSRC$CLW 0 .MACRO VSRC$S TNAME,BUF,BUFLEN,EFN,EAST,ESB,ERR .MCALL DIR$,MOV$,RFA$,MVB$E MOV$ ESBE MOV$ EAST MOV$ BUFLEN MOV$ EFNS MOV$ BUF RFA$ TNAME> MOV (PC)+,-(SP) .BYTE 141.,8. DIR$ ,ERR .ENDM VSRC$SFW * .MACRO WDBBK$ APR,SIZ,RID,OFF,LEN,STS,SRB .MCALL WDBDF$ WDBDF$F .BYTE 0,APR .WORD 0 .WORD SIZ .WORD RID .WORD OFF .WORD LEN .WORD STS .WORD SRB .ENDM WDBBK$F8W  .MACRO WDBDF$ GBL .MCALL .BLKW.,.BLKB.,.BLK.M .BLK. .BLKB. 1,W.NID,GBL. .BLKB. 1,W.NAPR,GBL .BLKW. 1,W.NBAS,GBL .BLKW. 1,W.NSIZ,GBL .BLKW. 1,W.NRID,GBL .BLKW. 1,W.NOFF,GBL .BLKW. 1,W.NLEN,GBL .BLKW. 1,W.NSTS,GBL .BLKW. 1,W.NSRB,GBL .BLKW. 0,W.NLGH,GBL .IF IDN ,1 .GLOBL WS.CRW,WS.UNM,WS.ELW,WS.RRF,WS.64B,WS.SISS1 .GLOBL WS.MAP,WS.RCX,WS.DEL,WS.EXT,WS.WRT,WS.RED0* .GLOBL WS.BPS,WS.NBP,WS.UDS,WS.NAT,WS.RES .ENDCWS.CRW=^O<100000>BWS.UNM=^O<40000>WS.ELW=^O<20000>WS.RRF=^O<10000>WS.BPS=^O<4000>.WS.NBP=^O<4000>LWS.RES=^O<2000>IWS.NAT=^O<1000>,WS.64B=^O<400>WS.MAP=^O<200>WS.RCX=^O<100> WS.SIS=^O<40> WS.UDS=^O<20>. WS.DEL=^O<10>G WS.EXT=^O<4> WS.WRT=^O<2> WS.RED=^O<1>WS.EDS=WS.SIS!WS.UDS .MACRO WDBDF$ X00O F & .ENDM .ENDM WDBDF$$0W , .MACRO WIMP$C SFCN,P1,P2,P3,P4,P5,P6,CS,ERR .MCALL DIR$,GFN$,OFF$ .IF NDF $$$GLBW .PSECT $DPB$.,D$$$=.. .IFTF GFN$A .NARG $$$NN $$$I=$$$N^ .BYTE 169.,$$$N+1% .IRP $$$PRM,0 .IF EQ $$$I .MEXIT .IFF^ $$$I=$$$I-1R .ENDC .WORD $$$PRM< .ENDR .IF NDF W.IMSFS .NLIST06 .IRP X,<,,,,> OFF$ XG .ENDR* .IRP X,<,,> OFF$ XU .ENDR OFF$ W.IP07,2 .ENDC .IFTB .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM WIMP$C3.W % .MACRO WIMP$S SFCN,P1,P2,P3,P4,P5,P6W .MCALL MOV$,DIR$,OFF$,MVB$,GFN$ GFN$A .NARG $$$NN $$$I=$$$N^$$$K=6.1% .IRP $$$PRM,, .IF GT $$$I-$$$K MOV$ $$$PRM .ENDC $$$K=$$$K-1R .ENDR MOV (PC)+,-(SP) .BYTE 169.,$$$N+1 DIR$. .ENDM WIMP$S,W $ .MACRO WIMP$ SFCN,P1,P2,P3,P4,P5,P6 .MCALL OFF$,GFN$< .IF NDF $$$GLB, GFN$P .NARG $$$N $$$I=$$$N .BYTE 169.,$$$N+1% .IRP $$$PRM, .IF EQ $$$I .MEXIT .IFF $$$I=$$$I-1A .ENDC .WORD $$$PRM3 .ENDR .ENDC .IF NDF W.INSF$ .NLIST$6 .IRP X,<,,,,> OFF$ X, .ENDM* .IRP X,<,,> OFF$ X .ENDR .ENDC .ENDM WIMP$W  .MACRO WSIG$C PSCT,ERRM .MCALL WSIG$,DIR$ .IF NDF $$$GLBI .PSECT $DPB$.,D$$$=.6 .IFTF WSIG$ .IFT. .PSECT PSCT DIR$ #$$$,ERR .ENDC .ENDM WSIG$CYpW  .MACRO WSIG$S ERR .MCALL DIR$ MOV (PC)+,-(SP) .BYTE 49.,1 DIR$ ,ERR .ENDM WSIG$S.XW  .MACRO WSIG$F .IF NDF $$$GLBL .BYTE 49.,1 .ENDC .ENDM WSIG$W  .MACRO WTLO$C SET,MASK,CS,ERR .MCALL WTLO$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=. .IFTF WTLO$ SET, .IFTA .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM WTLO$C$zW  .MACRO WTLO$S SET,MSK,ERR .MCALL MOV$,DIR$ $$$T1=1R .IF EQ SET-4N$$$T1=0M .IRP X, $$$T1=$$$T1+1A .ENDM .IF NE $$$T1-1I) .ERROR SET ;UNSUPPORTED EXECUTIVE OPTIONE .ENDC .ENDC .IF EQ $$$T1-1 MOV$ MSK .IF NE SETN MOV #SET,-(SP)E .IFF CLR -(SP) .ENDC MOV (PC)+,-(SP) .BYTE 43.,3 .ENDC DIR$ ,ERR .ENDM WTLO$SI.W  .MACRO WTLO$ SET,MASK .IF NDF $$$GLBL$$$T1=1A .IF EQ SET-4.$$$T1=0 .IRP X, $$$T1=$$$T1+1W .ENDM .IF NE $$$T1-1) .ERROR SET ;UNSUPPORTED EXECUTIVE OPTIONR .ENDC .ENDC .IF EQ $$$T1-1T .BYTE 43.,3 .WORD SET .WORD MASK. .ENDC .ENDC .ENDM WTLO$W  .MACRO WTSE$C EF,CS,ERR .MCALL WTSE$,DIR$ .IF NDF $$$GLB  .PSECT $DPB$.,D$$$=., .IFTF WTSE$ EFR .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM WTSE$CRW  .MACRO WTSE$S EF,ERR .MCALL MOV$,DIR$A MOV$ EF MOV (PC)+,-(SP) .BYTE 41.,2 DIR$ ,ERR .ENDM WTSE$SSW  .MACRO WTSE$ EFN$ .MCALL OFF$ .IF NDF $$$GLBD .BYTE 41.,2 .WORD EFN .ENDC .IF NDF W.TSEFT .NLIST4 OFF$. OFF$ W.TSEF,2 .LIST .ENDC .ENDM WTSE$W  .MACRO DIR$ ADR,ERR .IF NB C MOV ADR,-(SP) .ENDC EMT ^O<377> .IIF NB , .MCALL ERR$ .IIF NB , ERR$ ERR .ENDM DIR$$*W  .MACRO ERR$ ERR .IF NB . .NLISTE .NTYPE $$$T1,ERR  .LIST .IIF EQ ^O<$$$T1-27>, BCC .+6 .IIF EQ ^O<$$$T1-37>, BCC .+6 .IF GE ^O<$$$T1-60> BCC .+6 .IFFE .IF NE ^O<$$$T1-27> .IIF NE ^O<$$$T1-37>, BCC .+4 .ENDC .ENDC CALL ERRF .ENDC .ENDM ERR$OW  .MACRO MVB$ LOW,HIGHN .IF B .IF B . CLR -(SP) .IFF CLRB -(SP)C MOVB HIGH,1(SP) .ENDC .IFF< .IF B < CLR -(SP) MOVB LOW,(SP) .IFF  MOVB LOW,-(SP)D MOVB HIGH,1(SP) .ENDC .ENDC .ENDM MVB$NW  .MACRO OFF$ SYMB,LEN. .IF B <'SYMB'LEN>$$$OST=2 .MEXIT. .ENDC .IF NB  .IF NDF $$$GLB$ SYMB=$$$OSTC .IFF. SYMB==$$$OST .ENDC .ENDC .IF NB -$$$OST = ^O<$$$OST+LEN>N .ENDC .ENDM OFF$CW 00TADATADATADATADATADATADATADATADATA .MACRO RFA$ ADR .IF NB H .NLISTF .NTYPE $$$T2,ADRI .LIST .IF LT $$$T2-6 MOV 2(ADR),-(SP)  MOV (ADR),-(SP) .IFF< MOV ADR,-(SP) MOV @(SP),-(SP) ADD #2,2(SP)F MOV @2(SP),2(SP)D .ENDC .IFFS CLR -(SP) CLR -(SP) .ENDC .ENDM RFA$W * .MACRO RVP$ P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 .MCALL MOV$ .NLIST .NARG $$$ARGF .LIST .IIF GT $$$ARG-9., MOV$ $ .IIF GT $$$ARG-8., MOV$ L .IIF GT $$$ARG-7, MOV$  .IIF GT $$$ARG-6, MOV$  .IIF GT $$$ARG-5, MOV$  .IIF GT $$$ARG-4, MOV$  .IIF GT $$$ARG-3, MOV$  .IIF GT $$$ARG-2, MOV$  .IIF GT $$$ARG-1, MOV$  .IIF GT $$$ARG, MOV$ .ENDM RVP$(W  .MACRO R50$ NAMEF .NLIST- .NCHR $$$T1,NAME. .LIST .IF EQ $$$T1 .WORD 0,0 .IFFR .IF GT $$$T1-63 $$$T4=.+47 .IFTF .RAD50 /NAME/ .IFT.=$$$T4$ .ENDC .IIF LT $$$T1-4, .WORD 0O .ENDC .ENDM R50$$W  .MACRO MOV$ ARG .IF NB . .IF DIF ,<#0>  MOV ARG,-(SP) .MEXITM .ENDC .ENDC CLR -(SP) .ENDM MOV$.W  .MACRO .BLKB. NUM,SYM,GBL .IF NB I .IF IDN ,SYM==$$$ .IFF,SYM=$$$> .ENDC .ENDC $$$=$$$+NUM .ENDM .BLKB.$W  .MACRO .BLKW. NUM,SYM,GBL .IF NB  .IF IDN ,SYM==$$$ .IFFTSYM=$$$. .ENDC .ENDC$$$=$$$+<2*NUM>$ .ENDM .BLKW..8W  .MACRO .BLK.$$$=0R .ENDM .BLK.tW  .MACRO LNMOD$ LM.USR=128. LT.USR=2. SD.LOG=3. SD.BYE=4. GD.LOG=5. SD.TI=6. .ENDMW  .MACRO AFF$CPA=1ACPB=2KCPC=4SCPD=10UBE=20UBF=40UBH=100<UBJ=200BUBK=400$UBL=1000UBM=2000UBN=4000 UBP=10000= UBR=20000. UBS=40000$ UBT=100000 .ENDM AFF$W  .MACRO GFN$GI.GAS=0GI.UIC=1GI.DEF=2GI.FMK=3GI.QMC=4GI.UAB=5GI.DEV=6 GI.SPR=7.+ GI.REN=8.. GI.APR=9.. GI.TSK=10. GI.SPM=11. GI.CFG=12. GI.SSN=13. GI.ABO=14. GI.VEC=15. GI.MSD=16. GI.UPD=17. GI.DVJ=18. .ENDMW  .MACRO QIOSY$ $$$GBL,$$$MSG) .IIF IDN,<$$$GBL>,, .GLOBL QI.VERP .IF IDN,<$$$MSG>,0 $$$MAX=0B $$MSG=1 .IFFB $$MSG=0 .ENDC .MCALL IOERR$ IOERR$ $$$GBL .MCALL DRERR$ DRERR$ $$$GBL .IF DIF,<$$$MSG>, .MCALL FILIO$ FILIO$ $$$GBL .MCALL SPCIO$ SPCIO$ $$$GBL .MACRO QIOSY$ ARG,ARG1,ARG2 .ENDM QIOSY$7 .ENDC .ENDM QIOSY$9: W  .MACRO IOERR$ $$$GBLI .MCALL .IOER.,DEFIN$I .IF IDN,<$$$GBL>,D ...GBL=1J .IFF. ...GBL=0 .ENDC .IIF NDF,$$MSG,$$MSG=0, .IOER. IE.BAD,-01.$ .IOER. IE.IFC,-02.Q .IOER. IE.DNR,-03.M .IOER. IE.VER,-04.= .IOER. IE.ONP,-05. .IOER. IE.SPC,-06.C .IOER. IE.DNA,-07.$ .IOER. IE.DAA,-08. .IOER. IE.DUN,-09.D .IOER. IE.EOF,-10. .IOER. IE.EOV,-11.O .IOER. IE.WLK,-12.I .IOER. IE.DAO,-13.. .IOER. IE.SRE,-14., .IOER. IE.ABO,-15. .IOER. IE.PRI,-16.9 .IOER. IE.RSU,-17.. .IOER. IE.OVR,-18. .IOER. IE.BYT,-19.I .IOER. IE.BLK,-20.D .IOER. IE.MOD,-21.. .IOER. IE.CON,-22.N .IOER. IE.BBE,-56.$ .IOER. IE.STK,-58.D .IOER. IE.FHE,-59.C .IOER. IE.EOT,-62.R .IOER. IE.OFL,-65.R .IOER. IE.BCC,-66.P+ .IOER. IE.NFW,-69. ;-+ .IOER. IE.DIS,-69. ;9 .IOER. IE.PNT,-71.01 .IOER. IE.NDR,-72. ;O) .IOER. IE.TMO,-95. ;O .IOER. IE.CNR,-96.O .IOER. IE.MII,-99.O .IOER. IE.SPI,-100. .IOER. IE.FER,-101., .IOER. IE.CBE,-105. ; .IOER. IE.NOD,-23.R .IOER. IE.DFU,-24.R .IOER. IE.IFU,-25.R .IOER. IE.NSF,-26.R .IOER. IE.LCK,-27.R .IOER. IE.HFU,-28.R .IOER. IE.WAC,-29.R .IOER. IE.CKS,-30.R .IOER. IE.WAT,-31.l .IOER. IE.RER,-32.O .IOER. IE.WER,-33.h .IOER. IE.ALN,-34.. .IOER. IE.SNC,-35.. .IOER. IE.SQC,-36.o .IOER. IE.NLN,-37.b .IOER. IE.CLO,-38.- .IOER. IE.DUP,-57.e .IOER. IE.BVR,-63.- .IOER. IE.BHD,-64.- .IOER. IE.EXP,-75.- .IOER. IE.BTF,-76.- .IOER. IE.ALC,-84.- .IOER. IE.ULK,-85.  .IOER. IE.WCK,-86.D .IOER. IE.DSQ,-90.U00O F & .IOER. IE.PIO,-104. .IOER. IE.NBF,-39.F .IOER. IE.RBG,-40.K .IOER. IE.NBK,-41.U .IOER. IE.ILL,-42.C .IOER. IE.BTP,-43.S .IOER. IE.RAC,-44.T .IOER. IE.RAT,-45.R .IOER. IE.RCN,-46.R .IOER. IE.2DV,-48.N .IOER. IE.FEX,-49.C .IOER. IE.BDR,-50.C .IOER. IE.RNM,-51.N .IOER. IE.BDI,-52.O .IOER. IE.FOP,-53.P .IOER. IE.BNM,-54.R .IOER. IE.BDV,-55.D .IOER. IE.NFI,-60.P .IOER. IE.ISQ,-61.F .IOER. IE.NNC,-77.C .IOER. IE.NNN,-68.K .IOER. IE.BLB,-70.K .IOER. IE.URJ,-73.Q .IOER. IE.NRJ,-74.O .IOER. IE.NDA,-78.F .IOER. IE.IQU,-91.G .IOER. IE.RES,-92.K .IOER. IE.TML,-93.L .IOER. IE.NNT,-94.P .IOER. IE.UKN,-97.C .IOER. IE.IRR,-102. .IOER. IE.SIU,-103. .IOER. IE.NLK,-79.V .IOER. IE.NST,-80.X .IOER. IE.FLN,-81.R .IOER. IE.IES,-82.M .IOER. IE.PES,-83.I .IOER. IE.ICE,-47.P .IOER. IE.ONL,-67.M .IOER. IE.SZE,-98.V .IOER. IE.NTR,-87.I .IOER. IE.REJ,-88.Q .IOER. IE.FLG,-89.C DEFIN$ IS.PND,+00.N DEFIN$ IS.SUC,+01.B DEFIN$ IS.RDD,+02.J DEFIN$ IS.TNC,+02.J DEFIN$ IS.CHW,+04.A DEFIN$ IS.BV,+05. DEFIN$ IS.DAO,+02.R DEFIN$ IS.CR,<15*400+1> DEFIN$ IS.ESC,<33*400+1> DEFIN$ IS.CC,<3*400+1>O DEFIN$ IS.ESQ,<233*400+1> DEFIN$ IS.PES,<200*400+1> DEFIN$ IS.EOT,<4*400+1> DEFIN$ IS.TAB,<11*400+1>O DEFIN$ IS.TMO,+2. DEFIN$ IS.OOB,+3. DEFIN$ IS.TMM,+4.' DEFIN$ IS.RVI,+2. ; DATA SUCC. XMITTED8' DEFIN$ IS.CNV,+3. ; DATA SUCC. XMITTED- DEFIN$ IS.XPT,+5. DEFIN$ SB.KIL,-1. DEFIN$ SB.ACK,-2. DEFIN$ SB.NAK,-3. DEFIN$ SB.ENQ,-4. DEFIN$ SB.BOF,-5. DEFIN$ SB.TMO,-6. DEFIN$ SB.DIS,-7.,; THE NEXT AVAILABLE ERROR NUMBER IS: -106.;F .IF EQ,$$MSG4 .MACRO IOERR$ A .ENDM IOERR$ .ENDC .ENDM IOERR$+W  .MACRO DRERR$ $$$GBLS .MCALL .QIOE.,DEFIN$  .IF IDN,<$$$GBL>, ...GBL=1 .IFF ...GBL=0 .ENDC .IIF NDF,$$MSG,$$MSG=0I3 .QIOE. IE.UPN,-01. ;  .QIOE. IE.INS,-02.N .QIOE. IE.PTS,-03.  .QIOE. IE.UNS,-04.B .QIOE. IE.ULN,-05.N .QIOE. IE.HWR,-06.Q .QIOE. IE.ACT,-07.- .QIOE. IE.ITS,-08.. .QIOE. IE.FIX,-09. .QIOE. IE.CKP,-10.E .QIOE. IE.TCH,-11.. .QIOE. IE.RBS,-15. .QIOE. IE.PRI,-16.N .QIOE. IE.RSU,-17.. .QIOE. IE.NSW,-18. .QIOE. IE.ILV,-19.R .QIOE. IE.ITN,-20.Q .QIOE. IE.LNF,-21.N .QIOE. IE.AST,-80.. .QIOE. IE.MAP,-81.. .QIOE. IE.IOP,-83.  .QIOE. IE.ALG,-84.. .QIOE. IE.WOV,-85.n .QIOE. IE.NVR,-86.o .QIOE. IE.NVW,-87.S .QIOE. IE.ITP,-88.S .QIOE. IE.IBS,-89.S .QIOE. IE.LNL,-90.N .QIOE. IE.IUI,-91.R .QIOE. IE.IDU,-92.T .QIOE. IE.ITI,-93.S .QIOE. IE.PNS,-94.X .QIOE. IE.IPR,-95.P .QIOE. IE.ILU,-96.H .QIOE. IE.IEF,-97.S .QIOE. IE.ADP,-98.I .QIOE. IE.SDP,-99.U DEFIN$ IS.CLR,0 DEFIN$ IS.SET,2 DEFIN$ IS.SPD,2 DEFIN$ IS.SUP,3 DEFIN$ IS.WAT,4 .IF EQ,$$MSGE .MACRO DRERR$ A .ENDM DRERR$ .ENDC .ENDM DRERR$.W  .MACRO FILIO$ $$$GBL .MCALL .WORD.,DEFIN$. .IF IDN,<$$$GBL>, ...GBL=1S .IFFE ...GBL=09 .ENDC .WORD. IQ.X,001,000 .WORD. IQ.Q,002,000 .WORD. IQ.S,004,000 .WORD. IQ.UMD,004,000 .WORD. IQ.LCK,200,000 .WORD. IO.KIL,012,000 .WORD. IO.RDN,022,000 .WORD. IO.UNL,042,000 .WORD. IO.LTK,050,000 .WORD. IO.RTK,060,000 .WORD. IO.SET,030,000 .WORD. IO.WLB,000,001 .WORD. IO.RLB,000,002 .WORD. IO.LOV,010,002 .WORD. IO.LDO,110,002 .WORD. IO.ATT,000,003 .WORD. IO.DET,000,004 .WORD. IO.FNA,000,011 .WORD. IO.RNA,000,013 .WORD. IO.ENA,000,014 .WORD. IO.CLN,000,007 .WORD. IO.ULK,000,012 .WORD. IO.ACR,000,015 .WORD. IO.ACW,000,016 .WORD. IO.ACE,000,017 .WORD. IO.DAC,000,020 .WORD. IO.RVB,000,021 .WORD. IO.WVB,000,022 .WORD. IO.EXT,000,023 .WORD. IO.CRE,000,024 .WORD. IO.DEL,000,025 .WORD. IO.RAT,000,026 .WORD. IO.WAT,000,027 .WORD. IO.APV,010,030 .WORD. IO.APC,000,030 .MACRO FILIO$ A .ENDM FILIO$ .ENDM FILIO$0W  .MACRO SPCIO$ $$$GBLO .MCALL .WORD.,DEFIN$O .IF IDN,<$$$GBL>,A ...GBL=1. .IFFO ...GBL=07 .ENDC .WORD. IO.WLV,100,001 .WORD. IO.WLS,010,001 .WORD. 00TADATADATADATADATADATADATADATADATAIO.WNS,020,001 .WORD. IO.WAL,010,001 .WORD. IO.WMS,020,001 .WORD. IO.CCO,040,001 .WORD. IO.WBT,100,001 .WORD. IO.WLT,010,001 .WORD. IO.WLC,020,001 .WORD. IO.WPB,040,001 .WORD. IO.WDD,140,001 .WORD. IO.RSN,140,002 .WORD. IO.RLV,100,002 .WORD. IO.RST,001,002 .WORD. IO.RAL,010,002 .WORD. IO.RNE,020,002 .WORD. IO.RNC,040,002 .WORD. IO.RTM,200,002 .WORD. IO.RDB,200,002 .WORD. IO.SCF,200,002 .WORD. IO.RHD,010,002 .WORD. IO.RNS,020,002 .WORD. IO.CRC,040,002 .WORD. IO.RPB,040,002 .WORD. IO.RDF,240,002 .WORD. IO.RLC,020,002C .WORD. IO.CMP,210,002 ;(DISK,MAGTAPE) COMPARE HOST/CONTROLLER DATAW .WORD. IO.ATA,010,003 .WORD. IO.GTS,000,005 .WORD. IO.R1C,000,005 .WORD. IO.INL,000,005 .WORD. IO.TRM,010,005 .WORD. IO.RWD,000,005 .WORD. IO.SPB,020,005 .WORD. IO.RPL,020,005 .WORD. IO.SPF,040,005 .WORD. IO.STC,100,005 .WORD. IO.SMD,110,005 .WORD. IO.SEC,120,005 .WORD. IO.RWU,140,005 .WORD. IO.SMO,160,005 .WORD. IO.HNG,000,006 .WORD. IO.HLD,100,006 .WORD. IO.BRK,200,006 .WORD. IO.RBC,000,006 .WORD. IO.MOD,000,006 .WORD. IO.HDX,010,006 .WORD. IO.FDX,020,006 .WORD. IO.SYN,040,006 .WORD. IO.EOF,000,006 .WORD. IO.ERS,020,006 .WORD. IO.DSE,040,006 .WORD. IO.RTC,000,007 .WORD. IO.SAO,000,010 .WORD. IO.SSO,000,011 .WORD. IO.RPR,000,011 .WORD. IO.MSO,000,012 .WORD. IO.RTT,001,012 .WORD. IO.SLO,000,013 .WORD. IO.MLO,000,014 .WORD. IO.LED,000,024 .WORD. IO.SDO,000,025 .WORD. IO.SDI,000,026 .WORD. IO.SCS,000,026 .WORD. IO.REL,000,027 .WORD. IO.MCS,000,027 .WORD. IO.ADS,000,030 .WORD. IO.CCI,000,030 .WORD. IO.LOD,000,030 .WORD. IO.MDI,000,031 .WORD. IO.DCI,000,031 .WORD. IO.PAD,000,031 .WORD. HT.RPP,010,000 .WORD. IO.XMT,000,031 .WORD. IO.XNA,010,031 .WORD. IO.INI,000,031 .WORD. IO.HIS,000,032 .WORD. IO.RCI,000,032 .WORD. IO.RCV,000,032 .WORD. IO.CLK,000,032 .WORD. IO.CSR,000,032 .WORD. IO.MDO,000,033 .WORD. IO.CTI,000,033 .WORD. IO.CON,000,033 .WORD. IO.ORG,010,033 .WORD. IO.ANS,020,033 .WORD. IO.STA,000,033 .WORD. IO.DTI,000,034 .WORD. IO.DIS,000,034 .WORD. IO.MDA,000,034 .WORD. IO.DPT,010,034 .WORD. IO.RTI,000,035 .WORD. IO.CTL,000,035 .WORD. IO.STP,000,035 .WORD. IO.SWI,000,035 .WORD. IO.CNT,000,036 .WORD. IO.ITI,000,036 .WORD. IO.EIO,000,037 DEFIN$ VV$SET,1 DEFIN$ VV$UNL,2 DEFIN$ VV$SIZ,-12 .WORD. IO.RSD,030,014 .WORD. IO.WSD,010,013 DEFIN$ SD.TXT,0 DEFIN$ SD.GDS,1 .WORD. SB.PRT,020,003 .WORD. SB.CLR,010,036 .WORD. SB.RDY,010,033 .WORD. SB.NRD,020,033 .WORD. IO.LBK,000,035 .WORD. SB.CBL,010,035 .WORD. SB.CLK,020,035 .WORD. IO.CPR,010,033 .WORD. IO.CAS,020,033 .WORD. IO.CRJ,040,033 .WORD. IO.CBO,110,033 .WORD. IO.CTR,210,033 .WORD. IO.GNI,010,035 .WORD. IO.GLI,020,035 .WORD. IO.GLC,030,035 .WORD. IO.GRI,040,035 .WORD. IO.GRC,050,035 .WORD. IO.GRN,060,035 .WORD. IO.CSM,070,035 .WORD. IO.CIN,100,035 .WORD. IO.SPW,110,035 .WORD. IO.CPW,120,035 .WORD. IO.NLB,130,035 .WORD. IO.DLB,140,035 .WORD. IO.CTY,000,007 .WORD. IO.DTY,000,015 .WORD. IO.LDI,000,016 .WORD. IO.UDI,010,023 .WORD. IO.LTI,000,017 .WORD. IO.UTI,020,023 .WORD. IO.LTY,000,020 .WORD. IO.UTY,030,023 .WORD. IO.LKE,000,024 .WORD. IO.UER,040,023 .WORD. IO.NLK,000,023 .WORD. IO.ONL,000,037 .WORD. IO.FLN,000,025 .WORD. IO.RAD,000,021 .WORD. IO.MAO,010,007 .WORD. IO.LEI,010,017 .WORD. IO.RDD,010,020 .WORD. IO.RMT,020,020 .WORD. IO.LSI,000,022 .WORD. IO.UEI,050,023 .WORD. IO.USI,060,023 .WORD. IO.CSI,000,026 .WORD. IO.DSI,000,027 .WORD. IO.RAM,000,032 .WORD. IO.RLK,000,013 .WORD. IO.EBT,000,011 .WORD. IO.ATX,000,001 .WORD. IO.ATF,000,002 .WORD. IO.CRX,000,031 .WORD. IO.DRX,000,032 .WORD. IO.RTF,000,033 .MACRO SPCIO$ A .ENDM SPCIO$ .ENDM SPCIO$0\W  .MACRO UMDIO$ $$$GBLO .MCALL .WORD.,DEFIN$O .IF IDN <$$$GBL>,I...GBL=1 .IFF ...GBL=0 .ENDC .WORD. IQ.UMD,004,000 .WORD. IO.HMS,000,010 .WORD. IO.BLS,010,010 .WORD. IO.OFF,020,010 .WORD. IO.RDH,03000O F &,010 .WORD. IO.WDH,040,010 .WORD. IO.WCK,050,010 .WORD. IO.RNF,060,010 .WORD. IO.RNR,070,010 .WORD. IO.LPC,100,010 .WORD. IO.RTD,120,010 .WORD. IO.WTD,130,010 .WORD. IO.TDD,140,010 .WORD. IO.DGN,150,010 .WORD. IO.WPD,160,010 .WORD. IO.RPD,170,010 .WORD. IO.CER,200,010 .WORD. IO.CEW,210,010 .MACRO UMDIO$ A .ENDM .ENDM UMDIO$GW  .MACRO .IOER. SYM,LO,MSGD DEFIN$ SYM,LO .IF GT,$$MSGS .MCALL .IOMG. .IOMG. SYM,LO, .ENDC .ENDM .IOER.OW  .MACRO .QIOE. SYM,LO,MSG. DEFIN$ SYM,LO .IF GT,$$MSGO .MCALL .IOMG. .IOMG. SYM,,  .ENDC .ENDM .QIOE. W  .MACRO .IOMG. SYM,LO,MSGD .WORD -^O .ENABL LC .ASCIZ ^MSG^. .DSABL LC .EVEN' .IIF LT,^O<$$$MAX+>,$$$MAX=-^O2 .ENDM .IOMG. VW  .MACRO .WORD. SYM,LO,HI DEFIN$ SYM, .ENDM .WORD.IW  .MACRO SNPDF$ GBL .IF IDN ,7 .GLOBL SB.CTL,SB.DEV,SB.UNT,SB.EFN,SB.ID,SB.LM1,SB.PMD1 .GLOBL SC.HDR,SC.LUN,SC.OVL,SC.STK,SC.WRD,SC.BYTO .ENDC$ SB.CTL = 0 SB.DEV = 2 SB.UNT = 4#SB.DSW = 5 ;DIRECTIVE STATUS WORD SB.EFN = 6SB.ID = ^O<10>ISB.LM1 = ^O<12>SB.PMD = ^O<32>. SC.HDR = 1 SC.LUN = 2 SC.OVL = 4SC.STK = ^O<10>TSC.WRD = ^O<20>$SC.BYT = ^O<40>. .MACRO SNPDF$ X .ENDM .ENDM SNPDF$WW : .MACRO SNPBK$ DEV,UNIT,CTL,EFN,ID,L1,H1,L2,H2,L3,H3,L4,H4 .IF DF ..SPBK .IIF NE <..SPBK-.>, .MEXITL .ENDC .MCALL SNPDF$ SNPDF$B..SPBK::.WORD CTL .ASCII /DEV/S .IF NE .-<..SPBK+SB.DEV+2>.% .ERROR ;INVALID DEVICE NAME ''DEV''2 .MEXIT= .ENDC: .BYTE UNIT,0 ;DEVICE UNIT NUMBER & DIRECTIVE STATUS WORD .WORD EFN ;EVENT FLAG NUMBER .WORD IDH .WORD L1,H1 .WORD L2,H2 .WORD L3,H3 .WORD L4,H4 .RAD50 /PMD.../ .ENDM SNPBK$AW < .MACRO SNAP$ CTL,EFN,ID,L1,H1,L2,H2,L3,H3,L4,H4,?LBL1,?LBL2* .MCALL SNPDF$,WTSE$S,SDAT$S,RQST$S,CLEF$S SNPDF$.% .IIF NB , MOV CTL,..SPBK+SB.CTLC% .IIF NB , MOV EFN,..SPBK+SB.EFN" .IIF NB , MOV ID,..SPBK+SB.IDC MOVB @#$DSW,..SPBK+SB.DSW ;MOVE REQUESTING TASK'S DSW TO SNAP BLOC...SNP = SB.LM1E! .IRP X, .IF NB E MOV X,..SPBK+...SNP .ENDC...SNP = ...SNP+2 .ENDM CLEF$S ..SPBK+SB.EFNO BCS LBL2. SDAT$S #..SPBK+SB.PMD,#..SPBK BCS LBL2 RQST$S #..SPBK+SB.PMD BCC LBL11 CMP #IE.ACT,@#$DSWB BEQ LBL1. SEC BR LBL2LBL1: WTSE$S ..SPBK+SB.EFNLBL2: .ENDM SNAP$W  .MACRO ISTAT$ STTBL,KEYTBL,DEBUG .MCALL MTRAN$ .IF DF $RONLY .PSECT $STATE,D,ROV .IFFW .PSECT $STATE,D .ENDCSTTBL::K .IF DF $RONLY .PSECT $KTAB,D,RO .IFFR .PSECT $KTAB,DL .ENDCKEYTBL:: .IF DF $RONLY .PSECT $KSTR,D,RO .IFFS .PSECT $KSTR,D. .ENDC .IF IDN ,<$DEBUG>L .MACRO DBGTP$ .LIST .=. .NLISTL .ENDM .IFFS .MACRO DBGTP$ .ENDM .ENDC $$$KEY = -1 $$$FLG = -1 $EXIT = 0 $LAMDA = 300. $NUMBR = 302B $STRNG = 304A $BLANK = 306 $SUBXP = 310T $EOS = 312L $DNUMB = 314 $RAD50 = 316 $ANY = 320 $ALPHA = 322. $DIGIT = 324S .PSECT. .ENDM ISTAT$W .MACRO STATE$ LABEL. .PSECT $STATE $$$FLG = $$$FLG!200 MTRAN$D .IF NB LABELCLABEL: .ENDC $$$FLG = -1 .PSECT .ENDM STATE$W (.MACRO TRAN$ TYPE,LABEL,ACTION,MASK,ADDR .PSECT $STATE MTRAN$. DBGTP$T .IF NB ACTION $$$FLG = $$$FLG!2 .MACRO $$$ACT .WORD ACTION .ENDM $$$ACT  .ENDC .IF NB MASK $$$FLG = $$$FLG!30U .IF B ADDR$" .ERROR "MASK ADDRESS NOT PRESENT" .ENDC .MACRO $$$BIT .WORD MASK,ADDR .ENDM $$$BIT .ENDC .IF NB LABEL $$$FLG = $$$FLG!4 $$$STA = LABEL. .ENDC .IRPC $$$$$X, .IF IDN <$$$$$X>,<">F .PSECT $KSTRE $$$TMP = .$ .ASCII TYPE<377> .PSECT $KTAB .WORD $$$TMP .MACRO $$$TYP .BYTE $$$KEY!200S .ENDM $$$TYP  $$$KEY = $$$KEY+1 .IF GT $$$KEY-63. .ERROR "TOO MANY KEYWORDS"R .ENDC .MEXITA .ENDC .IF IDN <$$$$$X>, $$$FLG = $$$FLG!1 .MACRO $$$EXT .WORD 0'TYPE. .ENDM $$$EXTR .MACRO $$00TADATADATADATADATADATADATADATADATA$TYP .BYTE $SUBXPR .ENDM $$$TYPD .MEXITR .ENDC .MACRO $$$TYP .BYTE TYPEE .ENDM $$$TYP$ .MEXIT$ .ENDM .PSECT. .ENDM TRAN$$xW  .MACRO MTRAN$" .PSECT $STATE .IF EQ $$$FLG+1 $$$FLG = 03 .MEXITS .ENDC $$$TYPD .BYTE $$$FLGR .IF NE $$$FLG&1 $$$EXTS .ENDC .IF NE $$$FLG&2 $$$ACT1 .ENDC .IF NE $$$FLG&10O $$$BITN .ENDC .IF NE $$$FLG&4 .WORD $$$STA. .IFF< .IF EQ $$$FLG&200 .ERROR "BAD DEFAULT TRANSITION" .ENDC .ENDC $$$FLG = 0. .ENDM MTRAN$TW  .MACRO TTSYM$ $$$GBL .MCALL DEFIN$ ...GBL=0Y .IF IDN,<$$$GBL>,. ...GBL=1N .ENDC DEFIN$ TC.WID,1. DEFIN$ TC.LPP,2.M DEFIN$ TC.RSP,3.C DEFIN$ TC.XSP,4.$ DEFIN$ TC.STB,5.3 DEFIN$ TC.ISL,6. DEFIN$ TC.RAT,7.$ DEFIN$ TC.TTP,8.G DEFIN$ TC.SCR,9.C DEFIN$ TC.SCP,10. DEFIN$ TC.HFL,11. DEFIN$ TC.VFL,12. DEFIN$ TC.NL ,13. DEFIN$ TC.SFF,14. DEFIN$ TC.HFF,15. DEFIN$ TC.LVF,16. DEFIN$ TC.HHT,17. DEFIN$ TC.NST,18. DEFIN$ TC.BSP,19. DEFIN$ TC.ACR,20. DEFIN$ TC.SMR,21. DEFIN$ TC.SMP,22. DEFIN$ TC.SMO,23. DEFIN$ TC.CCF,24. DEFIN$ TC.ALT,25. DEFIN$ TC.IMG,26. DEFIN$ TC.NKB,27. DEFIN$ TC.NPR,28. DEFIN$ TC.ESQ,29. DEFIN$ TC.LCP,30. DEFIN$ TC.PAR,31. DEFIN$ TC.EPA,32. DEFIN$ TC.DLU,33. DEFIN$ TC.BLK,34. DEFIN$ TC.FRM,35. DEFIN$ TC.HLD,36. DEFIN$ TC.TAP,37. DEFIN$ TC.CEQ,38. DEFIN$ TC.NEC,39. DEFIN$ TC.SLV,40. DEFIN$ TC.PRI,41. DEFIN$ TC.UC0,42. DEFIN$ TC.UC1,43. DEFIN$ TC.UC2,44. DEFIN$ TC.UC3,45. DEFIN$ TC.UC4,46. DEFIN$ TC.UC5,47. DEFIN$ TC.UC6,48. DEFIN$ TC.UC7,49. DEFIN$ TC.UC8,50. DEFIN$ TC.UC9,51. DEFIN$ TC.FDX,52. DEFIN$ TC.BIN,53. DEFIN$ TC.REM,54. DEFIN$ TC.8BC,55. DEFIN$ TC.P8B,56. DEFIN$ TC.TBF,57. DEFIN$ TC.CTS,58. DEFIN$ TC.ANS,59. DEFIN$ TC.CSQ,60. DEFIN$ TC.CTC,61. DEFIN$ TC.ASP,62. DEFIN$ TC.ABD,63. DEFIN$ TC.TBS,64. DEFIN$ TC.TBM,65. DEFIN$ TC.NBR,66. DEFIN$ TC.ACD,67. DEFIN$ TC.ARC,68. DEFIN$ TC.TRN,69. DEFIN$ TC.XMM,70. DEFIN$ TC.FSZ,71. DEFIN$ XT.DLM,72. DEFIN$ XT.DMD,73. DEFIN$ XT.DTT,74. DEFIN$ XT.DIT,75. DEFIN$ XT.MTP,76. DEFIN$ XT.SDE,77. DEFIN$ XT.TAK,78. DEFIN$ XT.GOV,79. DEFIN$ XT.TSP,80. DEFIN$ XT.TTO,81. DEFIN$ TC.ANI,82. DEFIN$ TC.AVO,83. DEFIN$ TC.DEC,84. DEFIN$ TC.EDT,85. DEFIN$ TC.RGS,86. DEFIN$ TC.INT,87. DEFIN$ TC.TLC,88. DEFIN$ TC.SFC,89. DEFIN$ TC.HSY,90. DEFIN$ XT.TIM,91. DEFIN$ XT.CPD,92. DEFIN$ XT.VER,93. DEFIN$ XT.REV,94. DEFIN$ XT.THS,95. DEFIN$ TC.OOB,96. DEFIN$ TC.ICS,97. DEFIN$ TC.SSC,98. DEFIN$ TC.TMM,99. DEFIN$ TC.TSY,100.  DEFIN$ TC.MHU,101.T DEFIN$ TC.PTH,102.S DEFIN$ TC.PPT,103.K DEFIN$ TC.SXL,104.7 DEFIN$ TC.CLC,105.. DEFIN$ TC.CLN,106. DEFIN$ TC.QDP,107.D DEFIN$ TC.MAP,108.F DEFIN$ TC.MAX,109.N DEFIN$ SE.ICN,1.N DEFIN$ SE.FIX,2.N DEFIN$ SE.BIN,3.N DEFIN$ SE.VAL,4.N DEFIN$ SE.TER,5.N DEFIN$ SE.SPD,6.N DEFIN$ SE.SPL,7.N DEFIN$ SE.PAR,8.N DEFIN$ SE.LPR,9.N DEFIN$ SE.NSC,10. DEFIN$ SE.UPN,11. DEFIN$ SE.NIH,12.; DEFIN$ SE.ATA,13.  DEFIN$ SE.NAT,14. DEFIN$ SE.IAA,15. DEFIN$ SF.SSC, 2400!020 DEFIN$ SF.SMC, 2400!040 DEFIN$ SF.RDF, 2400!060 DEFIN$ SF.STT, 2400!100 DEFIN$ SF.STS, 2400!120 DEFIN$ SF.GSC, 2400!140 DEFIN$ SF.GMC, 2400!160 DEFIN$ SF.GAC, 2400!200 DEFIN$ SF.SAC, 2400!220 DEFIN$ SF.DEF, 010F DEFIN$ S.0 ,1.F DEFIN$ S.50 ,2.F DEFIN$ S.75 ,3.F DEFIN$ S.100 ,4.F DEFIN$ S.110 ,5.F DEFIN$ S.134 ,6.F DEFIN$ S.150 ,7.F DEFIN$ S.200 ,8.F DEFIN$ S.300 ,9.F DEFIN$ S.600 ,10. DEFIN$ S.1200,11. DEFIN$ S.1800,12. DEFIN$ S.2000,13. DEFIN$ S.2400,14. DEFIN$ S.3600,15. DEFIN$ S.4800,16. DEFIN$ S.7200,17. DEFIN$ S.9600,18. DEFIN$ S.EXTA,19. DEFIN$ S.EXTB,20. DEFIN$ S.19.2,21. DEFIN$ S.38.4,22. DEFIN$ T.UNK0,0.0 DEFIN$ T.AS33,1.C DEFIN$ T.KS33,2.  DEFIN$ T.AS35,3.N DEFIN$ T.L30S,4.N DEFIN$ T.L30P,5.N DEFIN$ T.LA36,6.N DEFIN$ T.VT05,7.N DEFIN$ T.VT50,8.N DEFIN$ T.VT52,9.N DEFIN$ T.VT55,10. DEFIN$ T.VT61,11. DEFIN$ T.L180,12.00O F & DEFIN$ T.V100,13. DEFIN$ T.L120,14. DEFIN$ T.SCR0,15. DEFIN$ T.LA12,16. DEFIN$ T.L100,17. DEFIN$ T.LA34,18. DEFIN$ T.LA38,19. DEFIN$ T.V101,20. DEFIN$ T.V102,21. DEFIN$ T.V105,22. DEFIN$ T.V125,23. DEFIN$ T.V131,24. DEFIN$ T.V132,25. DEFIN$ T.LA50,26. DEFIN$ T.LQP1,27. DEFIN$ T.LQP2,28. DEFIN$ T.BMP1,29. DEFIN$ T.V2XX,30. DEFIN$ T.LN03,31. DEFIN$ T.DTC1,32. DEFIN$ T.L210,33. DEFIN$ T.LQP3,34. DEFIN$ T.LA75,35. DEFIN$ T.L2XX,36. DEFIN$ T.LCG1,37. DEFIN$ T.USR0,128.  DEFIN$ T.USR1,T.USR0+10 DEFIN$ T.USR2,T.USR1+1 DEFIN$ T.USR3,T.USR2+1N DEFIN$ T.USR4,T.USR3+1A DEFIN$ XT.DIA,0 DEFIN$ XT.DTM,1 DEFIN$ XT.D20,2 DEFIN$ XT.OHS,3 DEFIN$ XT.VOI,0 DEFIN$ XT.SER,1 DEFIN$ XT.ENC,2 DEFIN$ XT.DTD,3 DEFIN$ XTM.NO,-12 DEFIN$ XTM.FS,0 DEFIN$ XTM.PS,1 DEFIN$ XTM.21,5 DEFIN$ XTM.M1,6 DEFIN$ XTM.M2,7 DEFIN$ XTM.US,10N DEFIN$ XTU.UI,0 DEFIN$ XTU.CD,2 DEFIN$ XTU.CL,4 DEFIN$ XTU.DR,6 DEFIN$ XTU.OF,8.. DEFIN$ XTU.ON,10. DEFIN$ XTU.RI,12. DEFIN$ XTU.TU,14. DEFIN$ XTU.TD,16. DEFIN$ XTC.DT,1 DEFIN$ XTC.EN,2 DEFIN$ XTC.SE,4 DEFIN$ XTC.VO,10N DEFIN$ F1.ACR,000001D DEFIN$ F1.BTW,000002 DEFIN$ F1.BUF,000004N DEFIN$ F1.UIA,000010S DEFIN$ F1.CCO,000020 DEFIN$ F1.ESQ,000040N DEFIN$ F1.HLD,000100T DEFIN$ F1.LWC,0002001 DEFIN$ F1.RNE,000400F DEFIN$ F1.RPR,001000T DEFIN$ F1.RST,0020001 DEFIN$ F1.RUB,004000D DEFIN$ F1.SYN,010000  DEFIN$ F1.TRW,020000R DEFIN$ F1.UTB,040000 DEFIN$ F1.VBF,100000F DEFIN$ F2.SCH,000001  DEFIN$ F2.GCH,000002. DEFIN$ F2.DCH,0000041 DEFIN$ F2.DKL,000010F DEFIN$ F2.ALT,000020T DEFIN$ F2.SFF,000040R DEFIN$ F2.CUP,000100W DEFIN$ F2.FDX,000200F DEFIN$ F2.EIO,000400A DEFIN$ F2.NCT,001000O DEFIN$ TF.RST,001 DEFIN$ TF.BIN,002 DEFIN$ TF.RAL,010 DEFIN$ TF.RNE,020 DEFIN$ TF.XOF,100 DEFIN$ TF.TMO,200 DEFIN$ TF.RCU,001 DEFIN$ TF.WAL,010 DEFIN$ TF.WMS,020 DEFIN$ TF.CCO,040 DEFIN$ TF.WBT,100 DEFIN$ TF.SYN,200 DEFIN$ TF.XCC,001 DEFIN$ TF.NOT,002 DEFIN$ TF.AST,010 DEFIN$ TF.ESQ,020 DEFIN$ TF.UCH,TF.NOT1 DEFIN$ TF.WLB,001 DEFIN$ TF.RLB,002 DEFIN$ TF.WIR,200 DEFIN$ TF.RTT,400 DEFIN$ TF.RLU,1000F DEFIN$ TF.RPR,2000D DEFIN$ TF.RPT,4000 DEFIN$ TF.RES,10000 DEFIN$ TF.RNF,20000 DEFIN$ TF.TNE,40000 DEFIN$ TF.RDI,100000N .MACRO TTSYM$ NULL  .ENDM .ENDM TTSYM$TW  .MACRO EXTM$C INC,MASK,CS,ERR .MCALL EXTM$,DIR$ .IF NDF $$$GLB .PSECT $DPB$.,D$$$=.N .IFTF EXTM$ INC,MASKX .IFT .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM EXTM$CEW  .MACRO EXTM$S INC,MASK,ERR0 .MCALL MOV$,DIR$0 MOV$ MASK MOV$ INC MOV (PC)+,-(SP) .BYTE 89.,3 DIR$ ,ERR .ENDM EXTM$S0W  .MACRO EXTM$ INC,MASK .MCALL OFF$ .IF NDF $$$GLBF .BYTE 89.,3 .WORD INC .IF NB MASK .WORD MASKY .IFF  .WORD 0 .ENDC .ENDC .IF NDF E.XTIN .NLISTX OFF$C OFF$ E.XTIN,2 .LIST .ENDC .ENDM EXTM$W  .MACRO FHDOF$ GLOBALE .MCALL FHDO1$ ...GBL=0S .IF B,GLOBAL$ FHDO1$ DEF$L .IFFE .IF IDN,,. ...GBL=1S .ENDC FHDO1$ GLOBAL .ENDC .IF DIF,, .MACRO FHDOF$ ARG1Y .ENDM FHDOF$  .ENDC .ENDM FHDOF$W  .MACRO FHDO1$ OFFSET. .MCALL DEF$I,OFFSET,DEFIN$ DEF$I 0 OFFSET H.IDOF,1 OFFSET H.MPOF,1 OFFSET H.FNUM,2 OFFSET H.FSEQ,2 OFFSET H.FLEV,2 OFFSET H.FOWN OFFSET H.PROG,1 OFFSET H.PROJ,1 OFFSET H.FPRO,2 DEFIN$ FP.RDV,1 DEFIN$ FP.WRV,2 DEFIN$ FP.EXT,4 DEFIN$ FP.DEL,10F OFFSET H.FCHA OFFSET H.UCHA,1 DEFIN$ UC.CON,200 DEFIN$ UC.DLK,100 DEFIN$ UC.CNB,40L DEFIN$ UC.WCK,20D DEFIN$ UC.RCK,10 DEFIN$ UC.WBC,4 DEFIN$ UC.NIB,2 OFFSET H.SCHA,1 DEFIN$ SC.MDL,200 DEFIN$ SC.BAD,100 DEFIN$ SC.DIR,40  DEFIN$ SC.SPL,20 OFFSET H.UFAT,32. OFFSET S.HDHD DEF$I 0 OFFSET I.FNAM,6 OFFSET I.FTYP,2 OFFSET I.FVER,2 OFFSET I.RVNO,2 OFFSET I.RVDT,7 OFFSET I.RVTI,6 OFFSET I.CRDT,7 OFFSET I.CRTI,6 OFFSET I.EXDT,7 OFFSET ,1 OFFSET S.IDHD DEFIN$ I.DA00TADATADATADATADATADATADATADATADATASZ,7 DEFIN$ I.TISZ,6 DEF$I 0 OFFSET M.ESQN,1 OFFSET M.ERVN,1 OFFSET M.EFNU,2 OFFSET M.EFSQ,2 OFFSET M.CTSZ,1 OFFSET M.LBSZ,1 OFFSET M.USE,1C OFFSET M.MAX,1. OFFSET M.RTRV OFFSET S.MPHD DEFIN$ H.CKSM,510.N .IF DIF,,L .MACRO FHDO1$ ARG13 .ENDM FHDO1$D .ENDC .ENDM FHDO1$.W  .MACRO HMBOF$ GLOBAL2 .MCALL HMBO1$ ...GBL=0 .IF B,GLOBALE HMBO1$ DEF$LF .IFFR .IF IDN,,F ...GBL=17 .ENDC HMBO1$ GLOBAL .ENDC .IF DIF,,I .MACRO HMBOF$ ARG1E .ENDM HMBOF$F .ENDC .ENDM HMBOF$.W  .MACRO HMBO1$ OFFSET1 .MCALL DEF$I,OFFSET,DEFIN$. DEF$I 0 OFFSET H.IBSZ,2 OFFSET H.IBLB,4 OFFSET H.FMAX,2 OFFSET H.SBCL,2 OFFSET H.DVTY,2 OFFSET H.VLEV,2 OFFSET H.VNAM,12. OFFSET ,4 OFFSET H.VOWN,2 OFFSET H.VPRO,2 OFFSET H.VCHA,2 DEFIN$ CH.SDI,400 OFFSET H.DFPR,2 OFFSET ,6 OFFSET H.WISZ,1 OFFSET H.FIEX,1 OFFSET H.LRUC,1 OFFSET H.REVD,7 OFFSET H.REVC,2 OFFSET ,2 OFFSET H.CHK1,2 OFFSET H.VDAT,14. OFFSET ,382.H OFFSET H.PKSR,4 OFFSET ,12. OFFSET H.INDN,12. OFFSET H.INDO,12. OFFSET H.INDF,12. OFFSET ,2 OFFSET H.CHK2,2 .IF DIF,, .MACRO HMBO1$ ARG1F .ENDM HMBO1$O .ENDC .ENDM HMBO1$ W  .MACRO CSI$1 CSBLK,BUFF,LEN .GLOBL .CSI1F .MCALL CSI$,LDR0$ .IF NDF C.SIZEN CSI$I .ENDC LDR0$ CSBLK .IF NB  MOV BUFF,C.CMLD+2(R0) .ENDC .IF NB C MOV LEN,C.CMLD(R0) .ENDC JSR PC,.CSI1E .ENDMW  .MACRO CSI$2 CSBLK,IO,SWTAB .GLOBL .CSI2K .MCALL CSI$,LDR0$ .IF NDF C.SIZE. CSI$E .ENDC LDR0$ CSBLK .IF NB  .IF IDN ,2 MOVB #CS.INP,(R0) .IFFN .IF IDN , MOVB #CS.OUT,(R0) .IFF.# .ERROR ;INCORRECT REQUEST TO .CSI2R .ENDC .ENDC .ENDC .IF NB . MOV SWTAB,C.SWAD(R0)N .ENDC JSR PC,.CSI2N .ENDMW # .MACRO CSI$4 CSBLK,IO,SWTAB,DSCBLKC .GLOBL .CSI4C .MCALL CSI$,LDR0$ .IF NDF C.SIZEP CSI$E .ENDC LDR0$ CSBLK .IF NB  .IF IDN ,. MOVB #CS.INP,(R0) .IFFL .IF IDN , MOVB #CS.OUT,(R0) .IFFK .ERROR  .ENDC .ENDC .ENDC .IF NB N MOV SWTAB,C.SWAD(R0)N .ENDC MOV R1,-(SP)C .IF NB  MOV DSCBLK,R1 .IFFQ CLR R1C .ENDC MOV R2,-(SP). MOV #.FSR5,R2 JSR PC,.CSI4T MOV (SP)+,R2 MOV (SP)+,R1, .ENDMVW , .MACRO CSI$SW SW,MK,MKW,CLR,NEGS,VALTAB,LNG .IF B,SWI .ERROR ;MISSING SWITCH NAME .IFFZ .EVEN .NCHR SIZ$$,SW$ .IF GT,SIZ$$-2I .IF B,LNG SIZ$$=2 .ENDC .ENDC CNT$$=0 .IRPC CHR$$$,SW CHR$$=''CHR$$$V CNT$$=CNT$$+1 .IF GE,>. .IF LE,>B CHR$$=CHR$$-^O40A .ENDC .ENDC .IF LE,CNT$$-SIZ$$N $$=0L .IF NB,LNGL .IF IDN,, .IF GT,CNT$$&1( .IF GE,CNT$$+1-SIZ$$J $$=^O200T .ENDC .IFF .IF LT,CNT$$-SIZ$$N $$=^O200 .ENDC .ENDC .IFFW .IF IDN,,T .IF EQ,CNT$$&1I .IF LT,CNT$$-SIZ$$I $$=^O200. .ENDC .ENDC .IFFZ- .ERROR ;ILLEGAL "LONG" OR "EXACT" SPECIFIER .ENDC .ENDC .ENDC .BYTE CHR$$!$$W .ENDC .ENDM .EVEN .ENDC .IF NB MK .WORD MK^ .IFF .WORD 0 .ENDC$$=0 .IF NB CLRR .IF IDN ,$$=1 .IFF$ .IF IDN , .IFFL .ERROR ;INVALID SET/CLEAR SPEC, .ENDC .ENDC .ENDC .WORD MKW+$$O$$=0 .IF NB NEGS .IF IDN ,$$=1 .IFF. .ERROR ;INVALID NEGATE SPEC .ENDC .ENDC .WORD VALTAB+$$ .ENDM4W  .MACRO CSI$ND .WORD 0 .ENDM$W # .MACRO CSI$SV TYPE,ADDR,LEN,VALTAB. .IF NB VALTABVALTAB:$ .ENDC .IF NB TYPE .IF IDN ,K .BYTE 1 .IFFF .IF IDN , .BYTE 2 .IFFF .IF IDN , .BYTE 2 .IFF< .IF IDN ,  .BYTE 3 .IFFR .ERROR ;INVALID CONVERSION TYPE .ENDC .ENDC .ENDC .ENDC .IFFI .BYTE 1 .ENDC .IF NB LEN .BYTE LEN .IFFG .ERROR ;LENGTH MISSING .BYTE 0 .ENDC .IF NB ADDR .WORD ADDR. .IFFS .ERROR ;VALUE00O F & ADDRESS MISSING .WORD 0 .ENDC .ENDM|W  .MACRO LDR0$ ARG .IIF B,ARG,.MEXIT .NTYPE PAR$$$,ARG .IIF EQ,PAR$$$,.MEXIT MOV ARG,R0. .ENDMW  .MACRO CSI$ GBL .IF IDN ,E.GLOBL C.TYPR,C.STAT,C.CMLD,C.DEVD,C.DIRD,C.FILD,C.SWAD,C.MKW1,C.MKW2OL.GLOBL C.SIZE,C.DSDS,CS.INP,CS.OUT,C.IDVL,C.IDVA,C.IDIL,C.IDIA,C.ODVL,C.EXPS7.GLOBL CS.NMF,CS.DIF,CS.DVF,CS.WLD,CS.MOR,CS.EQU,CS.LOG  .ENDC C.TYPR =0 C.STAT =1F C.CMLD =2. C.DEVD =6C.DIRD =^O<12>C.FILD =^O<16>C.SWAD =^O<22>C.MKW1 =^O<24>C.MKW2 =^O<26>C.IDVL =^O<30>C.IDVA =^O<32>C.IDIL =^O<34>C.IDIA =^O<36>C.ODVL =^O<40>C.EXPS =^O<60>RC.SIZE =^O<54>C.DSDS =C.DEVD CS.INP =1G CS.OUT =2N CS.NMF =1$ CS.DIF =2C CS.DVF =4TCS.WLD =^O<10>CS.MOR =^O<20>CS.EQU =^O<40>CS.LOG =^O<100>, .MACRO CSI$ X .ENDM CSI$. .ENDM CSI$.LW @ .MACRO GCMLB$ MAXD,PRMPT,UBUF,LUN,PDL,SIZE=80.,?PDL1,?DFNB,?BUF1 .MCALL FDBDF$,FDAT$A,FDOP$A,NMBLK$,FDBF$A,CBYTE$. FDBDF$1 FDAT$A 2= .IF NB = FDOP$A LUN,,DFNB2 .IFFK FDOP$A 1,,DFNBL .ENDC FDBF$A ,,13% CBYTE$ ,F.RCTLD .MCALL GCMLD$ GCMLD$0 .BYTE 0 .IF LE " .BYTE GE.COM!GE.IND!GE.CLO!GE.SIZ .IFFS) .BYTE GE.COM!GE.IND!GE.CLO!GE.CON!GE.SIZR .ENDC .BLKW 4 .BYTE -1,MAXD .IF B .WORD PDL1. .IFFI .WORD PDL .ENDC .IF NB .WORD UBUF$ .IFFR .WORD BUF .ENDC$$$=.P .ASCII <15><12> .IF NB $ .ASCII /PRMPT>/ .IFFY .ASCII / >/ .ENDC.=$$$+6NDFNB: NMBLK$ CMI,CMD .WORD SIZEKG.LPDL=*<6+<5*2>> .IF B PDL1: .BLKB G.LPDL .ENDC .IF B CBUF: .BLKB SIZE+2. .ENDC .ENDM GCMLB$Z W  .MACRO GCML$ NAME,ADPR,LNPR .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LN LDR0$ NAMEN .IF NB  MOV LNPR,G.PSDS(R0) .IIF B , .ERROR& .IIF NB , MOV ADPR,G.PSDS+2(R0) .ENDC .IIF B , CLR G.PSDS(R0) .GLOBL .GCML1 JSR PC,.GCML1 .ENDM GCML$rW  .MACRO RCML$ NAME .MCALL LDR0$$ LDR0$ NAMEM .GLOBL .GCML2 JSR PC,.GCML2 .ENDM RCML$pW  .MACRO CCML$ BLK. .MCALL LDR0$. LDR0$ BLK .GLOBL .GCML3 JSR PC,.GCML3 .ENDM CCML$W  .MACRO GCMLD$ GBL .IF NDF S.FDB .MCALL FDBSZ$ FDBSZ$E .ENDC .MCALL GCML$D GCML$D GBLM .MACRO GCMLD$ X .ENDM .ENDM GCMLD$RNW  .MACRO GCML$D GBL .IF IDN ,7 .GLOBL G.ERR,G.MODE,G.PSDS,G.CMLD,G.RBUF,G.DPRM,G.SIZEM0 .GLOBL GE.COM,GE.IND,GE.CLO,GE.LC,GE.CON,GE.SIZ1 .GLOBL GE.IOR,GE.OPR,GE.BIF,GE.MDE,GE.EOF,GE.RBGG .ENDC G.ERR = S.FDBG.MODE = G.ERR+1G.PSDS = G.ERR+2G.CMLD = G.ERR+6G.RBUF = G.ERR+14. G.ISIZ = 16.G.DPRM = G.ERR+G.ISIZG.SIZE = G.DPRM+6+S.FNBL GE.COM = 1 GE.IND = 2 GE.CLO = 4 GE.LC = 10 GE.CON = 20C GE.SIZ = 40G GE.IOR = -1. GE.OPR = -2X GE.BIF = -3N GE.MDE = -4 GE.EOF = -10. GE.RBG = -40.G .MACRO GCML$D X .ENDM .ENDM GCML$D,W . .MACRO PRINT$ FDB,ERR,?LBL,A,B,C,D,E,F,?LBL2 .MCALL CALL,CLOSE$,LDR0$,GLUN$S% LDR0$ FDB ;LOAD FDB ADDRESS INTO R0. TST F.BDB(R0) BEQ LBL MOV R1,-(SP)E MOV R2,-(SP)G MOV R3,-(SP)=/ MOV SP,R1 ;SAVE POINTER TO END OF SEND BUFFERM/ SUB #<8.*2>,SP ;ALLOCATE A GET LUN INFO BUFFERM MOV SP,R2 MOVB F.LUN(R0),R3 GLUN$S R3,R2N% MOV G.LUCW(R2),R3 ;SAVE CHAR. WORD 1O MOV R0,R2 ;COPY FDB ADDRESS=4 ADD #F.FNB+N.DID+6,R2 ;POINT TO END OF DIRECTORY ID$ MOV -(R2),-(R1) ; PUSH DIRECTORY ID MOV -(R2),-(R1) ; MOV -(R2),-(R1) ;/ ADD #N.FID+6-N.DID,R2 ;POINT TO END OF FILE IDL MOV -(R2),-(R1) ;PUSH FILE ID MOV -(R2),-(R1) ; MOV -(R2),-(R1) ;' CLRB -(R1) ;CLEAR LUN INFO FLAGS BYTEM@ ADD #N.FVER+2-N.FID,R2 ;POINT TO END OF FILENAME, TYPE, VERSION* MOV -(R2),-(SP) ;PUSH FILE VERSION NUMBER MOV -(R2),-(SP) ;PUSH FILE TYPE MOV -(R2),-(SP) ;PUSH FILENAMEW MOV -(R2),-(SP) ; MOV -(R2),-(SP) ;' MOV SP,R1 ;SET POINTER TO SEND BUFFERI CLOSE$ R0 ;CLOSE FILER BCS LBL2I: BIT #FD.REC!FD.OSP,R3 ;RECORD ORIENTED OR SPOOLED DEVICE? BNE LBL2 ;IF NE YESO MOV00TADATADATADATADATADATADATADATADATA R0,R2 ;SAVE FDB ADDRESSR# MOV #^RPRT,R0 ;GET "PRT" IN RAD-50, CALL $DSPAT ;SEND DATA TO ...PRT OR PRT...$ MOV R0,F.ERR(R2) ;GET RETURN STATUS MOV R2,R0 ;RESTORE FDB ADDRESSLBL2: ROR R1 ;SAVE CARRY; ADD #<13.*2>,SP ;CLEAN STACK- ROL R1 ;RESTORE CARRYE MOV (SP)+,R3S MOV (SP)+,R2M MOV (SP)+,R1- .IF NB ERR- BCC LBL CALL ERR, .ENDCLBL: .ENDM PRINT$EW  .MACRO COMDF$ DEF .NLIST# .IF IDN ,8.GLOBL B.OT,B.UN,B.RC,B.RN,B.RP,B.RU,B.NA,B.UA,B.MN,B.MX.GLOBL CT.IN,CT.CN,LB.N,LB.E.GLOBL NT.IN,NT.NS.GLOBL CR.UR,CR.NR,CR.MXD.GLOBL CR.N0,CR.N1,CR.N2,CR.N3,CR.N4,CR.N5,CR.N6,CR.N9,CR.N10,CR.N11.GLOBL CR.N7,CR.N8.GLOBL CR.DI,CR.DT,CR.DA".GLOBL IA.ISM,IA.ABO,IA.DIS,IA.NFW.GLOBL CN.IN,CN.OU,CN.UT,CN.NTB.GLOBL OB.TA,OB.FS,OB.SQ,OB.BO,OB.TC,OB.RD,OB.RA,OB.ND,OB.DD,OB.BM<.GLOBL OB.TH,OB.TB,OB.TI,OB.CR,OB.LP,OB.PR,OB.PP,OB.PL,OB.MT*.GLOBL OB.DT,OB.CS,OB.CP,OB.FH,OB.MH,OB.FL .ENDC B.OT = 0> B.UN = 1O B.RC = B.OT+2 B.RN = B.RC+2 B.RP = B.RN+4 B.RU = B.RP+4 B.NA = B.RU+4 B.UA = B.NA+2 B.MN = B.UA B.MX = B.MN+10O NT.IN = 101 NT.NS = 1 CR.UR = 2 CR.NR = 3 CR.MX = 6 CR.N0 = 0. CR.N1 = 1O CR.N2 = 2T CR.N3 = 3L CR.N4 = 4O CR.N5 = 5W CR.N6 = 6N CR.N7 = 7C CR.N8 = 8. CR.N9 = 11 CR.N10 = 12O CR.N11 = 13D CR.DI = 4 CR.DT = 5 CR.DA = 6 LB.N=0O LB.E=2R CT.IN = 0 CT.CN = 1 IA.ABO = -5 IA.DIS = -7 IA.NFW = 177673 IA.ISM = 1 CN.IN = 1 CN.OU = 2 CN.UT = 4 CN.NT = 10 OB.TA = 0 OB.FS = 1 OB.SQ = 2 OB.BO = 3 OB.TC = 4 OB.RD = 5 OB.RA = 6 OB.ND = 7 OB.DD = 10S OB.BM = 11= OB.TH = 203 OB.TB = 21 OB.TI = 22 OB.CR = 23 OB.LP = 24 OB.PR = 25 OB.PP = 26 OB.PL = 27 OB.MT = 30 OB.DT = 31 OB.CS = 32 OB.CP = 33 OB.FH = 34O OB.MH = 351 OB.FL = 364 .MACRO COMDF$ A .ENDM .LIST .ENDMnW  .MACRO EGCMI$ .MACRO GCMLD$ GLOB .ASECT  .=0G.MODE: .BLKW 2C GE.COM = 1. GE.IND = 2T GE.CLO = 4= GE.LC = 10 GE.CON = 20 GE.XXX = 40 GE.MUL = 100. GE.LIB = 200= GE.MCR = 400 GE.IEF = 1000 GE.RWD = 2000 GE.FOP = 4000 GE.RPR = 10000 GE.SDE = 20000O GE.SER = 40000P GE.SLB = 100000 ; G2.XXX = 1G.IMPS: .BLKB 1G.OVBC: .BLKB 1.G.FILE: .BLKW 1=G.ERR: .BLKB 1 GE.IOR = -1 GE.OPR = -2 GE.BIF = -3 GE.MDE = -4 GE.CMD = -5 GE.VRS = -6 GE.EOF = -10. GE.RBG = -40.G.CDEP: .BLKB 1LG.FUNC: .BLKB 1 G.MAXD: .BLKB 1BG.TERM: .BLKB 1 G.TIOS: .BLKB 1G.TIOP: .BLKW 1.G.PRMP: .BLKW 2 G.CMLD: .BLKW 20G.FRAG: .BLKW 2G.BUFF: .BLKW 2GG.DFPR: .BLKB 6.G.CSIB: .BLKW 1WG.PPTR: .BLKW 1 G.SWIT: .BLKW 1 G.LBMN: .BLKB 6 G.FQFN: .BLKW 1 G.DDIR: .BLKW 2 G.DEFT: .WORD ^RCMDG.ISIZ:B .ASECT. .=0G.SUSR: .BLKW 1 G.SDID: .BLKW 5.G.SVER: .BLKW 1 G.STYP: .BLKW 1G.SNAM: .BLKW 3.G.SFID: .BLKW 3 G.SRAT: .BLKB 16.G.SPOS: .BLKW 3GG.SBST: .BLKW 1DG.SRWP: .BLKW 3UG.PLFS:  .PSECTD .MACRO GCMLD$ X .ENDM .ENDMN .MACRO ECMLB$ FILE,LUN=1,MAXD=3,PRMP=< >,BFAD,BFSZ=80.,PDL,SWIT,?GF,?GB,?GS# .MCALL GCMLD$,CWORD$,CBYTE$,CSTRG$  .MCALL CSI$SW,CSI$SV,CSI$ND .IIF NDF FCS$$ FCS$$=1  GCMLD$ ...PC1=.. .BLKB G.ISIZ CBYTE$ ,G.IMPS , CWORD$ ,G.MODE CBYTE$ ,G.MAXDK CBYTE$ <15>,G.DFPR  CBYTE$ <12>,G.DFPR+1N CSTRG$ ,G.DFPR+2,3  CBYTE$ <-1>,G.CDEP CBYTE$ ,G.TIOST CWORD$ <0>,G.TIOP CWORD$ <0>,G.FQFN CBYTE$ <0>,G.OVBC .IF B  ...TMP = <*G.PLFS>,...PDL: .BLKB ...TMP CWORD$ <...PDL+...TMP>,G.PPTR .IFF. .ENDC .IF B TGB: .BLKB BFSZ+2 CWORD$ ,G.BUFF+2 .IFFD CWORD$ ,G.BUFF+2  .ENDC CWORD$ ,G.BUFF+0Y .IF B I...SWI: GCMSW$ ...PC1,GS CWORD$ <...SWI>,G.SWIT .IFF  CWORD$ ,G.SWIT  .ENDC .IF NB  CWORD$ ,G.FILEP .IFFD CWORD$ ,G.FILE> .IF DF FCS$$E* .MCALL FDBDF$,FDAT$A,FDOP$A,NMBLK$,FDBF$A GF: FDBDF$ FDAT$A 2  FDOP$A LUN,,...FNAD FDBF$A ,,1 % CBYTE$ ,F.RCTLP...FNA: NMBLK$ CMI,CMD .IFFR .IF DF RMS$$C .MCALL FAB$B,RAB$B,NAM$B GF: .WORD 1,...RAB .WORD 1,...FABD ...RAB: RAB$B> R$FAB ...FABN R$RAC RB$SEQS RAB$E ...FAB: FAB$BW F$DNA ...DNA+3S F$DNS 7 F$FNA ...FNA. F$FAC FB$GET. F$LCH LUN F$NAM ...NAM F$ORG FB$SEQN F$RAT 0 F$RFM FB$VARG FAB$E ...NAM: NAM$B N$ESS 34. NAM$E...DNA: .ASCII /SY:CMI.CMD/$...FNA: .ASCII /CMI/ .BLKB 29. .IFF$ .ERRORO .ENDC .ENDC .ENDC .ENDM6 .MACRO GCMLB$ MAXD=1,PRMP=< >,UBUF,LUN,PDL,SIZE=80. .MCALL ECMLB$$ ECMLB$ ,LUN,MAXD,PRMP,UBUF,SIZE,PDL .ENDM .MACRO GCMSW$ GCMB,?VAL .MCALL CSI$SW,CSI$SV,CSI$ND CSI$SW LB,GE.SLB,,SET,,VALR CSI$SW ER,GE.SER,,SET,NEG CSI$SW DE,GE.SDE,,CLEAR,NEG CSI$NDFVAL: CSI$SV ASCII,GCMB+G.LBMN,6. CSI$NDF .ENDM .MACRO GCML$ GCMB,PRAD,PRLN .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LN LDR0$ GCMB  CLRB G.FUNC(R0) .IF NB  MOV PRLN,G.PRMP(R0) .IF B O .ERROR .IFF MOV PRAD,G.PRMP+2(R0) .ENDC .IFFR CLR G.PRMP(R0), .ENDC .GLOBL $GCMLC JSR PC,$GCMLL .ENDM .MACRO RCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LC LDR0$ GCMBI MOVB #1,G.FUNC(R0)B .GLOBL $GCMLA JSR PC,$GCMLG .ENDM .MACRO CCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LS LDR0$ GCMBG MOVB #2,G.FUNC(R0). .GLOBL $GCMLC JSR PC,$GCMLP .ENDM .MACRO MCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L. LDR0$ GCMBF MOVB #3,G.FUNC(R0), .GLOBL $GCMLF JSR PC,$GCMLR .ENDM .MACRO FCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L( LDR0$ GCMB MOVB #4,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO LCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L1 LDR0$ GCMB MOVB #5,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO ECML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L2 LDR0$ GCMB MOVB #6,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO DCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L3 LDR0$ GCMB MOVB #7,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO GCMM$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L4 LDR0$ GCMB MOV G.FILE(R0),R0 .GLOBL .MARKN JSR PC,.MARKL .ENDM .MACRO GCMP$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L LDR0$ GCMBP MOV G.FILE(R0),R0 .GLOBL .POINT JSR PC,.POINT .ENDM, .MACRO CMSET$ GCMB,TSUB,TVFC,FQFN,TTMO,OVBC" .MCALL LDR0$,CMOV$B,CMOV$W,GCMLD$ GCMLD$ DEF$LP LDR0$ GCMBN CMOV$B TSUB,G.TIOSB CMOV$B TVFC,G.TIOP+1 CMOV$B TTMO,G.TIOP+0G CMOV$W FQFN,G.FQFN( CMOV$B OVBC,G.OVBC .ENDM+ .MACRO CMGET$ GCMB,TERM,FILE,FQFN,OVBC,ERRC" .MCALL LDR0$,CGET$B,CGET$W,GCMLD$ GCMLD$ DEF$LL LDR0$ GCMBL CGET$B G.TERM,TERMM CGET$W G.FILE,FILE  CGET$B G.ERR,ERR  CGET$W G.FQFN,FQFN  CGET$B G.OVBC,OVBC .ENDM .MACRO EGCMI$ .ENDM .ENDMVW  .MACRO .PICOD NAME=PIC$IT .PSECT NAME RO,I,LCL,REL,CON0 .ENDMVW  .MACRO .PCODE NAME=PUR$I .PSECT NAME RO,I,LCL,REL,CONV .ENDMVW  .MACRO .IDATA NAME=IMP$DF .PSECT NAME RW,D,LCL,REL,CONN .ENDMVW  .MACRO .PDATA NAME=PUR$DC .PSECT NAME RO,D,LCL,REL,CON .ENDMVW  .MACRO .ODATA NAME=IMP$DO .PSECT NAME RW,D,LCL,REL,OVRR .ENDM0W < .MACRO HLPDF$ FILLUN,TILUN,EFN,NAME,FDBIN,DSP,MODULE,FDBOUT$HFDB:: .WORD FDBIN .IF NB FDBOUT .WORD FDBOUTS .IFFE .WORD 0 .ENDC$HLUN1 == FILLUN$HLUN2 == TILUN $HEFN == EFN$HDSP:: .WORD DSPR$HMOD:: .RAD50 /MODULE/$HNAME::.ASCII /NAME/R .EVEN .ENDM HLPDF$.`W ! .MACRO OVAST$ SENSE,?LABL,?LABL2 MOV @#.NOVPT,-(SP)$ BEQ LABL  ADD #N.FAST,(SP) .IF IDN , BICB #^O200,@(SP)+M .IFF. .IF IDN , BISB #^O200,@(SP)+ .IFF.0 .ERROR ; PARAMETER MUST BE "ALLOW" OR "INHIBIT" .ENDC .ENDC BR LABL2ILABL:F INC (SP)+LABL2: .ENDM OVAST$W  .MACRO CSM$ SUPVR .IF IDN <(SP)+>, .WORD 007026R .IFF MOV SUPVR,-(SP) .WORD 007026: .ENDC .ENDM CSM$N W  .MACRO FEADF$,L,B .MCALL DEFIN$ .IF NB L'BL ...GBL=1 00TADATADATADATADATADATADATADATADATA .IFFP ...GBL=0B .ENDC DEFIN$ FE$EXT,1 DEFIN$ FE$MUP,2 DEFIN$ FE$EXV,3 DEFIN$ FE$DRV,4 DEFIN$ FE$PLA,5 DEFIN$ FE$CAL,6 DEFIN$ FE$PKT,7 DEFIN$ FE$EXP,8.O DEFIN$ FE$LSI,9.B DEFIN$ FE$OFF,10. DEFIN$ FE$FDT,11. DEFIN$ FE$X25,12. DEFIN$ FE$DYM,13. DEFIN$ FE$CEX,14. DEFIN$ FE$MXT,15. DEFIN$ FE$NLG,16. DEFIN$ FE$DAS,17. DEFIN$ FE$LIB,18. DEFIN$ FE$MP,19.) DEFIN$ FE$EVT,20. DEFIN$ FE$ACN,21. DEFIN$ FE$SDW,22. DEFIN$ FE$POL,23. DEFIN$ FE$WND,24. DEFIN$ FE$DPR,25. DEFIN$ FE$IRR,26. DEFIN$ FE$GGF,27. DEFIN$ FE$RAS,28. DEFIN$ FE$AHR,29. DEFIN$ FE$RBN,30. DEFIN$ FE$SWP,31. DEFIN$ FE$STP,32. DEFIN$ FE$CRA,33. DEFIN$ FE$XCR,34. DEFIN$ FE$EIS,35. DEFIN$ FE$STM,36. DEFIN$ FE$UDS,37. DEFIN$ FE$PRO,38. DEFIN$ FE$XHR,39. DEFIN$ FE$AST,40. DEFIN$ FE$11S,41. DEFIN$ FE$CLI,42. DEFIN$ FE$TCM,43. DEFIN$ FE$PMN,44. DEFIN$ FE$WAT,45. DEFIN$ FE$RLK,46. DEFIN$ FE$SHF,47. DEFIN$ FE$CXD,49. DEFIN$ FE$XT,50.N DEFIN$ FE$ERL,51. DEFIN$ FE$PTY,52. DEFIN$ FE$DVN,53. DEFIN$ FE$LCD,54. DEFIN$ FE$NIM,55. DEFIN$ FE$CHE,56. DEFIN$ FE$LOG,57. DEFIN$ FE$NAM,58. DEFIN$ FE$FMP,59. DEFIN$ FE$DCL,60. DEFIN$ FE$DDS,61. DEFIN$ FE$ACD,62. DEFIN$ FE$NCT,63. DEFIN$ FE$LSD,64. DEFIN$ FE$PC3,65. DEFIN$ FE$DFB,66. DEFIN$ FE$RTB,67. DEFIN$ FE$ODB,68. DEFIN$ FE$XDJ,69. DEFIN$ FE$NSY,70. DEFIN$ FE$NCO,71. DEFIN$ FE$RTK,72. DEFIN$ FE$RDR,73. DEFIN$ FE$RLG,74. DEFIN$ FE$VTL,75. DEFIN$ HF$UBM,-1. DEFIN$ HF$EIS,-2. DEFIN$ HF$QB,-3.N DEFIN$ HF$DSP,-4. DEFIN$ HF$SWR,-5. DEFIN$ HF$KXJ,-6. DEFIN$ HF$RMT,-7. DEFIN$ HF$CIS,-8. DEFIN$ HF$FPP,-16.  DEFIN$ HF$NVR,-17.E DEFIN$ HF$INV,-18.D DEFIN$ HF$CLK,-19.D DEFIN$ HF$ITF,-20.6 DEFIN$ HF$PRO,-21.. DEFIN$ HF$BRG,-32. DEFIN$ T2$WFR,1 DEFIN$ T2$WFA,2 DEFIN$ T2$SPN,3 DEFIN$ T2$SPA,4 DEFIN$ T2$STP,5 DEFIN$ T2$STA,6 DEFIN$ T2$ABO,7 DEFIN$ T2$AFF,9.N DEFIN$ T2$SIO,10. DEFIN$ T2$SEF,12. DEFIN$ T2$REX,13. DEFIN$ T2$CHK,14. DEFIN$ T2$DST,15. DEFIN$ T2$AST,16. DEFIN$ T3$GFL,17. DEFIN$ T3$SWS,18. DEFIN$ T3$CMD,19. DEFIN$ T3$MPC,20. DEFIN$ T3$NET,21. DEFIN$ T3$ROV,22. DEFIN$ T3$CAL,23. DEFIN$ T3$NSD,24. DEFIN$ T3$RST,25. DEFIN$ T3$CLI,26. DEFIN$ T3$SLV,27. DEFIN$ T3$MCR,28. DEFIN$ T3$PRV,29. DEFIN$ T3$REM,30. DEFIN$ T3$PMD,31. DEFIN$ T3$ACP,32. DEFIN$ T4$SNC,33. DEFIN$ T4$DSP,34. DEFIN$ T4$PRV,35. DEFIN$ T4$PRO,36. DEFIN$ T4$LDD,37. DEFIN$ T4$MUT,38. DEFIN$ T4$CTC,39. DEFIN$ T4$FMP,40. DEFIN$ T4$DFB,41. .MACRO FEADF$ X,Y .ENDM FEADF$D .ENDM FEADF$.W  .MACRO LNBDF$,L,B,SYSDEFF .SAVE .ASECTD LT.SYS='B'02 LT.GRP='B'13 LT.USR='B'2F LT.TSK='B'3. LT.SES='B'4R LT.INV='B'6N LT.APP='B'5 LS.TRM='B'1V LS.PRV='B'2 LB.LOC='B'1D LB.LOG='B'22 IN.TSK='B'13 IN.SES='B'20 IN.GRP='B'4. IN.SYS='B'10.=0.O$STAT:'L' .BLKW 1O$FLAG:'L' .BLKW 1O$NODS:'L' .BLKW 1O$NODA:'L' .BLKW 1O$DEVS:'L' .BLKW 1O$DEVA:'L' .BLKW 1O$DIRS:'L' .BLKW 1O$DIRA:'L' .BLKW 1O$NAMS:'L' .BLKW 1O$NAMA:'L' .BLKW 1O$TYPS:'L' .BLKW 1O$TYPA:'L' .BLKW 1O$VERS:'L' .BLKW 1O$VERA:'L' .BLKW 1O$TRLS:'L' .BLKW 1O$TRLA:'L' .BLKW 1O$ACCS:'L' .BLKW 1O$ACCA:'L' .BLKW 1O$LTYP:'L' .BLKB 1 .BLKB 1' O$PLEN='B'.' SU$SUC ='B'1ER$NOD ='B'175550BER$DEV ='B'177100'ER$DIR ='B'177060ER$DNF ='B'177020SER$FNM ='B'176420TER$TYP ='B'174540GER$VER ='B'174460SER$ESS ='B'176640AER$XTR ='B'174340SER$BEQ ='B'177510AER$TRN ='B'174550SER$FTB ='B'176364AFS$NOD ='B'400FS$DEV ='B'200FS$DIR ='B'100FS$QUO ='B'2000. FS$NAM ='B'4 FS$TYP ='B'2 FS$VER ='B'1FS$WCH ='B'4000.FS$WDI ='B'1000' FS$WNA ='B'40A FS$WTY ='B'20$ FS$WVE ='B'101FS$NDF ='B'10000FS$DID ='B'20000 P.LNON ='B'0 P.LNAM ='B'1 P.LDEV ='B'2 P.LNOD ='B'3 .RESTORER .MACRO LNBDF$ X,Y,Z .ENDM .ENDMW  .MACRO FHDL2$ GLOBALR .MCALL FHDO2$ ...GBL=0B .IF B,GLOBALS FHDO2$ DEF$LR .IFFB .IF IDN,,A ...GBL=1B .ENDC FHDO2$ GLOBAL .ENDC .IF DIF,,0 .MACRO FHDL2$ ARG1Q .ENDM FHDL2$S .ENDC .ENDM FHDL2$2W  .MACRO FHDO2$ OFFSET= .MCALL DEF$I,OFFSET,DEFIN$W DEF$I 0 OFFSET H.IDOF,1 OFFSET H.MPOF,1 OFFSET H.ACOF,1. OFFSET H.RSOF,1= OFFSET H.FSEG,2 OFFSET H.FLEV,2T OFFSET H.FNUM,2 OFFSET H.FSEQ,2 OFFSET H.FRVN,2 OFFSET H.EFNU,2 OFFSET H.EFSQ,2 OFFSET H.ERVN,2 OFFSET H.UFAT,32. OFFSET H.FCHA OFFSET H.UCHA OFFSET ,1 OFFSET H.SCHA OFFSET ,3 DEFIN$ UC.CON,200 DEFIN$ UC.DLK,100 DEFIN$ UC.CNB,40R DEFIN$ UC.WCK,20N DEFIN$ UC.RCK,10 DEFIN$ UC.WBK,4 DEFIN$ UC.NBK,2 DEFIN$ SC.SPL,20= DEFIN$ SC.DIR,40S DEFIN$ SC.BAD,100 DEFIN$ SC.MDL,200 OFFSET H.RPRO,2 OFFSET H.USE,1. OFFSET H.PRIV,1 OFFSET H.FOWN OFFSET H.PROG,2 OFFSET H.PROJ,2 OFFSET H.FPRO,2 DEFIN$ FP.RDV,1 DEFIN$ FP.WRV,2 DEFIN$ FP.EXE,4 DEFIN$ FP.DEL,10. OFFSET H.BFNU,2 OFFSET H.BFSQ,2 OFFSET H.BRVN,2 OFFSET H.SEMK,4 OFFSET S.HDHD F DEF$I 0 OFFSET I.FNAM,20. OFFSET I.RVNO,2 OFFSET I.CRDT,8. OFFSET I.RVDT,8. OFFSET I.EXDT,8. OFFSET I.BKDT,8.D OFFSET I.ULAB,80. OFFSET S.IDHD DEF$I 0 OFFSET S.MPHD DEFIN$ H.CKSM,510.  .IF DIF,,2 .MACRO FHDO2$ ARG1O .ENDM FHDO2$ .ENDC .ENDM FHDO2$ W  .MACRO HMBL2$ GLOBALO .MCALL HMBO2$ ...GBL=0N .IF B,GLOBALF HMBO2$ DEF$LD .IFFP .IF IDN,, ...GBL=1F .ENDC HMBO2$ GLOBAL .ENDC .IF DIF,,F .MACRO HMBL2$ ARG1. .ENDM HMBL2$E .ENDC .ENDM HMBL2$R$W  .MACRO HMBO2$ OFFSETT .MCALL DEF$I,OFFSET,DEFIN$F DEF$I 0 OFFSET H.HBLB,4 OFFSET H.AHLB,4 OFFSET H.IHLB,4 OFFSET H.VLEV,2 OFFSET H.SBCL,2 OFFSET H.HBVB,2 OFFSET H.AHVB,2 OFFSET H.IHVB,2 OFFSET H.IBVB,2 OFFSET H.IBLB,4 OFFSET H.FMAX,4 OFFSET H.IBSZ,2 OFFSET H.RSVF,2 OFFSET H.DVTY,2 OFFSET H.RVN,2 OFFSET H.NVOL,2 OFFSET H.VCHA,2 OFFSET H.VOWN,4 OFFSET H.VSMX,4 OFFSET H.VPRO,2 OFFSET H.DFPR,2 OFFSET H.DRPR,2 OFFSET H.CHK1,2 OFFSET H.VDAT,8. OFFSET H.WISZ,1 OFFSET H.LRUC,1 OFFSET H.FIEX,2 OFFSET ,384. OFFSET H.SRLN,4 OFFSET H.SNAM,12. OFFSET H.INDN,12. OFFSET H.INDO,12. OFFSET H.INDF,12. OFFSET ,2 OFFSET H.CHK2,2 .IF DIF,,O .MACRO HMBO2$ ARG1E .ENDM HMBO2$F .ENDC .ENDM HMBO2$.W  .MACRO SCBL2$ GLOBAL2 .MCALL SCBO2$ ...GBL=0 .IF B,GLOBALE SCBO2$ DEF$LF .IFFO .IF IDN,,F ...GBL=12 .ENDC SCBO2$ GLOBAL .ENDC .IF DIF,,F .MACRO SCBL2$ ARG1E .ENDM SCBL2$F .ENDC .ENDM SCBL2$.XW  .MACRO SCBO2$ OFFSET .MCALL DEF$I,OFFSET,DEFIN$. DEF$I 0 OFFSET ,2 OFFSET C.SBCL,2 OFFSET C.VSIZ,4 OFFSET C.SECT,4 OFFSET C.TRAK,4 OFFSET C.CYLN,4 OFFSET C.STAT,2 DEFIN$ SC.TRN,1 OFFSET ,486.B OFFSET C.CKSM,2 .IF DIF,,2 .MACRO SCBO2$ ARG1. .ENDM SCBO2$G .ENDC .ENDM SCBO2$W  .MACRO BOM$C STS,FLG,CS,ERR .MCALL BOM$,DIR$B .IF NDF $$$GLBD .PSECT $DPB$.,D$$$=.A .IFTF BOM$ STS,FLGM .IFTF .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM BOM$CW  .MACRO BOM$S STS,FLG,ERR. .MCALL MOV$,DIR$,OFF$ MOV$ FLGB MOV$ STSE MOV (PC)+,-(SP) .BYTE 211.,3F DIR$ ,ERR .ENDM BOM$S W  .MACRO BOM$ STS,FLG .MCALL OFF$ .IF NDF $$$GLBM .BYTE 211.,3F .WORD STS .IF NB FLGC .WORD FLG .IFFS .WORD 0 .ENDC .ENDC .IF NDF B.OMCD .NLISTA$$$OST=0 OFF$, OFF$ B.OMCD,2 OFF$ B.OMFL,2 .LIST .ENDC .ENDM BOM$DvW  .MACRO BOMDF$ .NLIST. S.BUNK=-128. S.BFEI=0. S.BOVL=1.N S.BBIF=1. .LIST .ENDM BOMDF$ W  .MACRO TFEA$ FEAT .MCALL OFF$,FEADF$V .IF NDF $$$GLB+ .BYTE 209.,2. .WORD FEAT  .ENDC .IF NDF F.TEAF OFF$ OFF$ F.TEAF,2 .IF DF $$$GLB FEADF$ ,<=> .IFFL FEADF$E .ENDC .ENDC .ENDM TFEA$W  .MACRO TFEA$C FEAT,CS,ERR .MCALL TFEA$,DIR$ .IF NDF $$$GLBO .PSECT $DPB$$$$$=.M .IFTF TFEA$ FEAT .IFT .PSECT CS D00TADATADATADATADATADATADATADATADATAIR$ #$$$,ERR .ENDC .ENDMW  .MACRO TFEA$S FEAT,ERR0 .MCALL MOV$,DIR$B MOV$ FEAT MOV (PC)+,-(SP) .BYTE 209.,2. DIR$ ,ERR .ENDMW  .MACRO RRST$ WDB$ .MCALL OFF$ .IF NDF $$$GLBA .BYTE 213.,2F .WORD WDB .ENDC .IF NDF R.RSBA OFF$  OFF$ R.RSBA,2 .ENDC .ENDM RRST$W  .MACRO RRST$C WDB,CS,ERR .MCALL RRST$,DIR$ .IF NDF $$$GLBL .PSECT $DPB$$$$$=.$ .IFTF RRST$ WDB .IFT= .PSECT CS DIR$ #$$$,ERR .ENDC .ENDM RRST$C W  .MACRO RRST$S WDB,ERR .MCALL DIR$,MOV$A MOV$ WDBC MOV (PC)+,-(SP) .BYTE 213.,2( DIR$ ,ERR .ENDM RRST$STX  .MACRO FCSMC$1 .MCALL OPEN$R,OPEN$W,OPEN$M,OPEN$U,OPEN$A,CLOSE$L* .MCALL OPNS$R,OPNS$W,OPNS$M,OPNS$U,OPNS$A2 .MCALL READ$,WRITE$,WAIT$,GET$,PUT$,DELET$,FINIT$8 .MCALL FSRSZ$,FDBDF$,FDAT$A,FDRC$A,FDOP$A,FDBF$A,FDBK$A1 .MCALL FDAT$R,FDRC$R,FDOP$R,FDBF$R,FDBK$R,NMBLK$$ .MACRO FCSMC$ .ENDM FCSMC$= .ENDM FCSMC$DX . .MACRO OPEN$R FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$.. OPEN$ FDB,#FO.RD,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OPEN$RX . .MACRO OPEN$W FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$$/ OPEN$ FDB,#FO.WRT,LUN,FNPT,,RACC,URBA,URBS,ERRN .ENDM OPEN$W$X . .MACRO OPEN$M FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$F/ OPEN$ FDB,#FO.MFY,LUN,FNPT,,RACC,URBA,URBS,ERRT .ENDM OPEN$MRX . .MACRO OPEN$U FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$/ OPEN$ FDB,#FO.UPD,LUN,FNPT,,RACC,URBA,URBS,ERRS .ENDM OPEN$UPX . .MACRO OPEN$A FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$/ OPEN$ FDB,#FO.APD,LUN,FNPT,,RACC,URBA,URBS,ERRE .ENDM OPEN$ANX . .MACRO OPNS$R FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$5 OPEN$ FDB,#FA.SHR!FO.RD,LUN,FNPT,,RACC,URBA,URBS,ERR. .ENDM OPNS$ROX . .MACRO OPNS$W FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$6 OPEN$ FDB,#FA.SHR!FO.WRT,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OPNS$WFX . .MACRO OPNS$M FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$R6 OPEN$ FDB,#FA.SHR!FO.MFY,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OPNS$MOX . .MACRO OPNS$U FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$S6 OPEN$ FDB,#FA.SHR!FO.UPD,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OPNS$UFX . .MACRO OPNS$A FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$S6 OPEN$ FDB,#FA.SHR!FO.APD,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OPNS$AFX . .MACRO OPNT$D FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPNT$W# OPNT$W FDB,LUN,FNPT,RACC,URBA,URBS. BCS .+6 JSR PC,.MRKDL ERR$ ERRF .ENDM OPNT$DCX . .MACRO OPNT$W FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OPEN$C6 OPEN$ FDB,#FA.TMP!FO.WRT,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OPNT$WCX 7 .MACRO OPEN$ FDB,FACC,LUN,FNPT,DFNB,RACC,URBA,URBS,ERRP! .MCALL FDOP$R,FDRC$R,ERR$,CMOV$BS FDOP$R FDB,LUN,FNPT,DFNB,FACC FDRC$R ,RACC,URBA,URBS .GLOBL .OPEN JSR PC,.OPEN ERR$ ERRP .ENDM OPEN$X . .MACRO OFID$R FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFID$S. OFID$ FDB,#FO.RD,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OFID$RX . .MACRO OFID$W FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFID$A/ OFID$ FDB,#FO.UPD,LUN,FNPT,,RACC,URBA,URBS,ERRO .ENDM OFID$WX . .MACRO OFID$M FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFID$R/ OFID$ FDB,#FO.MFY,LUN,FNPT,,RACC,URBA,URBS,ERRA .ENDM OFID$MCX . .MACRO OFID$U FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFID$/ OFID$ FDB,#FO.UPD,LUN,FNPT,,RACC,URBA,URBS,ERRS .ENDM OFID$UFX . .MACRO OFID$A FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFID$/ OFID$ FDB,#FO.APD,LUN,FNPT,,RACC,URBA,URBS,ERRE .ENDM OFID$ADX 7 .MACRO OFID$ FDB,FACC,LUN,FNPT,DFNB,RACC,URBA,URBS,ERR! .MCALL FDOP$R,FDRC$R,ERR$,CMOV$BF FDOP$R FDB,LUN,FNPT,DFNB,FACC FDRC$R ,RACC,URBA,URBSY .GLOBL .OPFID JSR PC,.OPFID ERR$ ERR$ .ENDM OFID$X . .MACRO OFNB$R FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCAL00O F &L OFNB$B. OFNB$ FDB,#FO.RD,LUN,FNPT,,RACC,URBA,URBS,ERR .ENDM OFNB$RX . .MACRO OFNB$W FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFNB$F/ OFNB$ FDB,#FO.WRT,LUN,FNPT,,RACC,URBA,URBS,ERRO .ENDM OFNB$WX . .MACRO OFNB$M FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFNB$R/ OFNB$ FDB,#FO.MFY,LUN,FNPT,,RACC,URBA,URBS,ERRA .ENDM OFNB$MCX . .MACRO OFNB$U FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFNB$/ OFNB$ FDB,#FO.UPD,LUN,FNPT,,RACC,URBA,URBS,ERRS .ENDM OFNB$UFX . .MACRO OFNB$A FDB,LUN,FNPT,RACC,URBA,URBS,ERR .MCALL OFNB$/ OFNB$ FDB,#FO.APD,LUN,FNPT,,RACC,URBA,URBS,ERRE .ENDM OFNB$ABX 7 .MACRO OFNB$ FDB,FACC,LUN,FNPT,DFNB,RACC,URBA,URBS,ERR! .MCALL FDOP$R,FDRC$R,ERR$,CMOV$BF FDOP$R FDB,LUN,FNPT,DFNB,FACC FDRC$R ,RACC,URBA,URBSY .GLOBL .OPFNB JSR PC,.OPFNB ERR$ ERR$ .ENDM OFNB$X  .MACRO CLOSE$ FDB,ERR .MCALL LDFDB$,ERR$ LDFDB$ FDB$ .GLOBL .CLOSE JSR PC,.CLOSE ERR$ ERR .ENDM CLOSE$X 3 .MACRO READ$ FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN,ERRL .MCALL FDBK$R,ERR$#) FDBK$R FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDNM .GLOBL .READ JSR PC,.READA ERR$ ERRD .ENDM READ$X 4 .MACRO WRITE$ FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN,ERR .MCALL FDBK$R,ERR$C) FDBK$R FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN .GLOBL .WRITE JSR PC,.WRITE ERR$ ERR .ENDM WRITE$X  .MACRO WAIT$ FDB,EFN,BKST,ERR! .MCALL LDFDB$,CMOV$W,CMOV$B,ERR$C LDFDB$ FDBR CMOV$B EFN,F.EFN CMOV$W BKST,F.BKSTA .GLOBL .WAITK JSR PC,.WAITE ERR$ ERR, .ENDM WAIT$X ! .MACRO GET$ FDB,INADR,MAXCNT,ERRD .MCALL LDFDB$,CMOV$W,ERR$ LDFDB$ FDB  CMOV$W INADR,F.URBD+2 CMOV$W MAXCNT,F.URBDR .GLOBL .GET JSR PC,.GET ERR$ ERRE .ENDM GET$DX . .MACRO GET$R FDB,INADR,MAXCNT,LRCNM,HRCNM,ERR .MCALL LDFDB$,CMOV$W,ERR$ LDFDB$ FDBW CMOV$W INADR,F.URBD+2 CMOV$W MAXCNT,F.URBD, CMOV$W LRCNM,F.RCNM+2 CMOV$W HRCNM,F.RCNM .GLOBL .GET JSR PC,.GET ERR$ ERR$ .ENDM GET$RX " .MACRO GET$S FDB,INADR,MAXCNT,ERR .MCALL LDFDB$,CMOV$W,ERR$ LDFDB$ FDBI CMOV$W INADR,F.URBD+2 CMOV$W MAXCNT,F.URBDL .GLOBL .GETSQ JSR PC,.GETSQ ERR$ ERR .ENDM GET$SX " .MACRO PUT$ FDB,OUTADR,OUTCNT,ERR .MCALL LDFDB$,CMOV$W,ERR$ LDFDB$ FDBD CMOV$W OUTADR,F.NRBD+2 CMOV$W OUTCNT,F.NRBDR .GLOBL .PUT JSR PC,.PUT ERR$ ERR2 .ENDM PUT$CX / .MACRO PUT$R FDB,OUTADR,OUTCNT,LRCNM,HRCNM,ERRG .MCALL LDFDB$,CMOV$W,ERR$ LDFDB$ FDBR CMOV$W OUTADR,F.NRBD+2R CMOV$W OUTCNT,F.NRBDT CMOV$W LRCNM,F.RCNM+2 CMOV$W HRCNM,F.RCNM .GLOBL .PUT JSR PC,.PUT ERR$ ERRT .ENDM PUT$RX # .MACRO PUT$S FDB,OUTADR,OUTCNT,ERR .MCALL LDFDB$,CMOV$W,ERR$ LDFDB$ FDBU CMOV$W OUTADR,F.NRBD+2C CMOV$W OUTCNT,F.NRBDD .GLOBL .PUTSQ JSR PC,.PUTSQ ERR$ ERRF .ENDM PUT$SX  .MACRO DELET$ FDB,ERR .MCALL LDFDB$,ERR$ LDFDB$ FDB$ .GLOBL .DELET JSR PC,.DELET ERR$ ERRL .ENDM DELET$,X  .MACRO TRUNC$ FDB,ERR .MCALL LDFDB$,ERR$N LDFDB$ FDB  .GLOBL .TRUNC JSR PC,.TRUNC ERR$ ERRB .ENDM TRUNC$,RX  .MACRO FINIT$ .GLOBL .FINIT JSR PC,.FINIT .ENDM FINIT$,0X " .MACRO FSRSZ$ NFILES,BFSPAC,PSECT .MCALL BDOFF$,DEF$L .IF NDF,S.BFHDB BDOFF$ DEF$NT DEF$L S.BFHDT .ENDC .GLOBL .FSRCB .PSECT $$FSR1,GBL,OVR,D .IF NB, .BLKB NFILES*S.BFHD+B .IFF .BLKB NFILES*T .ENDC .PSECT PSECTL .ENDM FSRSZ$fX  .MACRO FDBDF$ .MCALL FDBSZ$ FDBSZ$B ...PC1=.L .BLKB S.FDB .ENDM FDBDF$EX ' .MACRO FDAT$A RTYP,RATT,RSIZ,CNTG,ALOC .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$L, CBYTE$ ,F.RTYPA CBYTE$ ,F.RATTC CWORD$ ,F.RSIZD CWORD$ ,F.CNTG CWORD$ ,F.ALOCS .ENDM FDAT$AX  .MACRO FDRC$A RACC,URBA,URBS, .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$LF CBYTE$ ,F.RACCH CWORD$ ,F.URBD+00TADATADATADATADATADATADATADATADATA2  CWORD$ ,F.URBD .ENDM FDRC$AX ( .MACRO FDOP$A LUN,FNPT,DFNB,FACC,FACTRL .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$L. CBYTE$ ,F.LUNT CWORD$ ,F.DSPTL CWORD$ ,F.DFNB CBYTE$ ,F.FACC  CWORD$ ,F.ACTLR .ENDM FDOP$ACX ! .MACRO FDBF$A EFN,OVBS,MBCT,MBFG  .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$L CBYTE$ ,F.EFNC CWORD$ ,F.OVBSD CBYTE$ ,F.MBCTO CBYTE$ ,F.MBFGC .ENDM FDBF$AOX , .MACRO FDBK$A BKAD,BKSZ,BKVB,BKEF,BKST,BKDN .MCALL FDOFF$,CBYTE$,CWORD$ FDOFF$ DEF$LF CWORD$ ,F.BKDS+2$ CWORD$ ,F.BKDS  CWORD$ ,F.BKVB+2U CBYTE$ ,F.BKEFP CWORD$ ,F.BKSTN CWORD$ ,F.BKDNC .ENDM FDBK$ACX + .MACRO FDAT$R FDB,RTYP,RATT,RSIZ,CNTG,ALOCE .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDBW CMOV$B RTYP,F.RTYP CMOV$B RATT,F.RATT CMOV$W RSIZ,F.RSIZD CMOV$W CNTG,F.CNTGC CMOV$W ALOC,F.ALOCM .ENDM FDAT$RBX ! .MACRO FDRC$R FDB,RACC,URBA,URBS, .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDB$ CMOV$B RACC,F.RACCO CMOV$W URBA,F.URBD+2C CMOV$W URBS,F.URBD .ENDM FDRC$RFX , .MACRO FDOP$R FDB,LUN,FNPT,DFNB,FACC,FACTRL .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDB CMOV$B LUN,F.LUNT CMOV$W FNPT,F.DSPT, CMOV$W DFNB,F.DFNBD CMOV$B FACC,F.FACCL CMOV$W FACTRL,F.ACTLP .ENDM FDOP$R$X % .MACRO FDBF$R FDB,EFN,OVBS,MBCT,MBFGC .MCALL LDFDB$,CMOV$W,CMOV$B LDFDB$ FDB CMOV$B EFN,F.EFNR CMOV$W OVBS,F.OVBSA CMOV$B MBCT,F.MBCT$ CMOV$B MBFG,F.MBFGB .ENDM FDBF$R X 0 .MACRO FDBK$R FDB,BKAD,BKSZ,BKVB,BKEF,BKST,BKDN# .MCALL LDFDB$,CMOV$B,CMOV$W,CMOV$2P LDFDB$ FDBP CMOV$W BKAD,F.BKDS+2C CMOV$W BKSZ,F.BKDSV CMOV$2 BKVB,F.BKVBO CMOV$B BKEF,F.BKEF$ CMOV$W BKST,F.BKST$ CMOV$W BKDN,F.BKDN$ .ENDM FDBK$R~X  .MACRO FDBSZ$ .IIF DF,S.FDB,.MEXIT .MCALL FDOFF$,DEF$L FDOFF$ DEF$NC DEF$L S.FDB .ENDM FDBSZ$BRX  .MACRO FDOF$L .MCALL FDOFF$ FDOFF$ DEF$L .ENDM FDOF$LCX + .MACRO NMBLK$ FNAME,FTYPE,VERS,DEVNAM,UNITD .MCALL RAD50$,CWORD$,NBOFF$ NBOFF$ DEF$LL .IIF NDF,...PC1,...PC1=0$ ...PC3=...PC1 ...PC1=.K .=...PC1+N.FNAM RAD50$ ,S.FNAM/2 .=...PC1+N.FTYP RAD50$ ,S.FTYP/2 CWORD$ ,N.FVERK .IF NB,DEVNAM .=...PC1+N.DVNM .WORD "DEVNAM .ENDC CWORD$ ,N.UNITI .=...PC1+S.FNB$ ...PC1=...PC3 .ENDM NMBLK$SRX  .MACRO NBOF$L .MCALL NBOFF$ NBOFF$ DEF$LD .ENDM NBOF$LEX  .MACRO LDFDB$ FDB .IIF B,FDB,.MEXIT .NTYPE PAR$$$,FDB .IIF EQ,PAR$$$,.MEXIT MOV FDB,R0 .ENDM LDFDB$X  .MACRO CMOV$W VAR,OFFSET. .IF IDN,<#0>,. CLR OFFSET(R0)A .MEXITM .ENDC .IIF NB,VAR, MOV VAR,OFFSET(R0) .ENDM CMOV$WVX  .MACRO CMOV$B VAR,OFFSETM .IF IDN,<#0>,N CLRB OFFSET(R0) .MEXIT .ENDC! .IIF NB,VAR, MOVB VAR,OFFSET(R0)B .ENDM CMOV$BX  .MACRO CMOV$2 VAR,OFFSETF .IIF B,VAR,.MEXIT MOV VAR,-(SP) MOV @(SP),OFFSET(R0)F ADD #2,(SP) MOV @(SP)+,OFFSET+2(R0) .ENDM CMOV$2RX  .MACRO CBYTE$ VAR,OFFSET .IF NB,VAR ...PC2=.V .=...PC1+OFFSET .BYTE VAR .=...PC2R .ENDC .ENDM CBYTE$X  .MACRO CWORD$ VAR,OFFSETN .IF NB,VAR ...PC2=. .=...PC1+OFFSET .WORD VAR .=...PC2< .ENDC .ENDM CWORD$T"X & .MACRO CSTRG$ VAR,OFFSET,MAXLG,FILL=0 .IF NB, .NCHR ...PC3, .IF GE MAXLG-...PC3F ...PC2=., .=...PC1+OFFSET .ASCII ^VAR^F .REPT MAXLG-...PC3 .BYTE FILLS .ENDR .=...PC2R .IFF .ERROR .ENDCB .ENDC .ENDM CSTRG$NZX  .MACRO CGET$B OFFSET,VARV" .IIF NB MOVB OFFSET(R0),VAR .ENDMZX  .MACRO CGET$W OFFSET,VARF! .IIF NB MOV OFFSET(R0),VARS .ENDMDX  .MACRO FCSBT$ GLOBL .MCALL DEFIN$ ...GBL=0R" .IIF IDN,,,...GBL=1 DEFIN$ FD.FTN,1 DEFIN$ FD.CR,2 DEFIN$ FD.P00O F &RN,4 DEFIN$ FD.BLK,10 DEFIN$ FD.RWM,1 DEFIN$ FD.RAN,2 DEFIN$ FD.PLC,4 DEFIN$ FD.INS,10L DEFIN$ FD.REC,1 DEFIN$ FD.CCL,2 DEFIN$ FD.TTY,4 DEFIN$ FD.DIR,10C DEFIN$ FD.SDI,20 DEFIN$ FD.SQD,40B DEFIN$ FD.ISP,2000B DEFIN$ FD.OSP,4000) DEFIN$ FD.PSE,10000 DEFIN$ FD.COM,20000 DEFIN$ FD.F11,40000 DEFIN$ FD.MNT,100000, DEFIN$ NB.VER,1 DEFIN$ NB.TYP,2 DEFIN$ NB.NAM,4 DEFIN$ NB.SVR,10. DEFIN$ NB.STP,20G DEFIN$ NB.SNM,40L DEFIN$ NB.DIR,100 DEFIN$ NB.DEV,200 DEFIN$ NB.SD1,400 DEFIN$ NB.SD2,1000F DEFIN$ NB.ANS,2000  DEFIN$ NB.WCH,4000P DEFIN$ R.FIX,1I DEFIN$ R.VAR,2D DEFIN$ R.SEQ,3D DEFIN$ R.STM,4D DEFIN$ FA.RD,1D DEFIN$ FA.WRT,2 DEFIN$ FA.EXT,4 DEFIN$ FA.CRE,10N DEFIN$ FA.TMP,20F DEFIN$ FA.SHR,40D DEFIN$ FA.APD,100 DEFIN$ FA.NSP,100 DEFIN$ FO.RD,FA.RD0# DEFIN$ FO.WRT,FA.WRT!FA.EXT!FA.CREV# DEFIN$ FO.APD,FA.WRT!FA.EXT!FA.APDM DEFIN$ FO.MFY,FA.WRT DEFIN$ FO.UPD,FA.WRT!FA.EXT DEFIN$ FA.ENB,100000R DEFIN$ FA.SEQ,40000 DEFIN$ FA.WCK,20000 DEFIN$ FA.POS,10000 DEFIN$ FA.RWD,4000  DEFIN$ FA.EXL,4000P DEFIN$ FA.LKL,2000D DEFIN$ FA.EXC,2000N DEFIN$ FA.DLK,1000. DEFIN$ CH.AND,1 DEFIN$ FD.RAH,1 DEFIN$ FD.WBH,2 DEFIN$ FL.AEX,1 DEFIN$ FF.RWD,1 DEFIN$ FF.POE,2 DEFIN$ FF.NV,3F DEFIN$ FF.SPC,4 DEFIN$ FF.CHR,5 DEFIN$ FF.RWF,6 DEFIN$ FT.ANI,1 DEFIN$ FT.BBF,2 DEFIN$ FT.MBF,4 .MACRO FCSBT$ ARG .ENDM FCSBT$O .ENDM FCSBT$DfX  .MACRO DEFIN$ SYM,VAL .IIF EQ,...GBL-1,.GLOBL SYM SYM=^O .ENDM DEFIN$NX  .MACRO FDOFF$ OFFSETF .MCALL OFFSET,DEF$I,NBOFF$L NBOFF$ OFFSET DEF$I 0 OFFSET F.RTYP,1 OFFSET F.RATT,1 OFFSET F.RSIZ,2 OFFSET F.HIBK,4 OFFSET F.EFBK,4 OFFSET F.FFBY,2 OFFSET S.FATT OFFSET F.RACC,1 OFFSET F.RCTL,1 OFFSET F.BKDS OFFSET F.URBD,4 OFFSET F.BKST OFFSET F.NRBD,2 OFFSET F.BKDN OFFSET ,2 OFFSET F.OVBS OFFSET F.NREC,2 OFFSET F.EOBB,2 OFFSET F.CNTG OFFSET F.RCNM,2 OFFSET F.STBK OFFSET ,2 OFFSET F.ALOC,2 OFFSET F.LUN,1M OFFSET F.FACC,1 OFFSET F.DSPT,2 OFFSET F.DFNB,2 OFFSET F.BKEF OFFSET F.EFN,1F OFFSET F.BKP1,1 OFFSET F.ERR,21 OFFSET F.MBCT,1 OFFSET F.MBC1,1 OFFSET F.MBFG,1 OFFSET F.BGBC,1 OFFSET F.VBSZ,2 OFFSET F.BBFS,2 OFFSET F.BKVB OFFSET F.VBN,41 OFFSET F.BDB,2 OFFSET F.EXT4 OFFSET F.SPDV,2 OFFSET F.FLG2 OFFSET F.SPUN,1 OFFSET F.CHR,1E OFFSET F.ACTL,2 OFFSET F.SEQN,2 OFFSET F.FNB,S.FNBN! .IIF IDN,,,.MEXITK .IF IDN,,C* .GLOBL F.FNAM,F.FTYP,F.FVER,F.DVNM,F.UNIT .ENDC F.FNAM=N.FNAM+F.FNB F.FTYP=N.FTYP+F.FNB F.FVER=N.FVER+F.FNB F.DVNM=N.DVNM+F.FNB F.UNIT=N.UNIT+F.FNB OFFSET S.FDB1 DEF$I 0 OFFSET FX.LEN,2 OFFSET FX.DMX,1 OFFSET FX.DLN,1 OFFSET FX.DIR,2 .MACRO FDOFF$ ARG .ENDM FDOFF$ .ENDM FDOFF$EX  .MACRO BDOFF$ OFFSET2 .MCALL OFFSET,DEF$I DEF$I 0 OFFSET ,4 OFFSET B.VBN,4E OFFSET B.BBFS,2 OFFSET B.NXBD,2 OFFSET ,1 OFFSET B.BFST,1 OFFSET ,2 OFFSET S.BFHD! .IIF IDN,,,.MEXITD .MACRO BDOFF$ ARG .ENDM BDOFF$F .ENDM BDOFF$.vX  .MACRO NBOFF$ OFFSET= .MCALL OFFSET,DEF$I,DEF$L DEF$I 0 OFFSET S.FNAM OFFSET S.FTYP OFFSET S.FNTY OFFSET S.FNBW OFFSET S.ANM1 OFFSET S.ANM2 S.FNAM=6F S.FTYP=2N S.ANM1=12.. S.ANM2=5. S.FNTY=/2  OFFSET N.FID,2. OFFSET N.ANM1,4 OFFSET N.FNAM,S.FNAM OFFSET N.FTYP,S.FTYPE OFFSET N.FVER,2 OFFSET S.NFEN DEF$L S.NFEN  OFFSET N.STAT,2 OFFSET N.NEXT,2 OFFSET N.ANM2 OFFSET N.DID,6I OFFSET N.DVNM,2 OFFSET N.UNIT,2 OFFSET S.FNBF DEF$L S.FNB S.FNBW=S.FNB/2B! .IIF IDN,,,.MEXITD .MACRO NBOFF$ ARG .ENDM NBOFF$F .ENDM NBOFF$F&X  .MACRO FSROF$ OFFSET1 .MCALL OFFSET,DEF$I,DEF$L DEF$I 0 OFFSET ,4 OFFSET A.BFSR,2 OFFSET A.EFSR,2 OFFSET A.OWUI,2 OFFSET A.FIPR,2 OFFSET A.DPB,24.. OFFSET A.IOST,41 OFFSET A.DFDR,26. ;DEFAULT DIRECTORY INFORMATIONN;D OFFSET A.DFBC,2 OFFSET A.DFUI,2 OFFSET A.JUMP,4 OFFSE00 TADATADATADATADATADATADATADATADATAT A.MODE,2 OFFSET S.FSR2 DEF$L S.FSR2O DEF$I 0 OFFSET ,16.& OFFSET D.DFID,6 ;DEFAULT DIRECTORY ID OFFSET D.DFDV,2 OFFSET D.DFUN,2! .IIF IDN,,,.MEXIT .MACRO FSROF$ ARG .ENDM FSROF$. .ENDM FSROF$FX  .MACRO FDSOF$ OFFSET0 .MCALL OFFSET,DEF$I,DEF$L DEF$I 0 OFFSET N.DEVD,4 OFFSET N.DIRD,4 OFFSET N.FNMD,4 OFFSET S.FIDS .IF IDN,,F DEF$L S.FIDS  .MEXIT  .ENDC .MACRO FDSOF$ ARG .ENDM FDSOF$ .ENDM FDSOF$ErX  .MACRO DEF$G VAR,SIZS .MCALL DEF$LR .IIF NB,VAR,.GLOBL VAR. DEF$L VAR,SIZ .ENDM DEF$GVX  .MACRO DEF$N VAR,SIZF .MCALL DEF$L, DEF$L ,SIZE .ENDM DEF$NFX  .MACRO DEF$I IVAL ...TPC=^O .ENDM DEF$IX  .MACRO DEF$L SYM,SIZI .IF NB,SYMI SYM=^O<...TPC>D .ENDC .IF NB,SIZ ...TPC=^O<...TPC+SIZ> .ENDC .ENDM DEF$LX  .MACRO RAD50$ STRING,MAXWRD ...PC2=.D .RAD50 /STRING/ .IF GT,<.-...PC2>-^O<2*MAXWRD>3 .ERROR ;STRING RAD50 - STRING TOO LONG, TRUNCATED  .=^O<...PC2+<2*MAXWRD>> .MEXIT .ENDC .REPT ^O/2>> .WORD 0 .ENDR .ENDM RAD50$FXX  .MACRO EGCMI$ .MACRO GCMLD$ GLOB  .ASECT. .=0G.MODE: .BLKW 2F GE.COM = 1 GE.IND = 2R GE.CLO = 4I GE.LC = 10 GE.CON = 20 GE.XXX = 40 GE.MUL = 100 GE.LIB = 200P GE.MCR = 400 GE.IEF = 1000 GE.RWD = 2000 GE.FOP = 4000 GE.RPR = 10000. GE.SDE = 20000S GE.SER = 40000. GE.SLB = 100000 ; G2.XXX = 1G.IMPS: .BLKB 1SG.OVBC: .BLKB 1RG.FILE: .BLKW 1.G.ERR: .BLKB 1 GE.IOR = -1 GE.OPR = -2 GE.BIF = -3 GE.MDE = -4 GE.CMD = -5 GE.VRS = -6 GE.EOF = -10. GE.RBG = -40.G.CDEP: .BLKB 1LG.FUNC: .BLKB 1.G.MAXD: .BLKB 1BG.TERM: .BLKB 1 G.TIOS: .BLKB 1G.TIOP: .BLKW 1.G.PRMP: .BLKW 2 G.CMLD: .BLKW 20G.FRAG: .BLKW 2G.BUFF: .BLKW 2GG.DFPR: .BLKB 6.G.CSIB: .BLKW 1WG.PPTR: .BLKW 1 G.SWIT: .BLKW 1 G.LBMN: .BLKB 6 G.FQFN: .BLKW 1 G.DDIR: .BLKW 2 G.ISIZ:  .ASECT1 .=0G.SUSR: .BLKW 1VG.SDID: .BLKW 5IG.SVER: .BLKW 1RG.STYP: .BLKW 1OG.SNAM: .BLKW 3 G.SFID: .BLKW 3G.SRAT: .BLKB 16.MG.SPOS: .BLKW 3 G.SBST: .BLKW 1.G.SRWP: .BLKW 3G.PLFS:B .PSECT. .MACRO GCMLD$ X .ENDM .ENDMN .MACRO ECMLB$ FILE,LUN=1,MAXD=3,PRMP=< >,BFAD,BFSZ=80.,PDL,SWIT,?GF,?GB,?GS# .MCALL GCMLD$,CWORD$,CBYTE$,CSTRG$B .MCALL CSI$SW,CSI$SV,CSI$ND .IIF NDF FCS$$ FCS$$=1K GCMLD$W ...PC1=. .BLKB G.ISIZ  CBYTE$ ,G.IMPSD, CWORD$ ,G.MODE CBYTE$ ,G.MAXDK CBYTE$ <15>,G.DFPRR CBYTE$ <12>,G.DFPR+1N CSTRG$ ,G.DFPR+2,3  CBYTE$ <-1>,G.CDEPM CBYTE$ ,G.TIOST CWORD$ <0>,G.TIOP CWORD$ <0>,G.FQFN CBYTE$ <0>,G.OVBC .IF B  ...TMP = <*G.PLFS>,...PDL: .BLKB ...TMP CWORD$ <...PDL+...TMP>,G.PPTR .IFF. .ENDC .IF B TGB: .BLKB BFSZ+2 CWORD$ ,G.BUFF+2 .IFFD CWORD$ ,G.BUFF+2W .ENDC CWORD$ ,G.BUFF+0Y .IF B I...SWI: GCMSW$ ...PC1,GS CWORD$ <...SWI>,G.SWIT .IFF  CWORD$ ,G.SWIT  .ENDC .IF NB  CWORD$ ,G.FILEP .IFFD CWORD$ ,G.FILE> .IF DF FCS$$E* .MCALL FDBDF$,FDAT$A,FDOP$A,NMBLK$,FDBF$A GF: FDBDF$ FDAT$A 2  FDOP$A LUN,,...FNAD FDBF$A ,,1 % CBYTE$ ,F.RCTLP...FNA: NMBLK$ CMI,CMD .IFFR .IF DF RMS$$C .MCALL FAB$B,RAB$B,NAM$B GF: .WORD 1,...RAB .WORD 1,...FABD ...RAB: RAB$B> R$FAB ...FABN R$RAC RB$SEQS RAB$E ...FAB: FAB$BW F$DNA ...DNA+3S F$DNS 7 F$FNA ...FNA. F$FAC FB$GET. F$LCH LUN F$NAM ...NAM F$ORG FB$SEQN F$RAT 0 F$RFM FB$VARG FAB$E ...NAM: NAM$B N$ESS 34. NAM$E...DNA: .ASCII /SY:CMI.CMD/$...FNA: .ASCII /CMI/ .BLKB 29. .IFF$ .ERRORO .ENDC .ENDC .ENDC .ENDM6 .MACRO GCMLB$ MAXD=1,PRMP=< >,UBUF,LUN,PDL,SIZE=80. .MCALL ECMLB$$ ECMLB$ ,LUN,MAXD,PRMP,UBUF,SIZE,PDL .ENDM .MACRO GCMSW$ GCMB,?VAL .MCALL CSI$SW,CSI$SV,CSI$ND CSI$SW LB,GE.SLB,,SET,,VALR CSI$SW ER,GE.SER,,SET,NEG CSI$SW DE,GE.SDE,,CLEAR,N00O F &EG CSI$NDFVAL: CSI$SV ASCII,GCMB+G.LBMN,6. CSI$NDF .ENDM .MACRO GCML$ GCMB,PRAD,PRLN .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LN LDR0$ GCMB  CLRB G.FUNC(R0) .IF NB  MOV PRLN,G.PRMP(R0) .IF B O .ERROR .IFF MOV PRAD,G.PRMP+2(R0) .ENDC .IFFR CLR G.PRMP(R0), .ENDC .GLOBL $GCMLC JSR PC,$GCMLL .ENDM .MACRO RCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LC LDR0$ GCMBI MOVB #1,G.FUNC(R0)B .GLOBL $GCMLA JSR PC,$GCMLG .ENDM .MACRO CCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$LS LDR0$ GCMBG MOVB #2,G.FUNC(R0). .GLOBL $GCMLC JSR PC,$GCMLP .ENDM .MACRO MCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L. LDR0$ GCMBF MOVB #3,G.FUNC(R0), .GLOBL $GCMLF JSR PC,$GCMLR .ENDM .MACRO FCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L( LDR0$ GCMB MOVB #4,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO LCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L1 LDR0$ GCMB MOVB #5,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO ECML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L2 LDR0$ GCMB MOVB #6,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO DCML$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L3 LDR0$ GCMB MOVB #7,G.FUNC(R0)P .GLOBL $GCMLM JSR PC,$GCML  .ENDM .MACRO GCMM$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L4 LDR0$ GCMB MOV G.FILE(R0),R0 .GLOBL .MARKN JSR PC,.MARKL .ENDM .MACRO GCMP$ GCMB .MCALL GCMLD$,LDR0$ GCMLD$ DEF$L LDR0$ GCMBP MOV G.FILE(R0),R0 .GLOBL .POINT JSR PC,.POINT .ENDM, .MACRO CMSET$ GCMB,TSUB,TVFC,FQFN,TTMO,OVBC" .MCALL LDR0$,CMOV$B,CMOV$W,GCMLD$ GCMLD$ DEF$LP LDR0$ GCMBN CMOV$B TSUB,G.TIOSB CMOV$B TVFC,G.TIOP+1 CMOV$B TTMO,G.TIOP+0G CMOV$W FQFN,G.FQFN( CMOV$B OVBC,G.OVBC .ENDM+ .MACRO CMGET$ GCMB,TERM,FILE,FQFN,OVBC,ERRC" .MCALL LDR0$,CGET$B,CGET$W,GCMLD$ GCMLD$ DEF$LL LDR0$ GCMBL CGET$B G.TERM,TERMM CGET$W G.FILE,FILE  CGET$B G.ERR,ERR  CGET$W G.FQFN,FQFN  CGET$B G.OVBC,OVBC .ENDM .MACRO EGCMI$ .ENDM .ENDM PC,.POI<0X   &Z3siWi:3i4fjF kF VNkr +kr (I .F %I 2&I (I PdI (I :I `I XI F .F 5F qF F e^I I pF I(ITII,l6`TltI0 n.}0Cp(kr_MrfMr%+kr})WF)WF))XF)XF)ZF)ZF, F-DF-EF.F.F.F.F2F2.F2pF2F2F2F2ًF3^sF3sF:Kn._MsfMs{m`yrX2+krd6&Id&Id(ItpF!!kr'!%*6!}[!}q!mq!ym #n~n.#}n.#Oqn`#o #""F#wF# zF#F#F#.F#F#yF#yF#N&F#yF#v~F%I%I%I%r!I%#I% #I%#I%LI%ZI%kfI% qI%tI%wI%xI%I%CI%I<&kI<&DI<&%I<&I<&zI<&(I<&w*I<&:I<&H;I<&SI<&`I<&eI<&fI<&fI<&pI<&pI<&KqI<&%tI<&iwI<&lyI<&9I<&II&}n.c&Fc&Fc&Fc&L Fc&Fc&Fc&Fc&Fc&Fc&Fc&;Fc&Fc&Fc&Fc&Fc&Fc&~Fc&Fc& Fc&"Fc&"Fc&#Fc&#Fc&#Fc&4&Fc&'Fc&,Fc&";Fc&|KFc&jLFc&_MFc&MFc&NFc&SFc&TFc&UFc&WFc&XFc& XFc&XFc&gYFc&ZFc&b^Fc&^Fc&dFc&eFc&eFc&fFc&dfFc&fFc&9gFc&pFc&pFc&2qFc&grF00TADATADATADATADATADATADATADATADATAc&krFc&sFc&sFc&wwFc&xFc&yFc&yFc&hzFc&}Fc&Fc&Fc&Fc&Fc&Fc&Fc&RFc& Fc&#Fc&Fp&&I&ZI&]fI&tI&tI&CyI|' I'do'eo'I'IRI' qI'ąI'I(oD(yI( I(QI\)zI\)I\) I\)KI)I)z)[MI) I)PI),I)nEI)sEI)EI)_GI)GI)2HI)4I)ZI)p z)'I)TyI)I)0F)%I)'I)^I)PsI) I)I)%I)LI)WI)WI)I)ZI)8I)xz)` z)pI) I) I)w I)pI)KqI)I)%z)5z)I)t I)I)I)BxI)I)!I)dI)VgI)[}I)p z)z)z)XI)pI)I)It*St*St*St*GSt*I"St*3St*NSt*rSt*sSt*sSt*sSt*zSt*St*St*bSt*։S*4S*S*S*S* S*8&S*@,S* XS*@wS*wST,KFT,FT,FT,F,q.,1V,t,VNq,QqP,:dr,Oqp,u~4,r,F-p.QV#0F#0F#0F#0F#09F#0DF#0LF#0MF#0vF#0F#0)F#04F#0F#0F#0TF#0UF#0F#0F#0xF#08F#08F#08F#08F#08F#08F#08F#08F#0:F#0k;F#0;F#0;F,0F,0F,0σF,02F,05F,0qF,0F-0F-01F00pF00qF00sF00sF00sF20,F20,F20,-F20.F20.F408F408F408F408F409F40Q:F40W:F40;;F40:<F40wF40uwF40wF40wF40xF40xF40CyF40NyF40RyF40yF40yF40yF40yF401zF40wS:KwS:iwS:owS:wS:wS:xS:xS:xS:ByS:FyS:WyS:yS:yS:yS:yS:azS:zS:}S:S:S:S:S:+S:|S:AS:iS:yS:S:S:$S:CS:dS:hS:S:S:S:S:S:ۑS:S:BS:DS:S:S:2S:S:1S:B;KS;@jS;vS;wS;LS;S@;(l`T;ST;8ST;ST;ST;ST;ST;7ST;!ST;;"ST;I"ST;`ST;dST;4fST;$qST;sST;wST;DyST; zST;zST;*}ST;ST;ST;3ST;ST;SKlOpzxQkrzQDur|S]uT|(FT(FT(FT(FTFTFTLFTQFUQdFU-}FU}FUFUVFU FU+}FU,}FUV}FUqFWIWIWzIWWIWwIWwIWxIWyIWBzIWIWZIW@IYl`[K[YI[YI[o["I[8I[;I[}[I[L [8I[WI[YI[I[ZI[`[Kr[#I[y[[[ z[<}I[\}[[XIeBf &vLfrvLffffffffgxfkpkZSn]Fn^Fn^Fn_FnL`FnR`Fn`F q}  q_Mt qfMtIqxhIq|Kq yRKq^yRYqy[qMzsryr%s@8rs]Fs^Fs`FUs%z\cs}z\st FsFsFs#FsQFs,XFs`XFsLqFs}FsFs}[t{8F[tF[tF[tFtwFtyFtFt Ft{S?{0S?{pS?{S?{S?{pS?{NS?{@S@{0S@{NS@{NSA{0SA{SA{SB{NSC{SD{0SE{SE{SG{S}S}S}S}4S}yS}S} S}H S} S} S}kS}S}>S}S}S}S}S}S}S}S}S}S}!S}I"S}8&S}](S}(S}2S}2S}T3S}3S}5S}8S}O:S}:S}D;S}KS}MS}vNS}xQS}QS}RS}WS}KXS}:YS}`YS}ZS}ZS}`S}:dS}fS}fS}(gS}iS}jS}pS}UqS}qS}sS}HwS}JwS}wS}wS}xS}xS}xS}xS}yS}yS}zS}8}S}V}S}]}S}c}S}~S}S}S}S00+TADATADATADATADATADATADATADATADATA}0S}փS}׃S}؃S}كS}ڃS}ۃS}܃S}݃S}ރS}߃S}|S},S}S}S}S}@n. ~L S ~ S ~GS ~I"S ~YS ~pS ~ qS ~)qS ~[qS ~brS ~urS ~rS ~rS ~sS ~sS ~sS ~sS ~zS ~S ~5S ~S ~S ~$S ~:S ~S ~ۑS ~{S ~^S_MsfMsa |Sa |SbSSd}Sk |Sl8 Sl Sl Sl Sl Sl+ SlSlQ\SllSllSllSlSlSlSlSlSlSlSsSuVYSuySuySuySuySuySvӁSvSvSvSvSvSvSvSvSvSvSvSvSF6FL F F F`qFwF7xFAyFNyFyFyFFFCFCFCFCFC,FCQFCSFC\XFC|ZFC fFCfFCUqFCrFCsFCxFCkzFkFkFkFk'FkKFkTFkfFkfFkxF'%}krLdF.FSSvS|@~>>i`` 8Tō,ōwȍ8 ȍȍ`ʍ8TˍsˍH}w~n.`~`~ÐHXNԒFԒFԒFԒ7!FԒ#FԒxQFԒWFԒWFԒqFԒLqFԒ[qFԒVsFԒ;xFԒFԒ}FԒFԒRF:p.F. F.8F.KF. LF.^F.qF.BxF.yF.yF4wF#S#֯S#S#S-S-'S-(S-?S-S-[S-S5|S5S5S5^S5fS5ٱS5$S55S5QSvw?jw}} Ա2&E Ա&E Ա(E ձDձSFձWDnֱfaE oF|0 0# 02XFD`;G2&E &E (E faE e;H*Ѳ:Iܲ""@ܲ#ܲ#ܲ`Fܲ)dܲGdܲ@waK3ba[M3baVNb3PbG3c2 7cIqncd?!4\d)&>d85d85d85d;6dȱ e&7e&7eM7deM7deM7deM7deZe$3b003O F &e?3bf4ft:fy::gg<gdgdgdggFg,FgCgRggdggg};iIm&5mlE<hmK5mo<p# ?ph=Lpl>|pJ,@pK,@.pZpiw>pvw?jpwp|:dt :diw>:dvw?j:dw?:dwep@ev@.eBDfT@afZkf`;AkfKqBDf; B`fvC<f]^ft\g\ghykzS q}  q_Mt2qWC7q7qqCIqDVqMDn\qsryr%s@8r4sUs%z\s"&VtL,tyE $t_3ukM3u^3u_3uIq4u%!4u;;"4uH;5uZ@5up5u%6u" ,6ut:X7u`"9uXL>u>uzN>u>u#d>uu'B>uU(>uT[>uN`>uIqz>uTq>u!t>uAy,>uX>u>u%?ud@u# z@u`BuW!nBuq!Bu"BuZCuzDusEuddGuv vqVvXuF|vP9wKrwrwdPwtN7xs$x+{8y{AyhNy TSyHTy`y%|ty%y]jydBy@_MsFKqF!! &&!p:Ld `}`(}XS|@~>h~GHGYHtwB}Hd (_IaI9}ƭZ(#>ƭD  D"0yyphyyX  =J; f =Do@\D@  D"0\;Ph  D"`w  ҥ[, &]  5 s  D wo^\DX  B; v D  D"0s.hsh  D"&fe    : $ L ( La Ta  @ `W!ZW!AW!9W!0@|X  :" Kq D  D"02bh  D"6141612epl2l0pxX  :J+ D  D"0bGh  D"8e2 ~X  jy[M Dq:@i@o@  D"0e$h<e?hhaKh(a[Mh  D"0,0, f 톇,, w      .% eB UBoniN|5UU plp & NeՀ)*$q:|X  B%S D  D"0 4}h fh  D"*X  R DmlE@eZ@rS@  D"0 d?!h  D"$ f &* *r00KTADATADATADATADATADATADATADATADATASmlEeZX  be" D`@o@d?!@f@s}@  D"0:Kh  D">w * 8B pB  0 B o`$s}2d?!:fX  ӭJl' ӭDd8@v@  D"0 d8h  D"$fe 1 wv"d8X  =Zn X =Dft:@  D"0jd8hd8hmKh.m&hP  D"n1 z   1 1 1 1 1 1 DEee $ $ &ft:X  eZz' eDs.@; @;P@d8@  D"0Fd;h  D"J&  Be  1 w*;P$; 2s.:d8X  ZW D`@o@d?!@aVN@  D"04'h  D"8w *eB 8  oaVN"`0d?!X  R0!# D  D"0eMheMheMheMh  D" X  R!  D  D"0le&he&hc2 h\s2 h.  D"p *) l0, *) $ )*)0,40,6 lX >:#L>D  D"0eh  D"X  -Z#t! -De?@o@ft:@s}@  D"0H4h  D"Lw *f f ! fP ŀ)Bos}ft::e?X  =j &( =Ds@  D"0yyLph &hByy y y((  BBFF y X 4έz &@4έD@`@:@}s@ձS@}@@@e;@h&@ձ@h'@ X@zձW@X@e@,l@,z@}@4@ 8r@֯}@'@o s^X >ƭB(>ƭD  D"0yuhX  B,h DaVN@  D"0fg}h  D"j* )fff f f1    1  aVNX  R,l Dpl@g}@o@  D"0,lh  D"w ewo pl g}X  R,z Dg}@o@d;@  D"0,zh  D"w ewew.o d; g}d; g}X  JRK Dq:@i@  D"0mlEh  D" Mwiq:00SO F &X  :SKq D  D"0&moh  D"*  DP5R RRR X  RT DmlE@o@aVN@  D"0*lEh  D".w *eB 8  oaVN*mlE0X  =J:dh =Ds@; @  D"0phh  D"*Ge(  1 5&e  1-1- 111 sH; *|rrrrr X  J:dl Dph@d8@  D"0 plh  D"ewd8  phTX 4έb:diw4έDph@o@d;@  D"0d)&hbpiwh iwh  D"w *#   U@e   ew1  %,,!o>d;Nd;H Rph"|  $X  Z:dvw Do@aVN@\D@  D"0pvwh vwh  D"w *D !UqqC ӥ:  Ce   *o\\DtaVN|X  r:dw Dpiw@pvw@pw@o@aVN@  D"0<}sh p# h*s}h  D"@eB  8 $&w *   aVN&o0pvw6piw 8   ***X  Bev D  D"02pK,hskh(  D"6 8  ***X  bDfT DpZ@o@r,}@f@  D"0F 8rh0:h  D"Jw *) * w46l0o pZ.r,}2fX  Rkf`; Dd;@m @  D"0p(X  :vXu D  D"0oh  D" &ff X  J D`@f@  D"0"2Xh  D"& 8 !Հ)w*w`$fX  rKq DeZ@o@rS@aVN@ft:@  D"0,ձSh Xh֯}h  D"0w ww ww w8o aVNeZoaVN rS$o(aVN.ft:X  rh~ Ds@xk@s@4}@f@  D"0Zwh2wh"q:h   D"^0+1e  %p*w f( f)f sxk"s.f\4}X  RH Dw@w@o@  D"0`;h  D"w wwoww|X  :Y D  D"0wth  D",*1X  j} DrC@w@r@aK@o@s2 @  D"0Te;h  D"Xw $0,0w 46  )0406 0 *&o rCr s2 .aK4wX  Z(_ Ds@s@  D"0Vxkhxkhih>  D"Z8Ae f"( UCɗ+e$&% 8sDsX  Ra Dq:@i@o@  D"0Ѳ:h  D""w *D  woi q:X  z &, D)HN<&`H)H>[XH)^H<&%H WWH&CyH\)KH<&H(yH)nEHz)sEH<&KqHTH )EH([;H&{PH`[8HHWH&{Hd6&H%kfH%ZH@d&H'ąHz)H#)H4)H%H PdH :H )_GH))HWH)TyH$'IRH&{ZHWzH@'H)H0z)GH%wH@%xH [#H%CH )2HH4) H,)BxH) H-<&%tH<&9H `H$)[MH &H %HBz)pH<&pH<&pHWwH (H 2&H(d(HWwHt!H)w H.)H)PH8)KqH'HF[YHztw(@w BwDwFwHw&-H 6lF8sX 4=J@4=D X@K@  D"0'h  D" 8eB   XKX vz &yvD  :(}h:`hh4fahxGP}h\h@Ѳ:hX:Zh:h}h @hPz=B@=F\JN:R 8rV@Z`;^Ѳ:X^wwwwwwwwwwwwwwwwwwwwwԱ2&Ա& Ա(ֱfa2&&( fa$y(?T,GP}0wBvF;VNJ,lN,zR4V֯}Z X^ձS"^wwwwwww22XlE K'ձW:s{H$9KH}xH$9;H%{!H:GH H}D;H:qH:Hz:qH,wfH:"qH:&qH:&H:$qH:.qH:(qH$9YH}H&$9 H$9YH:WHP:a H$9YHz,w{H ~sH:TqH:RH$9H}HU$9ZZH:H :H:t H:qH:H8:H$9CfH ~Hz:H:H ~sH$9Z&H$9bH$9`&H ~H$9kH$9{H<H$9~ZH,wH:q!H $9ZH$9ZHz}`H`:-HA{0H $9ZH:x HvH;LH}4H ~sH:H:H wvH:!H:-H:}H`z}Hj$9[H$9'H$93H$9[H$9H$9H,wWH:H$91H$93gH:H:-H ~$H@:Hz5^HlH5fH :#"HuVYH}yHR}H;E{H?{pH$9rH$9&H}Hi:brH:crH$9fHzt*bH@$9H:vrH@t*H5ٱH w+H:rH}pHk |H:rH :rH :rH:rH0:2H:rH8z:rH} HD$9BH5$HlH55H}8}H%$9g'H$9n'H<_Ht*zH$9sH$9H$9H?{pHz ~:H:[KHkZH}qHV?{Ht*GH$9'H$9H$9H$9H$9 H}V}H9}H H>:sH :sHxz}]}HA}UqH6: sH:#H:sH }c}H@*@wH5QHw:dH:KH?{@H:KH$9H}H:} HSz:3H@:{3H:|sH }H<:sH`:sH*wH }H=:sH:sH:sH:sH0:sH ~HT;8Hz:sH:KHlH $9CH:KHH}!H :H$9VH$9XH ~ۑH:sHP$9|H:4H:tHT;wHz$9.H:-tH`:,dH:1H}|H :74HwHwH-[H}`YH :vH$9H$9H:n'Hl+ H#$98H$9H:owHzvӁH:H}HT:wHP:H:wHt*H }ZHX ƨz ]ƨD[@[Kr@[K@[}@[@o@ o0R h&h hFXh4 oV5ew  Bv    5Bw .o[([Kr2[F[}NR[KX tXz9axtXD @[Kr@[}@[@[@o@[`@ Kr4ɪ3qhɪ2qhɪ#qhZɪ;rhɪJrhɪKrh 4Twh4P t t tK0 Kr1 5  B5BUW/ - ',  wE5  [}<[\[}\|  wE5 E  W5  ,E @[ EWX 52 / & 4 &9 &9U3uE uUw [|5   uE uU5`AU & E& & E& De&fr[`` $̋"5 & & & & De&fH ̋E U6[`T)aw 6  w  e 1 w 0" , 0o4[F[KrJ[}N >X tXz9atXDs@[@[`@ Kr4ɪ3qhɪ2qhɪJrhɪKrh 4Bwh4 K0 Kr5  <5<UW) ' !  wE5   8[L|wE5 E  W5  ,E 0[ EWO ,) &  4 &9U3uE uUw5  [|  uE uU5`AU & E& & E& De&f $̋"5`[`N & & & & De&fH ̋E U$[`ws KX tXj9atXD[`@ Kr400{TADATADATADATADATADATADATADATADATA>ɪ3qhɪKrh 4wh4K0 KrB5  5U   E5@? & E& & E& De&f $̋"5 & & & & De&fH2[`r[`| ̋U bX Tz3ax}TD @[Kr@[}@[@[@o@[`@ Kr4ɪ;rhɪJrhɪKrhB 4wh4P t t tK0 Kr1 5  .5.UW  ,   wE5 E [}<[\[}4|  WLJ5  ,E [ E U &W2/ , & 4 &9 &9U3uE uU[t|.5`.U & E& & f&ËDef Ë )̋E U<[`T)aw 6  w  e 1 w 0" , 0o4[F[KrJ[}N X Tz3aTDs@[@[`@ Kr4ɪJrhɪKrh 4wh4 K0 Kr5  (5(UW      wE5 E  8[$|W͇5  ,E [ E U &W)& #  4 &9U3uE uU.5`.[b|U & E& & f&ËDef Ë )̋E U*[`ws KjX Tb3a~TD[`@ Kr4>ɪKrh 4pwh4K0 KrB5  5U   tE U *5@*& E& & f&ËDef Ë )̋U@[`X B*`Dܲ`@ ke(0sh ke( Sw ܲ`X XBWXDܲ#@ܲGd@ <Wh @ Av wܲGd>ܲ#X B3DܲGd@ ke(03h ke( C &qFre @AE2cD! D2rܲGd|8 HX J4fDܲ#@ܲGd@ ke(0"4fh ke(& & CC w ܲGd$ܲ#rX t0: t0D  @,hC,h eX JF Dܲ#@ܲGd@ ke(0.F h ke(2> qqqQѕwܲGd0ܲ#X J;VNDܲ#@ܲGd@ ke(0F VNh ke( RRRwܲGdܲ#X rr +Dܲ#@ ke(0D+h!!hh2+h xQh}h$r +h ke(H97; uwy{D& fW#v&wFܲ#X Rbs;D V9phBYh@;(hv8h:h Z L@W @@@ 8@ A Be   @  @ A@@K@P @X ByXDܲ`@ ke(0,h ke( w ܲ`X HJTHDܲ#@ܲGd@ ke00O F &(0 `Th ke($ & w ܲGd"ܲ#X JDܲ#@ܲGd@ ke(0{h ke( _w ܲGdܲ#X  J֯L Dܲ#@ܲGd@ ke(0q!yh ke( ew ܲGdܲ#X J֯Dܲ#@ܲGd@ ke(0q!h ke( aw ܲGdܲ#2X  ~ Q Q Q IwܲGd<ܲ#X XJ_MXDܲ#@ܲGd@ L_MhfMh P   x qqfII1 qq  wܲGdNܲ#X XJ_MXDܲ#@ܲGd@ 6_MhfMh :  Q Q QwܲGd8ܲ#X XBwXDܲ#@ܲGd@ (wh , Qѕf IwܲGd*ܲ#X tXB,tXDܲ#@ܲGd@ (,h , Qѕf IwܲGd*ܲ#X XJ q_MXDܲ#@ܲGd@ L q_Mh qfMh00TADATADATADATADATADATADATADATADATA P   x qqfII1 qq  wܲGdNܲ#X Ju~Dܲ#@ܲGd@ ke(0 zQDh ke($&  RRRI! wܲGd"ܲ#2X R\MD,0z@ܲGd@)` @@ |S]h  Ε 4e   e  f &f& %&ܲGd.,0z2)` @l,0zp)` |s"X XR5dXDܲ""@ܲ#@ܲGd@ f &hfrh  e I I & # I  a(Ia(I BCD"C" wܲGd|ܲ# | ܲ""X Z PwDs@ ( Pwh xh h zh \qh ,& & & & Aff& sX BD Pw@4u~@ ,ysh 0 fB A  & & fw4u~. PwX B,H:DݪK@d;@ :4u~h >W &=e e@ B  $ݪK6d;X RD z@*@ \q@4u~@ <}h @& %NBwA & fww z4u~2 \q>*X RsD,0z@ܲ#@ܲGd@)%@ Zgh ^&  & e mw&f&fe  s&ܲGd,0z)%,ܲ#B,0zF)%X BձDܲGd@ ke(0pIqh ke(t   _(  ?f'& f' ?E@@ a B 0e  ܲGdX RձDs@ܲGd@ ke(04Kq hKq^h ke(8KM & & &&& ܲGd4sX BsrDܲGd@ ke(0.srh ke(2 e@AB ܲGdX J#DܲGd@ܲ@w@ ke(0Yqh ke(  wܲGdܲ@wX XRUs%XDܲ#@ܲGd@ ke(0(cs}hUs%h ke(,Q &wܲGd*ܲ#X BձzDܲ`@ ke(0[qMh ke( /w ܲ`X zxDlOpH)H)H)H)xH)p H)%H[ H)` H)p H)5H  X XJx+XDܲ""@ܲ#@ܲGd@ vx+h z W#0A %+B%&AB`B`D&  B~> ee Jb"b "╫w HܲGdpܲ#xܲ""X J XDܲ#@ܲGd@ ke(0&wh ke(* GwܲGd(ܲ#X RyDܲ#@ܲGd@C,@ ke(0$yh ke((  wܲGdC,&ܲ#X  Ry Ds@ܲ#@ ke(0@Iqh0y}h ke(D B (W/ D  7 f& }w(sBܲ#X Jy%Dܲ#@ܲGd@ ke(02y%h ke(6 @ 00O F & EwܲGd4ܲ#X XZ #XDܲ#@ܲGd@ Zg(0y@h.yhX:` Zg( e2w 7 Nw&f&fCDEe  > ܲGd X:`0ܲ#:ܲGd>X:`BX:`HNPܲ# dX:`(|   cs X:` X B zDܲGd@ܲ@w@ 2sh 6 X eETETwܲGd4ܲ@wX B 4fDܲ#@ܲGd@ z4fh  -w ܲGdܲ#VX 뀻bjM뀻Dܲ""@ܲ#@$99@ `h&`hy`h y`h & @EA:% NP& @5A E& B _"E@  D Q 5E,|w+w E  ܲ#ܲ#$99(ܲ""|X :xDܲ#@  ÐHXh & 1w ܲ#vX 2*D *h )vX <:ܲ""<D ke(0ܲ""h ke(& X Jܲ#Ds@ ke(0ܲ#hܲ#h ke(sX Jܲ`Dܲ#@ܲGd@ ke(0ܲ`h ke( &w ܲGdܲ#X Jܲ)dDܲ""@ ke(0Lܲ)dhܲGdh ke(PC & ` `Ba#   L Lܲ""X Bܲ@wDܲ#@ ke(0(ܲ@wh ke(,CC    &w*ܲ#^X ~R~Dܲ#@ܲGd@ .Qh,1hHwh ` e BBCC w qqq0 fqC Q IܲGd4ܲ#VܲGd4|w C Q Qqwܲ#ܲGd2ܲ#tX r}Ds@ܲ#@ܲGd@L @$9΅@w@C,@ 0h}h  j  2@  e ' w  /*jܲGd"C,8w>L lܲ#ps |<   e$9΅X XJXDs@ܲGd@ ke(0,Cph ke(0 & & &&&ܲGd,sX J%Dܲ#@ܲGd@C,@ %h "  w ܲGdC, ܲ#X z}Ds@N@N]@ܲ#@ܲGd@ X@NBx@N{8@N{@$9΅@C,@ }h    *e  f w  NܲGdC,N X$NBxDN{PN]ZN{8^fhܲ#lsrs~$9΅ | e X XR1yXDN@ݩ%@ XN]hN{8hN{h \&&&f&f   ` % s*N.ݩ%$X J` Ds@# z@$9@ s&   (w  *ܲGdC,$(*ܲ#.s4N8ݩ%X J[!}Dܲ#@ܲGd@C,@ 2[!}h 6  2 w ܲGdC,4ܲ#X B#yDݩ%@@ RL h V&f&f   /<    sݩ%X tbf]tDs@G> @$9s@GVN@:$@:4F@ Rh &)_& & &  & && && Ε 61& 1)ȋ& & & ,s.G> 2GVN6:$B$9sZG> nG> T|& & & & & & Ε 1 &  a@ G> GVN:4F6G> X J q}Dܲ#@ܲGd@C,@ 2 q}h 6  2 w ܲGdC,4ܲ#X Jr%Dܲ#@ܲGd@C,@ r%h   w ܲGdC,ܲ#X tBs@8tDܲ#@ܲGd@ s@8h   eCBBaIBBJbCBB ɒɐBܲGd| & &  wܲ#X R9wKDܲ#@E4d@ܲGd@C,@ (9wKh ,  wܲGdC, E4d*ܲ#X tBrwdtDܲ#@ܲGd@ drwdh h e ICBBaI    B wܲGdfܲ#X XJ u~XDܲ#@ܲGd@ &,u~hwu~h * =w =w ܲGdܲ# ܲGd(ܲ#zX rrwDs@ܲ#@ܲGd@L @$9΅@w@C,@ rwhrwh  p`  2@  e *  w  *pܲGd"C,8w>L rܲ#vs&|/<   e$9΅X rAyDs@ܲ#@ܲGd@L @$9΅@w@C,@ AyhAyh       2@  e 9ܲGd"C,zw|2       w   /<  L Vܲ#Zs|$9΅ e<X jSyD5!@5 @ @@@  Xhݩ%hwh<  ,#b3!  b3!a & > >265 : FX |>X XzTy`XDNHQHHNBxH BxHQHN:dHBxHH N H  :\}h>Nt!h>t!hN\}h\}ht!h   >>> >00O F &|tld2X Jy%Dܲ#@ܲGd@C,@ y%h    w ܲGdC,ܲ#X By]Dܲ""@ܲ#@ Xy]h \@$A E& & B ?E@  D Q w% Nܲ#Xܲ""X BydDܲ#@ܲGd@ ydh  w ܲGdܲ#X Jy@Dܲ#@ܲGd@C,@ y@h "  w ܲGdC, ܲ#X XBT,XDܲ#@ܲGd@ '%h  w ܲGdܲ#zX X:LdXDܲ`@ Ldh  w ܲ`X ZSDܲ#@ܲGd@C,@ TShSvhSh  XKM&     2 &wܲGd&C,Vܲ#X XB|@XDܲ#@ܲGd@ @|@h D &  eq B C1GwܲGdBܲ#X trtDs@ܲ#@ܲGd@L @$9΅@w@C,@ hh  x  2@  e .  w *xܲGd"C,8w>L zܲ#~s.| /<  e$$9΅X t0: t0D ,@,hC,h 0e   X XzNy XDNHQHHNBxH BxHQHN:dHBxHHN H  :\}hNt!ht!hN\}h\}ht!hX t02xxt0D "$CTh & @ @X B @~D  D"06ݪKhih  D":&  m  f A N  %2X |R:=|RD Cx0=h Cxf&f ` *  !נ נ  נננ"D נaנz E ѐEp(p| נ$נ0נ9נAנZנ_נ:  Vנ[ȕ]נ<ȕ>ȋ8 |נ%נ*נ-נ.נ0נ9נAנZȠ |נ0נ7נ*נ,A lȠj h  qנ"A   #A cנ$tנ%נ*נ0נ9נAנZנ_נ.  נ.נ; fנ0נ9 ]נ- X נ* QA  נ, Dנ=  >5 B>U (wZנ/* . .00TADATADATADATADATADATADATADATADATAנ$נ-נ.נ0נ9נAנZ נ_ נ:Dl  Dנ"  0X |RJ@=|RDd@ Cx0@=h=h Cxf&f E^`  UQ  UQ ËUI U `e |ccD    Ĕ%*.A U 0 0 W ,Uw@W /D D cBDaW- N WN WOD!B N{ CECCD! D! ΋5  e ΐ UpRpRtpBC5D  KR΋KBAE:D0CĊ f eB  Dҁ CSĊ  |dȀWC E Cs Ε f)& 6 l(*  E 'W " =lN  W :+W = 1 #W ,W / %W %W *Հ W <W [W >W ] v(* 6 eX N@B:h;N@D  D"0@d;hm h  D"D&   `@ ` B   & A @    X ΚXb9}ΚXDi(Pi Zi di .tՕ: @e e0e0UiX 0B%Ps0Ds@ K0""h K'1sX Xz ]XD1o@ sJhab1vh 1ph1sh1uh 1wh1qh"1th1rhc0Z aX cXb $*J c c c c c c c$ c*c^   fwvAAU Xs ssss$s *s 0s@a VaZ1oX XB XD `E4dhEdhHʫh~h d% & ^UU U U UUUN a  X 0zܩu~0DݪM@ݪK@W@i@ab@ Zg`Zg(0ܩu~h:h::"h Zg`< Zg(w &fe&  w &ff=elC    5p  d  W"W`iri|  A &@d &@ &m M M` M`5u  @ @ e@ M`u 5`2ii$i0i:ݪKFݪKRݪKfݪKBW @ `u  #;eu o eA eS S S B CeS S S A 00O F &eS , ab HZg`PݪM ^Zg`fݪMxݪM0tS S B ee Zg`ݪMX ΚXBתZΚXD Zg`0תZhabh$ Zg`4JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECX X:i XD Zg(06i h Zg(:&f!  E D  E E C B Ί AX XzXDfH`fHH fHH p&H fHjzHxfHfHKH fH " 5H fH@ X NBi(ND@ Zg(0ni(h Zg(r AUUUU    T T T T ee(e(e(e(T $)T T TU U U U  ~X t z#'t D)@)Ty@:@[Y@[Y@)@)Z@)W@)W@[<}@o@Ա2&@:[(}@)X@:_@ Zg(0dh Zg(w EH  P A Е:%ʋ B   5Е" e pe d\o)))X":<)TyNԱ2&`)W[<} n)W[Y z[Y[Y  z|Е"A 2 A (A Е.A Е;A      HХ"Е" B)W[Y )W)W$)W0)<)ZB:_N[(}nX t02#}t0D yh &3X >@z[ S>@D:}s@Ѳ:@s@:br@@:s@ @o@T; z@ 8r@g@'@zg<@g@g@g@g@$9!@:@gC@gR@g@g@g@g@w@:@:NK@ Zg(0D۩ Shgh:g,h. Zg(w T&8uE@ %a `g0?@MMWw5@5*6 T @2ȋoNgXT; z| eT5 N ) @   J 5 w DC uw  E  ggC%  6  p + k5e d ^ [U5@ g.g$9!RghX >@z[ @S>@D:$9W@@@`@}s@Ѳ:@s@@9x@h'@ (@X@o@zԱ2&@ 8r@'@=@@=@$9!@g@:@g,@w@ Zg(0 ghg<hxgh2gChgRhgh4ghgh Zg(u j  ~5 , ɥ/b J  1ECe, e  N g,Ng||' @%7U @ E  , D(@e  ^5@@e,C& n: K s@w@&p ! ȕp* eBEETH EBe 9x9x*@:=R@=t Z5    O 2e(5 @&B B 2=2 D(:(@$8 &SY& g' g*@`\ e2edE_$8$8$800TADATADATADATADATADATADATADATADATAw < &1 57D(e:(EE_ U@5 Jole`############# e" "885( * 0 H0 J0 L  J$9!` !  w   D 5 4 u46 > A(! ! (* @2 }swos (&X.}sDԱ2&d&s eBB7 pB!# *pB   dw ɥ ɥ @h'F$9W^ 8rp:0   ɥ ɥ ɥ@ɥ/ X >@z[ AS>@D:s@$9p@}s@Ѳ:@s@d@ 8r@'@:@w@ Zg(0*ghghZghghB Zg(5 A&)f  u BA U` B`CAB5 b| Rusx$9p|ABAB6C4 Е/ЕLЕBЕ:Ae,P   S  ɥ ɥ    d ɥ ɥ ɥ@ɥ/ tX Xz4a` XD?H"ɪKr@X@""@w@ 46L h Ch C\}h9`h1ohZBh =Krh1Kh4}h?yh ~, , t t t 4  ~, ""  wɪKr X ,  X XzBa8"XD c[H [KrH[KH[}H[yH[L H [\}H[H [`H[oH zX t:ͫetD  ̅ ͫeh  ̅enX 0R 0DB,0zH*sH&5 H.sH([H, .X ;Vz S;VDs@:G@<&Kq@`@$9p@)@}s@Ѳ:@)Ty@s@<&9@:t @z)p@)P@)@h'@ @ (@)W@X@o@:@ 8r@=@)'@@=@)Ps@Z' q@$9!@)p@:@<&D@ Zg(0@ShASh"?Sh Zg(w 5 funhj tuhdB 8jwaw<  vw &  AdBbA>o*)TyH)PR$9!T)P`<&9b)h:t nѲ:r)Ps|ep& f P aAAf@pnp C֋ 8Ë7AB`f VT:GѲ:@)pD)pH L)PsP)PX:^Ѳ:b)Pf)Psn)pr)pa`& WaWz  ɥ"N  ajfu-nhwFɥ;]a)wנ"å.@j  a`$9pl$9!t Bw@ ŀajTI& af v`V @e,w jj4`&<&9<&Kq<&D ()<)PsD)Psnolj ɥ@@aujk,bp 5f fˇ ȕ ‡ eSY <=X@=l e,5 funhwe,aja`W- f`nw^uhnw@ Dllja!Ce###3X`v)W3@ & w  jDl@ TeT5l@ X' q)h'":&)P,$9!.)Ps4:@oF)PV 8r`)Wd)P|`d@  e  An5j)f  2/      RՀa>s (X)W)' }s&' q(),h'Fs @X < z`}< Dȍ`Hȍ8 H8THʍ8TH HōwH`H`HiHHˍsHȍH"ō,HˍHH *X < z`(}< D # ZT`8Ti w s,`: H8 00O F &`#5!h #  ZT  ` 8T i   w    s   , `  H 8    `X J DݪK@W@ <GP}h@BDRFHJHLxNPhRTVX| &- ae  $e  & & & & && & & & &)4  ^b: R &E@ U U @ P J .1 6 (  2  4t  AW A t  %& & & & & & & & & & & & & & & & & & & & tT:t v:  V4  X@ :tP A V @ HI @ :E wAW HAfW l H @ eB   n wL B f  B \   %ww x ^f <D |  U w 6 H L P@ U w  eC "@d U w| t wh t  @44Vt   B B   4 4 H   (B r 4m -c  :  t \%ww H     C    wL J w< K w, B  T w  w x X@ ~wX `zXR`D:`@:Z@:@Zg(0?Th Zg`*ABDEFIMNOPQRSTUXYZ<>zz      " $  &" ($ &~& *( &*  V,  `. 0 2 p4 6 8 :*: < Zg(w && D¥%  B&ХVA C e!  aeb A  Е*WB> :2 'LBCH    .MAIN. Zg(n 7 $& Lwf@> 07 ԋ_  7 j hz Zg`Zg` Zg`Zg`@y `^ Zg`$$ `^&Zg`&4:t 6Zg`@ :Zg`>FZg`JZg`XZg`j7 E L4  w7 " 2 $  h jZg`Zg`Zg`$Zg`2Zg`   J!     rZg` Zg`H Zg` $Zg`(4Zg`8P )pD)pH}V)p \Zg`d)ptP|Pbp  Zцw    T߇ B܇7ق&7 %n)p)p }P "Zg`$)p*)p.}4Zg`D)pJ)pPZg`fZg`pZg`tZg`i wVȥ ȥ ȥ*  ȥ$ȥ/ ̥/   7    . Zg`i P)p)p2Zg`dZg`zZ ¥ ¥ p R $  ~ P$ &)p*)Ty.)'2' q4)8' q:)><&e@) DZg`F)pL)pPhp! XZg` fZg`$n@ tZg` U N 1ȥ9C ʥ ʥ ҥ@w Vp @ Zg`P 8r Zg`"P&:DZg` rZg`V~=|L  \fdwȕ e 7 5j1-C 7 | Zg`Zg`fZg`d Zg`&@=4P8)W " @>    (zZg`Zg`Zg`Zg`Zg` Zg`(&Zg`DZg`J:LZg`@ PZg`>VZP `Zg`n` tZg`^( 4A Е.) ыѝѝɝwы@>4 t&R Zg`()Ps Zg`A: "Zg`)0M4M8MH:2JZg`@ NZg`>2X J4sDW@  D"0hhD  D"w eE D` bl lrw   B eE"s    s-WJW,|  CslX 02v 0D "h &&f& v |X :vqD  D"0Wh  D"&f tX 2vPD00TADATADATADATADATADATADATADATADATA h f& X ~倻zzz~倻D)WHc&"H3taH UQdHCSHn_HT,H#N&HtaHtH)WH c&yH$z#wHc&yH .BxH H#H 3H 3(H))XHc&hzH Hc&H1ԒHc&H"xwHn`Hz)0HCHtRyH tNyHCxHkTH&Ԓ#H0{Hc&#Hc&#Hc&#HCHc&";HnL`H 0{H znR`H0{H c&HEtHc&Ht.HC,H.H.H c&"H.H.Hc&H)s#H0{DHzc&H>tCyH T,HkxH!0{HL H0{mH`qH -DH)XH#{8H7{ HT,KHc&RH'tyHz.8Hc&|KH6 .Hc&H0{DHc&WH:#0H#0H4{*LH#0Hs,XH@#09H [t{8H3^sHc&XHGzc& XH?tBxH.yH-EH#{8H3sH0{9H#0H.{H)ZH .yH #0LHc&dHAkH'-0Hz0{H0{Ht H#0DH0{Ht8Hs`XHn]H #0vH# zH0{nH#0MH c&jLH#""H#0HzԒLqH4{MHԒ[qH-01H40wHn^Hc&HK 3jHc&pH#0)H #04H c&pH#{mHT,HԒqH@zCkzHc&XH7Ԓ7!H c& H2s]H#08H#08H2{Hc&L H(c&_MH9#yHc&gYHc&}H+ԒH 3[Hzn^HtpHsLqHc&H<.H40uwHtyH c&2qHI .H)ZH2{mHc&;Hc&MH@c&NH [tHz[tHԒRH40wH[tHc&fH, 3WH6{,H40wHtwH#08H#08H6{!H#08H-{\H-{QHztnH2H#0H#08Hc&H=#0H2{ H#08Hc&eHtwHsH6{!Hc&eH6{,Hc&HBz#08H 3H#H408H#{;Hs^HC\XHc&grHJc&4&H c&dfH.KH #0UHc&ZHF#0TH|wpHz${H${H c&krH.. LHc&fH& 3 H.{VH408H-{,~H408H ${H40xHc&#H 408HԒVsHz40xH. H#0H#0Hc&'H;40NyH40RyH ԒWHc&sHC4{wH-{fHԒWH409H40yHCUqHzc&9gH4|w`qH#0xH40CyHc&Hc&sHH401zHU,}H4wHc&H20,HU+}Hc&H-s`H40yHz pH40yH40yHt:dH#0:H c&~H5THTH 40)PsX tz! &tD)@)Bx@$9~Z@)p@W@<&e@ @)@)Ps@t @)p@:@ 4h w    j2-  (@ep@ D  e  ` e RW $9~Z")Ps.:4<&e6):t <)B)BxJ)pP)pT b:F|     R#R- )Bx:& ,)pdX  =J:dt =Ds@; @  D"0phh  D"*ae(  1 O&e  1-1- 111 sH; ^| rrrrr: 5  X 4έbft4έDph@o@d;@  D"0d)&hpiwh iwh  D"w *40#, " :ÝT U@e   ew%oDhd;xd;r |phV|1  %,,:4 zX NE:3ukMNEDS~@ h  ,w S~zX NE:3u_NEDS~@ &h  0w S~X NEJ3uIqNEDJ@S~@ h WTl  WTjjJ w S~zX NE:4u%!NEDS~@ h  Dw S~zX NE:4u;;NEDS~@ {h  4w S~X NEJ4uH;NEDS~@pŜ@ h WTd  WTbbpŜ $w S~X NEJ5uZNEDi5u@S~@ !h WTn  WTlli5u w S~X NEJ5upNEDi5u@S~@ "h WTn  WTlli5u w S~X NEJ5u%NEDS~@@ #h WTf  WTdd (w S~,X NEz6u" NED@S~@ȫ @@©#@  T[hu'h U(hAyhTqh WT^   WTRR ©#VV ZZȫ $P TX`dw"S~zX NE:6ut:NEDS~@ &h  Hw S~zX NE:7u`"NEDS~@ ,h  8w S~lX NE:9uXNED 6xhv:h X NER?udNEDS~@(X@pŜ@ E`h WTj  WThh (XbbpŜ w S~zX NE:@u# NEDS~@ :dh  w S~zX NE:@u`NEDS~@ \gh  <w S~X NEJBuW!NEDi5u@S~@ Uqh WTn  WTlli5u 00TADATADATADATADATADATADATADATADATAw S~X NEJBuq!NEDi5u@S~@ Vqh WTn  WTlli5u  w S~X NEJBu"NEDS~@<@ !th WTZ  WTXX< \w S~X NEZBuNEDj<@S~@ @ Iqhh WTb  WT^^ j<hlwS~X NEJCuzNEDi5u@S~@ wh WTn  WTlli5u  w S~X NEJDusNEDS~@@ h WTR  WTPP Lw S~zX NE:EudNEDS~@ ąh  @w S~zX NE:GuNEDS~@ h  pw S~NX NE2>uNEDH NX NE2>uU(NED©#H NX NE2>uTqNEDOH NX NE2>uu'NEDH NX NE2>u!tNEDuT[NEDH NX NE2>uAyNEDȫ H NX NE2>uIqNED H NX NE2>uNEDjuNEDpŜH NX NE2>u#NEDH NX NE2>uN`NED(XH NX NE2>uNEDJH NX NE2>uzNEDi5uH NX NE2>u%NEDt!H :X NEz3u^NED5 @@@ dhPhHh hHh Wh hRWh  h  @ &e6% 4% 4%04 f   w eF w 5 >RX5 fX N:7xsND5 @ $7sh (e6@a "H5 NX  2,d D  D"0LX  bK VN Ds@s@o@f@  D"0;VNhaVNh  D"w BC "& <SY*p0p21E%0*w*e "fo6sbffs"| D CB.ENX  2  D  D"0X 4'rw4'Ds@r"&@q:@w@i@o@f@  D"0 `h  D"w *8I *=)98 eB &&  U **o"w8ihq:|e *Nlv ΋*.)  & #!)&ePe && 2i^s~q:p* wr"&fX  gZ& gDq:@i@o@  D"06ch `rh  D":w  )*  U o&i6q:X  Ze Ds@q:@i@f@  D"0vcIqh  D"z0f00O F && e %&&eH U   Ef p  ws8i`q:xfX  Zz Dq:@i@  D"06eZhrShft:h   D":    f u    i(q:lX  : & D  D"0h  D" X  'z, 'De&@py@r@r@pJ,@o@mo@f@  D"0}h  D"w ) 8C * ) *w*  ep p &o pJ, rNfbpyje&| C  =  0* = Eե^ A e@ v߇ Ep |p  , J *` |r:tC#   D moX  'r,hy 'De&@r@pK,@o@mo@sk@f@  D"0 h  D"w ) 8C * ) *w* ep p   o pK, rNfZe&|C  =  0* = Eե^ A e@ ߇ Ep p  8 V *`)w rskxr6tC#   D moX 4ezE`W4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@Rf@@ft:@fy:@cIq@s}@  D"0Hhp!h  D"w  D 8#"#)%ĥ ĥ w  0 o sfy:|*0 @Q$    0 40 60))  :# 3&*w #( P) @#2s}Jft:XcIqreZ**fff  &*wL. P358e$8w22&e  d?!,eZPsnsvt%p8q #) *R*)@#0l C# 028 0&r|b0ĥۇAĥĊ  000 0 @0 &*0 @ u # eBFr,}dipq:l&B B * eBe>  # #D #&0  rSmlEr"&"id#   0@e 6@#040 6w!p2$q:NfFX 4ezE`PZ4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@baVN@f@@ft:@fy:@cIq@s}@  D"0d^Whh!h  D"w & w  D  8#"#)%ĥ ĥ oos fy:|w 0 *0 @Q$    0 40 60))  eB  :# 3&*w #(Bs}NaVNfft:tcIq P) @#**fff  &*wL. P358e$8w2eZ8d?!HeZlst2&e %p8q #) *R*)@#0l C# 02sBr돀8 00ĥۇAĥĊ  000 0 @0 &*0 @ 00TADATADATADATADATADATADATADATADATAbbr,}lu # eB&B B * eBe>  # #D&iq:&rS.mlE2r"&>i #&0 #   0@e 6@#040 6w!p2@q:jf8X 4ezF`84eDb@s@r"&@r@q:@i@o@r,}@aVN@f@@fy:@"  D"0h&h  D"w  D 8#"#)%ĥ ĥ w 0 o sfy:|*0 @Q$    0 40 60))eB &*   w6 . 2358e$8aVNxs8w22&e %p8q #) *R*)@#0l Cs"Nr돀t# 028 00ĥۇAĥĊ  000 0 @0 (bnr,}&*0 @ u * eBe>  # #D #iq: r"&,inl&0 #   0@e 6@#040 6w!p2.q:XfX 4ezF`W4eDb@mlE@eZ@s@r"&@r@q:@i@o@d?!@rS@r,}@RaVN@f@@ft:@fy:@cIq@  D"0Nh'h  D"w  D 8#"#)%ĥ ĥ w 0 o sfy:|*0 @Q$    0 40 60))eB  :# 3&*w #( P) @8aVNPft:^cIqxeZ#**fff  &*wL. P358e$8w22&e  "d?!2eZVsts|t%p8q #) *R*)@#0l C# 028,r돀 00ĥۇAĥĊ  000 0 @0 &*0 @ u # bLr,}jivq:leB&B B * eBe>  # #D #&rSmlEr"&(ij0 #   0@e 6@#040 6w!p2*q:Tf.X  =Z:dw =Ds.@D@o@  D"0zpwh wh  D"w *  )Ĕ%.&%;D  5)5@DD ͥ*Ce a%wUX5@ o^D|5U U*U  5@XU@5 U*U  ʥ*%C!.D` *weC5U5  5 5@e s. t* X  jafZ De&@e&@r@c2 @w@aK@  D"0`pZh  D"d 6 p 4 0`p f 64 46 e*w & e&,w:c2 HaKNr\e&X  =z\g =De&@py@r@r@w@w@pJ,@o@mo@r,}@f@  D"0}h  D"w o832de& & & B  2PΕ   N Υ$Ε  2o pJ,|2Υ   v Ε f e * *e*w mo>wTr,}rf~py*0, N 00 O F & )*)    l 0l  r,e&t   ee@ x0 j) E ep )w ,  N w  L B # f  `*,r,}4w@rZmo4l*w)0406 l0  fX  =z\ghy =De&@r@w@w@pK,@o@mo@sk@r,}@f@  D"0 h  D"w o832de& & & B  2PΕ   N Υ$Ε  2o pK,|2Υ   v Ε f e * *e*w0, mo>wTr,}rf~r J  )*)    l 0l   e&t  ee@ t. f' E ep )w ,  w  LwB # f  `**w)0406 r,}w$sk>mojfl l0 X  r7q Db@wt@rk@wL @bG@s2 @  D"0<rhrh  D"@e6p 4 8  &s2 "b*bG.rk2wL :wtX  :\q D  D"0hr,}h  D"l. 00l  0 *X  Js"& Ds@@  D"0Nr"&h  D"R82e& 0 0 0 80 B0 0 0 0)#0.s"X  'RtL 'Dq:@i@  D"0 rkhwkh  D"$ U4 6wi"q:fX  R$t_ Dw@aK@s2 @  D"0rh  D"&4&6 64 wr%64 2 6  l0 & Z46 64 :s2 6s2 paKH|)0406 0 *0e6p 4 @wX  Jw Dw@f@  D"0wL h  D"" Bfep`pww f(X 4Χr4ΧDb@wt@bG@wk@a[M@f@  D"0`whwh  D"d ) !f  e) . e6p 4 08*w&bGa[M&wk2wtXbbfX  Bd Dw@  D"0wh  D" ) . .w D"" Bfep`pww f r4ΧDb@wt@bG@wk@a[M@f@  D"0`whwh  D"d ) !f  e) . e6p 4 08*w&bGa[M&wk2wt<0X 28 300 TADATADATADATADATADATADATADATADATAs,8^4q|KqKqOt!; 95F K f9K @j l  H" ? F_eJKdaw}&}y&{(@,e Q+xO\ j  _SVzm 'v ( y: : QSN f{ [qw x y y v lȔfpyy}e">@jEMn%z{Dw:W})}3""`# &'a'x'' '},`r2]2dd4$e48y:y:}': :}M:r :bKjLVvLDmYM _Mp:_MakQroQQpQz QQ(Qy: QkQ Qm Qw! QlQ Q ?RsRM/S6- S SZSDwB S:D %TWR t^E`: EQ 1 .GOTO 150 LBR HELPF.HLP=HELP.ULB/EX:HELPF .GOTO 150.130:n .IFF $SDCL .GOTO 140o LBR DCL.HLP=HELP.ULB/EX:DCL1l .GOTO 150.140:a LBR DCL.HLP=HELP.ULB/EX:DCL2a.150:.E .IFT $BMCR .OR .IFT $SMCR .OR .IFT $BDCL .OR .IFT $SDCL .SETT $UTILYC .IFF $UTILY .GOTO 180 LBR UTIL.CMD=HELP.ULB/EX:UTIL @UTIL.160:L' .IFT $BMCR .OR .IFT $SMCR .SETT $MUTILH .IFF $MUTIL .GOTO 170# LBR MCRUTIL.CMD=HELP.ULB/EX:MCRUTLL @MCRUTILL.170:X' .IFT $BDCL .OR .IFT $SDCL .SETT $DUTILP .IFF $DUTIL .GOTO 180# LBR DCLUTIL.CMD=HELP.ULB/EX:DCLUTLL @DCLUTIL1.180:  .IFF $FILES .GOTO 190 LBR INTRO.ULB=HELP.ULB/EX:INTRO% LBR INTROFIL.CMD=INTRO.ULB/EX:INTROF.N.; Do not execute INTROFIL here since we do not want the intro files in [1,2].J.; Let the system manager put them where he/she wants. See the help filesJ.; section of the Post-System-Generation Guidelines chapter of the RSX-11MA.; System Generation and Installation Guide for more information.C.190:TSDCL .SETT $DUTILP .IFF $DUTIL .GOTO 180# LBR DCLUTIL.CMD=HELP.ULB/EX:DCLUTLL @DCLUTIL1.180:  .IFF $FILES .GOTO 190 LBR INTRO.ULB=HELP.ULB/EX:INTRO% LBR INTROFIL.CMD=INTRO.ULB/EX:INTROF.N.; Do not execute INTROFIL here since we do not want the intro files in @ X Ce the help filesJ.; section of the Post-System-Generation Guidelines chapter of the RSX-11MA.; System Generation and Installation Guide for more information.C.190:TSDCL .SETT $DUTILP .IFF $DUTIL .GOTO 180# LBR DCLUTIL.CMD=HELP.ULB/EX:DCLUTLL @DCLUTIL1.180:  .IFF $FILES .GOTO 190 LBR INTRO.ULB=HELP.ULB/EX:INTRO% LBR INTROFIL.CMD=INTRO.ULB/EX:INTROF.N.; Do not execute INTROFIL here since we do not want the intro files in ;QC; This file extracts all the files that are necessary when full DCLH; help is chosen.;LLBR DCL.HLP=HELP.ULB/EX:DCLH"LBR DCLABORT.HLP=HELP.ULB/EX:ABORT"LBR DCLALLOC.HLP=HELP.ULB/EX:ALLOC$LBR DCLANALYZ.HLP=HELP.ULB/EX:ANALYZ$LBR DCLANALER.HLP=HELP.ULB/EX:ANALER$LBR DCLANALCD.HLP=HELP.ULB/EX:ANALCD$LBR DCLAPPEND.HLP=HELP.ULB/EX:APPEND$LBR DCLASSIGN.HLP=HELP.ULB/EX:ASSIGN LBR DCLASSQ.HLP=HELP.ULB/EX:ASSQ$LBR DCLBACKUP.HLP=HELP.ULB/EX:BACKUP#LBR DCLBASIC.HLP=HELP.ULB/EX:DBASIC=!LBR DCLBRO.HLP=HELP.ULB/EX:DCLBROc!LBR DCLC81.HLP=HELP.ULB/EX:DCLC81 $LBR DCLCANCEL.HLP=HELP.ULB/EX:CANCEL#LBR DCLCOBOL.HLP=HELP.ULB/EX:DCOBOLC LBR DCLCONT.HLP=HELP.ULB/EX:CONT LBR DCLCONV.HLP=HELP.ULB/EX:CONV LBR DCLCOPY.HLP=HELP.ULB/EX:COPY#LBR DCLCORAL.HLP=HELP.ULB/EX:DCORALR$LBR DCLCREATE.HLP=HELP.ULB/EX:CREATE"LBR DCLDEASS.HLP=HELP.ULB/EX:DEASS$LBR DCLDEASSQ.HLP=HELP.ULB/EX:DEASSQ$LBR DCLDELETE.HLP=HELP.ULB/EX:DELETE LBR DCLDELJ.HLP=HELP.ULB/EX:DELJ LBR DCLDELQ.HLP=HELP.ULB/EX:DELQ LBR DCLDIFF.HLP=HELP.ULB/EX:DIFFLBR DCLDIR.HLP=HELP.ULB/EX:DIRLBR DCLDIS.HLP=HELP.ULB/EX:DIS LBR DCLEDIT.HLP=HELP.ULB/EX:EDITLBR DCLEDT.HLP=HELP.ULB/EX:DEDTNLBR DCLFIX.HLP=HELP.ULB/EX:FIX LBR DCLFORT.HLP=HELP.ULB/EX:FORT!LBR DCLHELP.HLP=HELP.ULB/EX:DHELPR LBR DCLHOLD.HLP=HELP.ULB/EX:HOLD LBR DCLINIT.HLP=HELP.ULB/EX:INIT LBR DCLINST.HLP=HELP.ULB/EX:INSTLBR DCLLIB.HLP=HELP.ULB/EX:LIB LBR DCLLINK.HLP=HELP.ULB/EX:LINK"LBR DCLLOGIN.HLP=HELP.ULB/EX:LOGIN$LBR DCLLOGOUT.HLP=HELP.ULB/EX:LOGOUT"LBR DCLMACRO.HLP=HELP.ULB/EX:MACRO!LBR DCLMCR.HLP=HELP.ULB/EX:DCLMCRB"LBR DCLMOUNT.HLP=HELP.ULB/EX:MOUNT$LBR DCLPASCAL.HLP=HELP.ULB/EX:DPASCL#LBR DCLPRINT.HLP=HELP.ULB/EX:DPRINTP"LBR DCLPURGE.HLP=HELP.ULB/EX:PURGELBR DCLREL.HLP=HELP.ULB/EX:REL$LBR DCLREMOVE.HLP=HELP.ULB/EX:REMOVE$LBR DCLRENAME.HLP=HELP.ULB/EX:RENAMELBR DCLREQ.HLP=HELP.ULB/EX:REQ!LBR DCLRES.HLP=HELP.ULB/EX:DCLRESLLBR DCLRUN.HLP=HELP.ULB/EX:DRUNBLBR DCLSET.HLP=HELP.ULB/EX:DSETL LBR DCLSETQ.HLP=HELP.ULB/EX:SETQ$LBR DCLSHORTS.HLP=HELP.ULB/EX:SH00TADATADATADATADATADATADATADATADATAORTS LBR DCLSHOW.HLP=HELP.ULB/EX:SHOW"LBR DCLSHOWP.HLP=HELP.ULB/EX:SHOWP"LBR DCLSHOWQ.HLP=HELP.ULB/EX:SHOWQ LBR DCLSORT.HLP=HELP.ULB/EX:SORT"LBR DCLSTART.HLP=HELP.ULB/EX:START LBR DCLSTOP.HLP=HELP.ULB/EX:STOP LBR DCLTYPE.HLP=HELP.ULB/EX:TYPE"LBR DCLUNFIX.HLP=HELP.ULB/EX:UNFIXE.HLP=HELP.ULB/EX:RENAMELBR DCLREQ.HLP=HELP.ULB/EX:REQ!LBR DCLRES.HLP=HELP.ULB/EX:DCLRESLLBR DCLRUN.HLP=HELP.ULB/EX:DRUNBLBR DCLSET.HLP=HELP.ULB/EX:DSETL LBR DCLSETQ.HLP=HELP.ULB/EX:SETQ$LBR DCLSHORTS.HLP=HELP.ULB/EX:SH@X CtEX:SHOWP"LBR DCLSHOWQ.HLP=HELP.ULB/EX:SHOWQ LBR DCLSORT.HLP=HELP.ULB/EX:SORT"LBR DCLSTART.HLP=HELP.ULB/EX:START LBR DCLSTOP.HLP=HELP.ULB/EX:STOP LBR DCLTYPE.HLP=HELP.ULB/EX:TYPE"LBR DCLUNFIX.HLP=HELP.ULB/EX:UNFIXE.HLP=HELP.ULB/EX:RENAMELBR DCLREQ.HLP=HELP.ULB/EX:REQ!LBR DCLRES.HLP=HELP.ULB/EX:DCLRESLLBR DCLRUN.HLP=HELP.ULB/EX:DRUNBLBR DCLSET.HLP=HELP.ULB/EX:DSETL LBR DCLSETQ.HLP=HELP.ULB/EX:SETQ$LBR DCLSHORTS.HLP=HELP.ULB/EX:SH;C; This file extracts all the files that are necessary when full MCR; help is chosen.;LBR HELPF.HLP=HELP.ULB/EX:HELPFLBR MCR.HLP=HELP.ULB/EX:MCRLBR MCRACT.HLP=HELP.ULB/EX:ACTLBR MCRALT.HLP=HELP.ULB/EX:ALTLBR MCRASN.HLP=HELP.ULB/EX:ASNLBR MCRATL.HLP=HELP.ULB/EX:ATLLBR MCRBRO.HLP=HELP.ULB/EX:BROLBR MCRCLI.HLP=HELP.ULB/EX:CLILBR MCRFLA.HLP=HELP.ULB/EX:FLA"LBR MCRGENRL.HLP=HELP.ULB/EX:GENRL LBR MCRHELO.HLP=HELP.ULB/EX:HELO!LBR MCRHELP.HLP=HELP.ULB/EX:MHELPLBR MCRHOM.HLP=HELP.ULB/EX:HOMLBR MCRINI.HLP=HELP.ULB/EX:INILBR MCRINS.HLP=HELP.ULB/EX:INSLBR MCRLOA.HLP=HELP.ULB/EX:LOA#LBR MCRLOGIN.HLP=HELP.ULB/EX:MLOGIN=LBR MCRMOU.HLP=HELP.ULB/EX:MOULBR MCROPE.HLP=HELP.ULB/EX:OPELBR MCRRUN.HLP=HELP.ULB/EX:MRUNHLBR MCRSAV.HLP=HELP.ULB/EX:SAVLBR MCRSET.HLP=HELP.ULB/EX:SETLBR MCRTAS.HLP=HELP.ULB/EX:TASLBR MCRUFD.HLP=HELP.ULB/EX:UFDELP.ULB/EX:FLA"LBR MCRGENRL.HLP=HELP.ULB/EX:GENRL LBR MCRHELO.HLP=HELP.ULB/EX:HELO!LBR MCRHELP.HLP=HELP.ULB/EX:MHELPLBR MCRHOM.HLP=HEL@X ?ULB/EX:INSLBR MCRLOA.HLP=HELP.ULB/EX:LOA#LBR MCRLOGIN.HLP=HELP.ULB/EX:MLOGIN=LBR MCRMOU.HLP=HELP.ULB/EX:MOULBR MCROPE.HLP=HELP.ULB/EX:OPELBR MCRRUN.HLP=HELP.ULB/EX:MRUNHLBR MCRSAV.HLP=HELP.ULB/EX:SAVLBR MCRSET.HLP=HELP.ULB/EX:SETLBR MCRTAS.HLP=HELP.ULB/EX:TASLBR MCRUFD.HLP=HELP.ULB/EX:UFDELP.ULB/EX:FLA"LBR MCRGENRL.HLP=HELP.ULB/EX:GENRL LBR MCRHELO.HLP=HELP.ULB/EX:HELO!LBR MCRHELP.HLP=HELP.ULB/EX:MHELPLBR MCRHOM.HLP=HEL;>; This file contains commands to extract all the utility files?; from HELP.ULB. These files are extracted if any form of HELP;; is requested (i.e. full MCR or DCL, or brief MCR or DCL).;LBR ASCII.HLP=HELP.ULB/EX:ASCIILBR BAD.HLP=HELP.ULB/EX:BADLBR BRU.HLP=HELP.ULB/EX:BRULBR CDA.HLP=HELP.ULB/EX:CDALBR CMP.HLP=HELP.ULB/EX:CMPLBR COT.HLP=HELP.ULB/EX:COTLBR DMP.HLP=HELP.ULB/EX:DMPLBR DSC.HLP=HELP.ULB/EX:DSCLBR EDI.HLP=HELP.ULB/EX:EDI"LBR EDTHELP.HLP=HELP.ULB/EX:EDTHLPLBR ERROR.HLP=HELP.ULB/EX:ERRORa"LBR EXECUTIVE.HLP=HELP.ULB/EX:EXECLBR FCS.HLP=HELP.ULB/EX:FCSeLBR FLX.HLP=HELP.ULB/EX:FLXfLBR FMT.HLP=HELP.ULB/EX:FMTfLBR ICP.HLP=HELP.ULB/EX:ICPoLBR IOX.HLP=HELP.ULB/EX:IOXELBR LBR.HLP=HELP.ULB/EX:LBR=LBR MAG.HLP=HELP.ULB/EX:MAG=LBR ODT.HLP=HELP.ULB/EX:ODT=LBR PAT.HLP=HELP.ULB/EX:PAT=LBR PIP.HLP=HELP.ULB/EX:PIP=LBR PMD.HLP=HELP.ULB/EX:PMD=LBR SLP.HLP=HELP.ULB/EX:SLP=!LBR SYSGEN.HLP=HELP.ULB/EX:SYSGENU!LBR SYSLIB.HLP=HELP.ULB/EX:SYSLIBBLBR TKB.HLP=HELP.ULB/EX:TKBPLBR TDX.HLP=HELP.ULB/EX:TDX.!LBR TKBOPT.HLP=HELP.ULB/EX:TKBOPTELBR TKTN.HLP=HELP.ULB/EX:TKTNPLBR VFY.HLP=HELP.ULB/EX:VFYPLBR VMR.HLP=HELP.ULB/EX:VMRPLBR ZAP.HLP=HELP.ULB/EX:ZAPPLBR RMS.HLP=HELP.ULB/EX:RMSP!LBR RMSBCK.HLP=HELP.ULB/EX:RMSBCKE!LBR RMSCNV.HLP=HELP.ULB/EX:RMSCNV=!LBR RMSDEF.HLP=HELP.ULB/EX:RMSDEF !LBR RMSDES.HLP=HELP.ULB/EX:RMSDESL!LBR RMSDSP.HLP=HELP.ULB/EX:RMSDSPP!LBR RMSIFL.HLP=HELP.ULB/EX:RMSIFLL!LBR RMSRST.HLP=HELP.ULB/EX:RMSRSTLEX:SYSLIBBLBR TKB.HL00$ O F &@X AELP.ULB/EX:TKBOPTELBR TKTN.HLP=HELP.ULB/EX:TKTNPLBR VFY.HLP=HELP.ULB/EX:VFYPLBR VMR.HLP=HELP.ULB/EX:VMRPLBR ZAP.HLP=HELP.ULB/EX:ZAPPLBR RMS.HLP=HELP.ULB/EX:RMSP!LBR RMSBCK.HLP=HELP.ULB/EX:RMSBCKE!LBR RMSCNV.HLP=HELP.ULB/EX:RMSCNV=!LBR RMSDEF.HLP=HELP.ULB/EX:RMSDEF !LBR RMSDES.HLP=HELP.ULB/EX:RMSDESL!LBR RMSDSP.HLP=HELP.ULB/EX:RMSDSPP!LBR RMSIFL.HLP=HELP.ULB/EX:RMSIFLL!LBR RMSRST.HLP=HELP.ULB/EX:RMSRSTLEX:SYSLIBBLBR TKB.HL;A; This is a command file to extract any files that go with either; full or brief DCL help.;$LBR DCLPASCAL.HLP=HELP.ULB/EX:DPASCL@X Aither; full or brief DCL help.;$LBR DCLPASCAL.HLP=HELP.ULB/EX:DPASCL;A; This file extracts all the files required when either MCR brief; or full help was chosen.;LBR BAS.HLP=HELP.ULB/EX:BAS#LBR MCRCORAL.HLP=HELP.ULB/EX:MCORAL!LBR MCREDT.HLP=HELP.ULB/EX:MCREDT!LBR MCRFORT.HLP=HELP.ULB/EX:MFORT!LBR MCRMAC.HLP=HELP.ULB/EX:MCRMAC#LBR MCRPRINT.HLP=HELP.ULB/EX:MPRINT!LBR MCRQUE.HLP=HELP.ULB/EX:MCRQUE$LBR MCRPASCAL.HLP=HELP.ULB/EX:MPASCL@.X 3Ibrief; or full help was chosen.;LBR BAS.HLP=HELP.ULB/EX:BAS#LBR MCRCORAL.HLP=HELP.ULB/EX:MCORAL!LBR MCREDT.HLP=HELP.ULB/EX:MCREDT!LBR MCRFORT.HLP=HELP.ULB/EX:MFORT!LBR MCRMAC.HLP=HELP.ULB/EX:MCRMAC#LBR MCRPRINT.HLP=HELP.ULB/EX:MPRINT!LBR MCRQUE.HLP=HELP.ULB/EX:MCRQUE$LBR MCRPASCAL.HLP=HELP.ULB/EX:MPASCL1 You write HELP files using three basic concepts:EA A. Nested Files B. Indirect File References C. SynonymsaH The structure of HELP files is nested. Indirect file references allow H one HELP file to access the text of another HELP file. Synonyms allow = two or more similar words to access the same HELP file text.e< See HELP HELP FORMAT NESTED_FILES HELP HELP FORMAT SYNONYMSC HELP HELP FORMAT IND_FILE_REF HELP HELP FORMAT CONCEPT_SUMMARYs, HELP HELP FORMAT LOCAL3 NESTED_FILESD A HELP file is a text file with up to nine levels of nesting. The D format is much the same as a conventional outline, that is, topic,  subtopic, subsubtopic, etc.F You construct a HELP file using numbered level indicators, 1 through > 9 inclusive. Each number corresponds to the position of the @ parameter in the command line. The higher the number, the more4 detailed the topic. For example, if the user types >HELP ARM HAND FINGERB the first parameter, ARM, is level 1 in the HELP file, the second< parameter, HAND, is level 2 in the HELP file, and the third0 parameter, FINGER, is level 3 in the HELP file.E The HELP processor interprets its command line in a strictly nested eB fashion. When the user requests HELP on one parameter, the HELP B processor searches down through the HELP file for a line startingA with the numeral 1 followed by the specified parameter. If the xF parameter is found, HELP then displays all the text between the firstB line and the ne00,TADATADATADATADATADATADATADATADATAxt level number. The lines with level numbers and! parameters are never displayed. t? If the user specifies two parameters, HELP searches for a lineHE starting with the numeral 1 followed by the first parameter and theniE continues the search for a line starting with the numeral 2 followedr? by the second parameter. If HELP finds another line starting hA with the numeral 1 before finding the appropriate level-2 line, t? the search stops. Therefore, any level-2 parameter that is a lA subtopic of a level-1 parameter must appear after that level-1 pG parameter and before the next level-1 parameter. This same procedure,( is followed for all nine parameters. F When constructing a HELP file, you must place the level number in theF first column, followed by a blank before the parameter. The parameterE must be all capital letters. The parameter cannot contain any blankseE or tabs, but phrases can be tied together with hyphens or underscoref characters. 2A The first file accessed by the HELP processor is called the root B file. At minimum, the root file must contain level-1 parameters.; It may also contain parameters for all 9 levels. DCL.HLP eB and MCR.HLP are the two root files for full HELP on both RSX-11M  and 11M-PLUS. rA An example of a nested root HELP file follows. Because the HELPmC processor uses the characters 1-9, @ and # when they appear in theH first column, a comment character (!) precedes these characters in theE example. The comment character allows the example to be included ind@ this HELP file without being processed literally by HELP. Omit2 comment characters when writing your HELP files. ? Also note that the nested file in the example shows HELP text lE following each parameter. However, HELP files can include indirect tA references to other HELP files in place of text. See HELP HELP e FORMAT IND_FILE_REF.e) Here is the example of a HELP root file:hDTHE FIRST LINE OF THE ROOT FILE TEXT IS IGNORED. USE FOR LABELLING.< This is the text of the root file, displayed when you type: >HELPA Introductory information on the types of HELP available usually H appears here. For better appearance, the first text character in each H line is either a blank or a tab, but there is no technical requirement H that you do this. Also, it is good practice to limit text to about 20 < lines. This limitation allows text to be displayed on the B terminal without scrolling and with room left to enter a command H without losing HELP text. Text at each level should refer to all HELP + available at the next level. For example: ' Further HELP is available. Type:a# HELP FIRST-LEVEL-PARAMETER1t% HELP FIRST-LEVEL-PARAMETER2 !1 FIRST-LEVEL-PARAMETER1u0 This is the text displayed when the user types:$ >HELP FIRST-LEVEL-PARAMETER1G This text is located in the root file. In place of the text, you maydG enter an indirect file reference after the level-number line to accessn the text of another HELP file. ' Further HELP is available. Type:= HELP FIRST-LEVEL-PARAMETER1 SECOND-LEVEL-PARAMETER1E; HELP FIRST-LEVEL-PARAMETER1 SECOND-LEVEL-PARAMETER2t!2 SECOND-LEVEL-PARAMETER10 This is the text displayed when the user types:< >HELP FIRST-LEVEL-PARAMETER1 SECOND-LEVEL-PARAMETER1= This text may be located in the root file or, if the level 1lA parameter was followed by an indirect file reference, in another G HELP file. As with level 1, you may enter an indirect file reference D in place of text at level 2. You may do this for parameters at any level.  L!2 SECOND-LEVEL-PARAMETER20 This is the text displayed when the user types:> >HELP FIRST-LEVEL-PARAMETER1 SECOND-LEVEL-PARAMETER2!1 FIRST-LEVEL-PARAMETER2L0 This is the text displayed when the user types:& >HELP FIRST-LEVEL-PARAMETER23 IND_FILE_REFFHELP files can also include indirect references to other HELP files inDplace of text. You may substitute indirect file references for 004 O F &textCafter any parameter, regardless of its level number. Indirect file Dreferences greatly decrease search time: once the HELP processor Csees the indirect reference, the file containing the referenceS'(called the base file) is left behind. PEBecause the HELP processor uses the characters 1-9, @ and # when theyHBappear in the first column, a comment character (!) precedes theseDcharacters in the example. The comment character allows the exampleEto be included in this HELP file without being processed literally byr=HELP. Omit comment characters when writing your HELP files. t8The format for an indirect file reference is: @FILENAME?The @ sign must appear in the first column, with the file namelBimmediately following (no intervening blank space). The file nameFmust be in capital leters. The default file type is .HLP, so you needDonly state the file name. (NOTE: Do not use the @ sign as the firstDnon- blank character of a line of HELP text; this causes the file tofail.) tFThe file referenced in this manner has the same format as other HELPEfiles, with one exception: if the indirect file contains level@Fnumbers, these must be greater than the level number in the base fileFthat references the indirect file. For instance, if the base filecontains the lines !1 BACKUP !@DCLBACKUPtFthen DCLBACKUP.HLP can contain only level numbers 2 through 9.1DCLBACKUP.HLP, then, will resemble the following:e, This is the text displayed when you type: >HELP BACKUPF The HELP processor accesses this text through the indirect file reference in the base file.!2 SECOND-LEVEL-PARAMETERt, This is the text displayed when you type:+ >HELP BACKUP SECOND-LEVEL-PARAMETER F Level numbers in DCLBACKUP.HLP begin with 2, because the indirectF file reference in the base file is level 1. All level numbers inF the indirect file must be greater than the level number of the, indirect file reference in the base file. 3 SYNONYMSAGHELP allows cross-references between two or more synonymous parameters. 8These similar parameters access the same HELP file text.EBecause the HELP processor uses the characters 1-9, @ and # when theyABappear in the first column, a comment character (!) precedes theseDcharacters in the example. The comment character allows the exampleEto be included in this HELP file without being processed literally byt=HELP. Omit comment characters when writing your HELP files. e&The format for a synonym is: #SYNONYMFThe # sign must appear in the first column, immediately followed byFthe synonym (no intervening blank space). The synonym must be incapital letters.FThe synonyms must all precede the main entry to which they refer. TheFmain entry and all synonym entries must have the same level number.CIn the following example, ARCHIVE and RESTORE both precede the maini:entry, BACKUP, and all three parameters indirectly access DCLBACKUP.HLP. H !1 ARCHIVE!#BACKUP !1 RESTORE!#BACKUP !1 BACKUP !@DCLBACKUPsEAlternatively, text could have been entered after 1 BACKUP, and alln:three synonymous parameters would have accessed this text.3 CONCEPT_SUMMARY D The following table summarizes HELP file conventions for the three B basic HELP concepts: nested files, indirect file references, and synonyms.F----------------------------------------------------------------------B CONCEPT OPERATOR OPERATOR SPACE AFTER UPPERB POSITION OPERATOR CASEF----------------------------------------------------------------------FA. Nested File 1-9 1st Column Yes ParametersFB. Indirect File @ 1st Column No ParametersE Reference EC. Synonym # 1st Column No File Name-F----------------------------------------------------------------------3 LOCAL B In addition t00<TADATADATADATADATADATADATADATADATAo system HELP, you can create your own local HELP. I Local HELP is HELP text located in the default directory on the default eB volume (usually the user's own directory). To create local HELP:A 1. Using an editor, create a file named HELP.HLP. HELP.HLP sC functions as a root file; it is the first file accessed by  the processor. F 2. Enter into HELP.HLP any introductory text and, at minimum, allI first level parameters. (See HELP HELP FORMAT NESTED_FILE.) Note t? that the same HELP file conventions that apply to system HELP < files also apply to local HELP files. (See HELP HELP FORMAT CONCEPT_SUMMARY.) e B 3. As with system HELP files, you have the option of placing @ either text or an indirect file reference after a level-C number line. (See HELP HELP FORMAT IND_FILE_REF.) Indirect B file references in local HELP files, however, access otherA local HELP files--not system HELP files. A file accessedD@ by an indirect file reference must be named filename.HLPC and must be placed in the default directory on the default : volume. This file must also follow HELP file conventions.A Once you have created the HELP.HLP root file and any other locala- HELP files, you access local HELP by typing:  r >HELP % parameter(s) orR >HELP/LOCAL parameter(s)@ Note that you can only use local HELP after you have logged in. files--not system HELP files. A file accessedD@ by a@X 3I xmust be placed in the default directory on the default : volume. This file must also follow HELP file conventions.A Once you have created the HELP.HLP root file and any other locala- HELP files, you access local HELP by typing:  r >HELP % parameter(s) orR >HELP/LOCAL parameter(s)@ Note that you can only use local HELP after you have logged in. files--not system HELP files. A file accessedD@ by aD Here are the octal values for the ASCII character set. ASCII is a F code used to translate letters, numbers, and symbols that people can : understand into a code which the computer can use. Most E RSX-11M/M-PLUS functions requiring numerical values for characters  use octal ASCII.  I 000 NUL 020 DLE 040 SP 060 0 100 @ 120 P 140 ` 160 p I 001 SOH 021 DC1 041 ! 061 1 101 A 121 Q 141 a 161 q I 002 STX 022 DC2 042 " 062 2 102 B 122 R 142 b 162 r hI 003 ETX 023 DC3 043 # 063 3 103 C 123 S 143 c 163 s nI 004 EOT 024 DC4 044 $ 064 4 104 D 124 T 144 d 164 t dI 005 ENQ 025 NAK 045 % 065 5 105 E 125 U 145 e 165 u nI 006 ACK 026 SYN 046 & 066 6 106 F 126 V 146 f 166 v I 007 BEL 027 ETB 047 ' 067 7 107 G 127 W 147 g 167 w I 010 BS 030 CAN 050 ( 070 8 110 H 130 X 150 h 170 x I 011 HT 031 EM 051 ) 071 9 111 I 131 Y 151 i 171 y I 012 LF 032 SUB 052 * 072 : 112 J 132 Z 152 j 172 z I 013 VT 033 ESC 053 + 073 ; 113 K 133 [ 153 k 173 { I 014 FF 034 FS 054 , 074 < 114 L 134 \ 154 l 174 | I 015 CR 035 GS 055 - 075 = 115 M 135 ] 155 m 175 } I 016 SO 036 RS 056 . 076 > 116 N 136 ^ 156 n 176 ~ G 017 SI 037 US 057 / 077 ? 117 O 137 _ 157 o 177 DELM 0G See also HELP ASCII DECIMAL for the decimal values required by EDT and G HELP ASCII HEXADECIMAL for the decimal values used by VMS functions. S 2 DECIMAL ? Here are the decimal values for the ASCII character set. EDT functions use decimal ASCII. I 000 NUL 016 DLE 032 SP 048 0 064 @ 080 P 096 ` 112 p I 001 SOH 017 DC1 033 ! 049 1 065 A 081 Q 097 a 113 q I 002 STX 018 DC2 034 " 050 2 066 B 082 R 098 b 114 r I 003 ETX 019 DC3 035 # 051 3 067 C00D O F & 083 S 099 c 115 s eI 004 EOT 020 DC4 036 $ 052 4 068 D 084 T 100 d 116 t I 005 ENQ 021 NAK 037 % 053 5 069 E 085 U 101 e 117 u II 006 ACK 022 SYN 038 & 054 6 070 F 086 V 102 f 118 v I 007 BEL 023 ETB 039 ' 055 7 071 G 087 W 103 g 119 w I 008 BS 024 CAN 040 ( 056 8 072 H 088 X 104 h 120 x I 009 HT 025 EM 041 ) 057 9 073 I 089 Y 105 i 121 y I 010 LF 026 SUB 042 * 058 : 074 J 090 Z 106 j 122 z I 011 VT 027 ESC 043 + 059 ; 075 K 091 [ 107 k 123 { I 012 FF 028 FS 044 , 060 < 076 L 092 \ 108 l 124 | I 013 CR 029 GS 045 - 061 = 077 M 093 ] 109 m 125 } I 014 SO 030 RS 046 . 062 > 078 N 094 ^ 110 n 126 ~ G 015 SI 031 US 047 / 063 ? 079 O 095 _ 111 o 127 DELM 0 2 HEXADECIMAL  3B Here are the hexadecimal values for the ASCII character set. VMS# functions use hexadecimal ASCII. A 00 NUL 10 DLE 20 SP 30 0 40 @ 50 P 60 ` 70 p A 01 SOH 11 DC1 21 ! 31 1 41 A 51 Q 61 a 71 q 1A 02 STX 12 DC2 22 " 32 2 42 B 52 R 62 b 72 r 9A 03 ETX 13 DC3 23 # 33 3 43 C 53 S 63 c 73 s 8A 04 EOT 14 DC4 24 $ 34 4 44 D 54 T 64 d 74 t A 05 ENQ 15 NAK 25 % 35 5 45 E 55 U 65 e 75 u HA 06 ACK 16 SYN 26 & 36 6 46 F 56 V 66 f 76 v fA 07 BEL 17 ETB 27 ' 37 7 47 G 57 W 67 g 77 w A 08 BS 18 CAN 28 ( 38 8 48 H 58 X 68 h 78 x A 09 HT 19 EM 29 ) 39 9 49 I 59 Y 69 i 79 y A 0A LF 1A SUB 2A * 3A : 4A J 5A Z 6A j 7A z A 0B VT 1B ESC 2B + 3B ; 4B K 5B [ 6B k 7B { A 0C FF 1C FS 2C , 3C < 4C L 5C \ 6C l 7C | A 0D CR 1D GS 2D - 3D = 4D M 5D ] 6D m 7D } A 0E SO 1E RS 2E . 3E > 4E N 5E ^ 6E n 7E ~ ? 0F SI 1F US 2F / 3F ? 4F O 5F _ 6F o 7F DEL   H 58 X 68 h 78 x A 09 HT 19 EM 29 ) 39 9 49 I 59 Y 69 i 79 y A 0A LF 1A SUB 2A * 3A : 4A J 5A Z 6A j 7A z A 0B VT 1B ESC 2B + 3B ; 4B K 5B [ 6B k 7B { A 0C FF 1C FS 2C , 3C < 4C L 5C \ 6C l 7C | A 0D CR 1D GS 2D - 3D = 4D M 5D ] 6D m 7D } A 0E SO 1E RS 2E @X 3KF / 3F ? 4F O 5F _ 6F o 7F DEL   H 58 X 68 h 78 x A 09 HT 19 EM 29 ) 39 9 49 I 59 Y 69 i 79 y A 0A LF 1A SUB 2A * 3A : 4A J 5A Z 6A j 7A z A 0B VT 1B ESC 2B + 3B ; 4B K 5B [ 6B k 7B { A 0C FF 1C FS 2C , 3C < 4C L 5C \ 6C l 7C | A 0D CR 1D GS 2D - 3D = 4D M 5D ] 6D m 7D } A 0E SO 1E RS 2E  C BAD or the Bad Block Locator Utility tests disks and DECtapes for B the location and number of bad blocks. BAD then records this bad ? block information on the volume for use by the MCR Initialize > Volume (INI) command and by the backup and restore utilities.) The general form of the command line is:  BAD>device:[/switch[es]]  where:9 device Specifies a physical device. The specification 4 consists of two alphanumeric characters followed 1 by a 1 to 3 digit octal unit number and colon.h aB switch[es] Specifies one or more optional switches that . qualify the BAD command line. Multiple BAD 2 switches for a device must be specified on one 4 line. If you do not specify a switch, BAD begins ) pattern checking of individual blocks.l rE For more information on switches, type HELP BAD SWITCHES or HELP BAD STANDALONE. 2 SWITCHES& The following are legal BAD switches: iH /ALLOCATE:volume label Prompts you for additional bad blocks to I 00LTADATADATADATADATADATADATADATADATA/ALO:volume label be allocated to [0,0]BADBLK.SYS and to be o1 added to the bad block descriptor file.. lK /LIST Lists all bad blocks by number (decimal) as o0 /LI they are located. eD /MANUAL Prompts you for additional bad blocks3 /MAN which are entered in the bad blockWA descriptor file, then searches theo3 disk for bad blocks.t < /OVERRIDE Ignores the last track information onF /OVR a last-track device, and creates a bad E block descriptor file on the last goods; block before the last track.   pF /PATTERN=m:n Specifies the double word data pattern 9 /PAT=m:n used to locate bad blocks.i 7 /RETRY Force I/O driver to retry bad blockso aD /UPDATE Prompts you for additional bad blocks@ or /UPD which are added to the bad block / descriptor file.k s 2 STANDALONE> These switches are for the stand-alone version only of BAD: tE /CSR=nnnnnn Specifies the CSR address of a device SB that is not in a standard location. uB /VEC=nnn Specifies the interrupt vector addressD of a device that is not in a standard( location. ' /WCHK Causes a write check.c , /NOCHK Negates /WCHK  2 STANDALONE> These switches are for the stand-alone version only of BAD: tE /CSR=nnnnnn Specifies the CSR address of a device SB that is not in a standard location. uB /VEC=nnn Specifies the interrupt vector addressD of a devi@X 3Fpion. ' /WCHK Causes a write check.c , /NOCHK Negates /WCHK  2 STANDALONE> These switches are for the stand-alone version only of BAD: tE /CSR=nnnnnn Specifies the CSR address of a device SB that is not in a standard location. uB /VEC=nnn Specifies the interrupt vector addressD of a deviFPDP-11 BASIC-PLUS-2 is a layered product supported on RSX-11M/M-PLUS@systems. To invoke BASIC-PLUS-2, type the BP2 command: >BP2. CBASIC-PLUS-2 may be installed under a name other than BP2. In thisFcase, type the three-character name assigned by your system manager.  FHELP is available on BASIC-PLUS-2 concepts, statements, functions, and@commands. You can get HELP both at the MCR command level and@within the BASIC environment. For BASIC-PLUS-2 V2.0, HELP topics(available at the MCR command level are: ?ARRAYS CHARACTER COMMANDS COMMENTS CONSTANTSvBCONVENTIONS DATA_TYPES DEBUGGER DIRECTIVES EXPRESSIONS@HELP IMMEDIATE LABELS LINE MODIFIERS%QUALIFIERS STATEMENTS VARIABLESyCHELP on these topics, plus associated subtopics, also is available twithin the BASIC environment. sFTo access HELP text from the MCR command level, type: >HELP/BP2 topic.FTo access HELP files within the BASIC environment, first invoke BASIC>with the BP2 command and then type HELP in response to theBASIC-PLUS-2 prompt.  V I  TTYPES DEBUGGER DIRECTIVES EXPRESSIONS@HELP IMMEDIATE LABELS LINE MODIFIERS%QUALIFIERS STATEMENTS VARIABLESyCHELP on these topics, plus associated subtopics, also is available twithin the BASIC environment. sFTo access HELP text from the MCR command level, type: >HELP/BP2 topic.FTo access HELP files within the BASIC environment, first invoke 00T O F &@ZX 3J,,* theBASIC-PLUS-2 prompt.  V I  TTYPES DEBUGGER DIRECTIVES EXPRESSIONS@HELP IMMEDIATE LABELS LINE MODIFIERS%QUALIFIERS STATEMENTS VARIABLESyCHELP on these topics, plus associated subtopics, also is available twithin the BASIC environment. sFTo access HELP text from the MCR command level, type: >HELP/BP2 topic.FTo access HELP files within the BASIC environment, first invoke  h BRU /qualifier(s) source target rB The BRU command invokes the BRU system utility program to provideE functions that allow you to back up and restore Files-11 volumes. ItoA transfers files from a volume to a backup volume (or volumes) toeC ensure that copies of the files are available in case the originalFD files are destroyed. If for any other reason the copies need to be @ retrieved, you can restore the back up files with this command. F Both source and target fields can specify disk or tape units, but at E least one of the source or target fields must be a disk. The source F field may optionally include from 1 to 16 file specifications, which 6 are used to select which files are to be transferred. k5 DCL users access BRU through the DCL BACKUP command.f@ See HELP BRU QUALIFIERS for a list of the available qualifiers. a1 See HELP BRU EXAMPLES for some command examples. 2 APPEND BRU>/APPEND source target G The /APPEND qualifier appends a backup set from the input disk volume tC to the last backup set on the output tape or on the output disk if $ you are using the /IMAGE qualifier.C If the output tape was positioned at the beginning, /APPEND causescF a skip to the logical end-of-tape before writing the new backup set. @ The output volume is searched for the last logical end-of-file. lI If the output tape is already positioned at logical end-of-tape, /APPEND D causes BRU to start writing where the tape is currently positioned. aD If the output tape is not positioned at the beginning or at logicalH end-of-tape, /APPEND/REWIND will rewind the tape and then space forward until the logical end-of-tape.o iE If the tape is a continuation tape (that is, not the first tape of aaG tape set) or if the last backup set does not end on the tape, an errorr message is displayed.G If the output device is a disk and you are using the /IMAGE qualifier,eF /APPEND causes BRU to check the container file header for the logicalH end-of-file on teh output disk. BRU then starts writing at the logical end-of-file.o aG If the output disk is a continuation disk (that is, not the first diskeB in a set) or if the last backup set does not end on the disk, BRU displays an error message.aC You cannot use the /APPEND qualifier during a backup operation to o a mounted disk. 2 BACKUP_SET# BRU>/BACKUP_SET:name source targetr sG The /BACKUP_SET qualifier allows you to specify the name of the backuplD set to be placed on the tape or disk. For tape and for an unmountedG disk, the default name is the volume name of the disk being backed up.aD This name may be up to 12(10) characters long. For a mounted inputE or output disk during an image backup or restore operation, you can aF specify the full backup set file name with the /BACKUP_SET qualifier.E If you do not specify the file name, the default is [0,0]BACKUP.SYS.r rG When applied to an output tape volume, the backup set name assigns thecH name of the backup set being placed on the volume. Multiple backup sets" may be placed on a single volume. E When applied to an input tape volume, the first tape is searched foraF the specified backup set name. If you specify no backup set name with@ the input volume, the first backup set on the tape is restored. aB Several sequential backup sets from the same tape can be restoredF without having to rewind the tape between operations. The first tape= in the backup set is not rewound unless you specify /REWIND.uI When this qualifier is applied to an input di00\TADATADATADATADATADATADATADATADATAsk volume, BRU searches theiF entire disk for each backup set you specify. Each backup set is then? restored in the order of the backup set names provided by you.n2 BADp t. BRU>/INITIALIZE/BAD:[AUTOMATIC] source target MANUAL OVERRIDE vB The /BAD qualifier is used with the /INITIALIZE qualifier during @ tape-to-disk or disk-to-disk operations. /BAD creates the file BADBLK.SYS on the output disk.n nF For last-track devices, AUTOMATIC causes the manufacturer's bad blockD information and the software-detected bad sector file to be used toF create BADBLK.SYS. For non-last-track devices, the software bad blockA descriptor block is used to create BADBLK.SYS. AUTOMATIC is theO default option. D OVERRIDE applies only to last-track devices, causing the last-trackH device to appear to be a non-last-track device. When OVERRIDE is speci-A fied, BRU uses the software bad block descriptor block to createF= BADBLK.SYS and ignores the manufacturer-written information.b kF MANUAL accepts the addresses of bad blocks entered interactively from; the terminal. MANUAL also requests BRU to use either the bE manufacturer-written bad block information and the software-detected E bad sector file (for last-track devices) or the bad block descriptors9 block (for non-last-track devices) to create BADBLK.SYS.t 2 BUFFERSc W- BRU>/INITIALIZE/BUFFERS:number source targett eF The /BUFFERS qualifier specifies the default number of directory FileE Control Blocks (FCBs) on each volume. The FCBs are stored in memorydG by the ACP when the volume is mounted. The more FCBs there are storedBG in memory, the faster that files contained in heavily used directorieshG are found. The default number of buffers is the same as for the inputd disk. rE The /BUFFERS qualifier is used with the /INITIALIZE qualifier duringU) tape-to-disk or disk-to-disk operations. 2 COMPAREe " BRU>/COMPARE:option source target hG The /COMPARE qualifier compares the data on the output device with the.@ data on the input device and reports any differences. No data 1 transfer takes place during a compare operation.y hD The command line specifying the compare operation must be identicalE to that entered when the data on the output volume was created, withI the exception of the /INITIALIZE, /NOINITIALIZE, and /APPEND qualifiers.G The option SINGLEBUFFER overrides the default for MU-type devices. UsepG of this option ensures that the error messages BACKUP returns are moreoE descriptive but that the operation will usually require more time torJ complete. SINGLEBUFFER is the default for devices other than the MU-type.G The option DOUBLEBUFFER is the default for MU-type devices. It ensurestE that the compare-host function is used in comparing data transferredcG from a disk to a single MU-type magnetic tape. See the RSX-11M/RSX-11Se5 Release Notes, Version 4.4, for further information.d 2 CREATEDo h7 BRU>/CREATED:BEFORE:(dd-mmm-yy hh:mm:ss) source targeta BEFORE:dd-mmm-yy BEFORE:hh:mm:ss! AFTER:(dd-mmm-yy hh:mm:ss)m AFTER:dd-mmm-yy AFTER:hh:mm:sso rB The /CREATED qualifier allows you to select for backup or restore> files created before or after the specified date and/or time. B If you use the BEFORE option, BRU copies any files created before the specified date and/or time. F If you use the AFTER option, BRU copies any files created on or after: the specified date and/or on or after the specified time. H If you specify both a date and time, the date and time must be enclosedF in parentheses. If you specify only a date or only a time, the paren-H theses are not necessary. If you specify only a time, the current date B is used. If you specify only a date, the time defaults to 00:00. O 2 DENSITYB c" BRU>/DENSITY:number source target eF The /DENSITY qualifier specifies the density at which a magnetic tape3 is to be written. The following values are legal:/ o) Drive Default Density Optional Density  c TU10/TE00d O F &10 800 NONEe TU16/TE16 800 1600t TU45 800 1600a TU77 800 1600p, TSV05 1600 NONE TS11 1600 NONE TU78 6250 1600, TU80 1600 NONE oF If you specify /DENSITY with /APPEND, you must specify the density atI which the existing tape data was written. If you specify a density otherh> than the original density, a warning message is displayed and1 processing will continue at the correct density.t OF If you specify an incorrect density for a restore operation, an error6 message is displayed and the operation is terminated. 2 DIRECTORY   BRU>/DIRECTORY source& BRU>/BACKUP_SET:name/DIRECTORY source 6D The /DIRECTORY qualifier lists the backup set names or files on theD specified tape volume. In a multivolume tape set, the directory isH on the first tape of the set. In a multivolume disk set, the directory! is on the first disk of the set.e nH When specified with no backup set name, /DIRECTORY lists all the backup sets on the volume. eE When used with the /BACKUP_SET qualifier, /DIRECTORY lists the files.D in the specified backup set. If the backup set is not on the tape,? an error message is displayed and the operation is terminated.n 2 DISPLAYe n BRU>/DISPLAY source target  H The /DISPLAY qualifier prints the file name and UFD of each file as the+ header for that file is being transferred. 2 ERRORS d BRU>/ERRORS:number eH The /ERRORS qualifier requests termination of a restore operation afterA the specified number of nonfatal tape read errors have occurred.I T@ The range for number is 0 to 65535. The default is /ERRORS:25. 2 EXAMPLES4 Example of a complete disk copy to a 1600 bpi tape: a BRU>/DENSITY:1600 DB2: MM0: E Example of a copy from tape to disk, initializing the disk and usinge prompting:d D BRU>/DENSITY:1600 FROM: MM1:h TO: DK2:g# INITIALIZE THE OUTPUT DISK? YESR SE Example of a disk-to-disk transfer from a mounted disk, initializingo the output disk:e e BRU>/INITIALIZE/MOUNTED FROM: DB0:s TO: DB3:r5 Example of a multiple disk-to-disk backup operation:l/ BRU>/INITIALIZE/IMAGE:SAVE/VERIFY/MOUNTe FROM: DL0: TO: DY0: S5Example of a multiple disk-to-disk restore operation:i, BRU>/INITIALIZE/IMAGE:RESTORE/VERIFY FROM: DY0: TO: DL0: T 2 EXCLUDEg I% BRU>/EXCLUDE ddnn:filespec(s) target aG The /EXCLUDE qualifier specifies that files matching the file specifi-oC cations in the command line be excluded from the backup or restorer operation. 2 EXTEND d, BRU>/INITIALIZE/EXTEND:number source target ID The /EXTEND qualifier specifies the default number of blocks a fileC will be extended when that file has exhausted its allocated space.9 This value is used by an ACP when the volume is mounted.  YD The /EXTEND qualifier is used with the /INITIALIZE qualifier during) tape-to-disk or disk-to-disk operations.p9 The default is the number of blocks from the input disk.h 2 HEADERSi b- BRU>/INITIALIZE/HEADERS:number source targeti H The /HEADERS qualifier specifies the number of file headers to allocateG initially to the index file. The primary reason for preallocating filetF headers is to locate them near the storage bitmap file. Proper place-H ment of file headers can help reduce head motion during I/O operations. sE The /HEADERS qualifier is used with the /INITIALIZE qualifier during * tape-to-disk and disk-to-disk operations. 2 INITIALIZE #NOINITIALIZEh2 IMAGER" BRU>/IMAGE:SAVE source target :RESTORE@ /IMAGE specifies that you want to do a multivolume disk-to-diskB backup or restore operation. If you are doing a backup operationC you must specify the SAVE option on the command line. If you wantPB to do a restore operation, you must specify the RESTORE operation on the command line.B If you want to do a backup operation, you must use this qualifierB when you create the backup file that represents the ima00lTADATADATADATADATADATADATADATADATAge copy of@ the input disk. For example, you must use this qualifier when D copying a large disk to several small disk, or when copying several% small disks to a mounted large disk. C If you want to do a restore operation, you must use this qualifier A when restoring from a backup file that represents the image copy  of the original disk. 2 INVOLUME ! BRU>/INVOLUME:name source targett oF The /INVOLUME qualifier specifies the volume label of the input disk./ This name can be up to 12(10) characters long.e pF For disk-to-tape or disk-to-disk operations, the volume label of the G input volume is checked to verify that the disk has the correct label. = This check ensures that you do not back up the wrong volume.  H For restore operations, BRU checks the volume label of the disk that is" stored in the backup set on tape.2 LENGTH O! BRU>/LENGTH:number source targete rG The /LENGTH qualifier specifies the length of the output tape in deci-tF mal feet. If the length specified exceeds the length of the tape, theG entire length of the output tape will be used. In cases where you knowmG the end of the tape must not be used, you can specify a shorter length : to ensure that you do not write on that part of the tape. 2 MAXIMUMe i- BRU>/INITIALIZE/MAXIMUM:number source targeta sF The /MAXIMUM qualifier specifies the maximum number of files that canF be placed on a volume, as determined by the number of file headers inF the volume's index file. The default maximum is the maximum number of files on the input disk.r 2 MOUNTED   BRU>/MOUNTED source targetc sD The /MOUNTED qualifier allows you to back up files from a disk that! is mounted as a Files-11 volume.a oF Note that disk activity while the files are being backed up may cause undesirable results.e 2 NEW_VERSIONT / BRU>/NEW_VERSION source targeta uF The /NEW_VERSION qualifier resolves file specification conflicts thatH occur during restore operations and during backups to mounted disk whenE using the /IMAGE:SAVE qualifier. When a file already exists on the BD output disk volume, /NEW VERSION creates a new version of the file.2 NOINITIALIZE a BRU>/INITIALIZE source target BRU>/NOINITIALIZE source target cD The /INITIALIZE qualifier specifies that you want to initialize theE output disk during a tape-to-disk or disk-to-disk operation. Initia-/E lization places a Files-11 structure on the disk, including the bootr6 block, the home block, and the required system files. sD Along with the /INITIALIZE qualifier, you can specify the followingE qualifier when you are initializing a disk: /BAD, /BUFFERS, /EXTEND,eE /HEADERS, /MAXIMUM, /NOPRESERVE, /OUTVOLUME, /POSITION, /PROTECTION,TA and /WINDOWS. If you do not specify any of these qualifiers, the . characteristics of the input volume are used. aF /NOINITIALIZE specifies that you do not want to initialize the outputE disk because it is already in Files-11 format. The output disk must > be mounted as a Files-11 volume. You cannot enter any of theD initialization qualifiers when you specify /NOINITIALIZE. Doing so results in an error message., 2 NOPRESERVE D) BRU>/INITIALIZE/NOPRESERVE source targetS OE The /NOPRESERVE qualifier specifies that you do not want to preservel? file-IDs. BRU suppresses the message about file-IDs not beingG preserved. Note that when restoring to a mounted disk, not preservingd# files-IDs is BRU's default action.  m@ When file-IDs are not preserved, new file-IDs are assigned and  incremented sequentially. 2 NOSUPERSEDEu #SUPERSEDE 2 OUTVOLUME  I" BRU>/OUTVOLUME:name source target rH The /OUTVOLUME qualifier specifies the volume label of the output disk.5 This label can be up to 12(10) characters in length.n wF For disk-to-tape backup operations, the name of the input disk volumeG stored on the output tape volume is changed to the name specified withp the /OUTVOLUME qualifier. G For tape-to-disk restore operations or for disk-to-disk transfers, theaE name of the output di00t O F &sk volume is changed to the name specified with  the /OUTVOLUME qualifier. 2 POSITION 1 BRU>/INITIALIZE/POSITION:BEGINNING source target MIDDLEo END BLOCK:numbere aD The /POSITION qualifier specifies the location of the index file onE the output disk volume being initialized, usually to minimize accessaE time. The BEGINNING, MIDDLE, and END options specify the beginning,fB middle, and end of a volume. The BLOCK:number option specifies aB block number where the index file is to be placed. The BEGINNING@ option is generally used only when a disk mostly contains large contiguous files. :J The default location is at the same location as that on the input disk. 2 PROTECTION i6 BRU>/INITIALIZE/PROTECTION:SYSTEM:value source target OWNER:value GROUP:value WORLD:value aG The /PROTECTION qualifier specifies the default protection for all new@ files created on the disk after the BRU transfer has completed.A Each access code consists of a positional keyword specifying theGH protection group (SYSTEM:, OWNER:, GROUP:, WORLD:) followed by a 4-code- group specifying the protection, as follows:h a R - allow read access to file W - allow write access to file/ E - allow file to be extended D - allow file to be deletedv eE If this qualifier is not specified, the defaults from the input diskr are used. 2 QUALIFIERS t The available qualifiers are: 0 /APPEND /ERRORS:number /POSITION:BEGINNING+ /BACKUP_SET:name /EXCLUDE MIDDLEo+ /BAD:[AUTOMATIC] /EXTEND:number END:2 MANUAL /HEADERS:number BLOCK:number' OVERRIDE /IMAGE:SAVEh+ :RESTOREl6 /[NO]INITIALIZE /PROTECTION:group:value= /BUFFERS:number /INVOLUME:name /REVISED:BEFORE:date/time / /COMPARE /LENGTH:number AFTER:date/timee3 /CREATED:BEFORE:date/time /MAXIMUM:number /REWINDr+ AFTER:date/time /MOUNTED /SUPERSEDEN2 /DENSITY:number /NEW_VERSION /TAPE_LABEL:name" /DIRECTORY /NOPRESERVE /UFD# /DISPLAY /NOSUPERSEDE /VERIFYE' /OUTVOLUME:name /WINDOWS:numberR I Type HELP BRU "qualifier" for the description of a particular qualifier. 2 REVISED/ ]7 BRU>/REVISED:BEFORE:(dd-mmm-yy hh:mm:ss) source target/ BEFORE:dd-mmm-yyF BEFORE:hh:mm:ss! AFTER:(dd-mmm-yy hh:mm:ss)t AFTER:dd-mmm-yy AFTER:hh:mm:sse RF The /REVISED qualifier allows you to back up or restore files revised- before or after the specified date and time.  /H If you use the BEFORE option, BRU copies any files revised on or before the specified date and/or time. PF If you use the AFTER option, BRU copies any files revised on or after: the specified date and/or on or after the specified time. eI If you specify both a date and time, the date and time must be enclosed yE in parentheses. If you specify only a date or time, the parentheses/E are not necessary. If you specify only a time, BRU uses the currentrE date as a default. If you specify only a date, the time defaults tot 00:00.c2 REWIND e BRU>/REWIND source target eF The /REWIND qualifier causes the first magnetic tape of a tape set to> be rewound before BRU executes a backup or restore operation. rE When specified with an input tape, the first tape of the tape set ise0 rewound before it is searched for a backup set. u@ When specified with /APPEND, the input tape is rewound and thenD searched for the logical end-of-tape before BRU executes the backup operation.p 2 SUPERSEDEd , BRU>/SUPERSEDE source targetc H The /SUPERSEDE qualifier specifies that when file specifications on theD output volume are identical to the file specifications on the inputG volume, the file on the output volume is deleted and replaced with thee file from the input volume. iF The /NOSUPERSEDE qualifier specifies that when file specifications onD the output volume are identical to file specifications on the inputE volume, the files on the input volume are not00|TADATADATADATADATADATADATADATADATA transferred (the filesE* on the output volume are not superseded).F For an /IMAGE operation, if you create a backup set file on a mountedF volume and a file with the same name exists, /SUPERSEDE replaces this file. t /NOSUPERSEDE is the default. 2 TAPE_LABEL c$ BRU>/TAPE_LABEL:label source target .F The /TAPE_LABEL qualifier specifies the 6-character volume identifierG on the ANSI VOL1 label to be placed on the tape during a backup opera-tI tion or to be compared with the label on the tape for append and restoreoE operations. This allows you to verify that you are using the correctf tape.2 UFDa p BRU>/NOINITIALIZE/UFD lD The /UFD qualifier creates UFDs (if they do not already exist) on aE mounted output volume, then copy into it the files from the same UFDLB on the input volume. If /UFD is not specified, the files are not/ copied. /UFD is used only with /NOINITIALIZE.L2 VERIFY! BRU>/VERIFY:option source targetp eB The /VERIFY qualifier verifies that the output volume was written= correctly by comparing the input volume to the output volumer and reporting any differences.F@ During a backup operation, each tape or disk is verified before> starting the next volume in the backup set. During a restore= operation, however, the entire backup set is restored beforeu beginning the verify operation.G The option SINGLEBUFFER overrides the default for MU-type devices. UseG of this option ensures that the error messages BACKUP returns are more E descriptive but that the operation will usually require more time tooJ complete. SINGLEBUFFER is the default for devices other than the MU-type.G The option DOUBLEBUFFER is the default for MU-type devices. It ensureslE that the compare-host function is used in comparing data transferredrG from a disk to a single MU-type magnetic tape. See the RSX-11M/RSX-11Se5 Release Notes, Version 4.4, for further information.d 2 WINDOWSo h. BRU>/INITIALIZE/WINDOWS:numbers source target tH The /WINDOWS qualifier specifies the default number of mapping pointersF to be allocated for file windows when initializing an output disk. AF file window consists of a number of pointers and is stored in memory  when the file is opened. h oJ The default number of mapping pointers is the same as for the input disk.single MU-type magnetic tape. See the RSX-11M/RSX-11Se5 Release Notes, Version 4.4, for further information.d 2 WINDOWSo h. BRU>/INITIALIZE/WINDOWS:numbers source target tH The /WINDOWS qualifier specif@ X 3Jile windows when initializing an output disk. AF file window consists of a number of pointers and is stored in memory  when the file is opened. h oJ The default number of mapping pointers is the same as for the input disk.single MU-type magnetic tape. See the RSX-11M/RSX-11Se5 Release Notes, Version 4.4, for further information.d 2 WINDOWSo h. BRU>/INITIALIZE/WINDOWS:numbers source target tH The /WINDOWS qualifier specifF CDA helps you determine the cause of system crashes by analyzing and G formatting a memory dump created by the Executive Crash Dump Module. nD You can use switches to select the information that CDA formats and lists.S) The general form of the command line is: SJ >CDA [listfile/sw],[binaryfile/sw]=[symbolfile/STB],crash-input[/sw] i/ listfile the human-readable CDA output listingc B binaryfile a copy of the binary data the crash dump module writes on the crash dump device :J symbolfile the symbol definition file (RSX11M.STB) for the crashed system fC crash-input the source of the binary input to CDA; you specify thenB crash dump device or a binary file created by CDA & in a previous analysis a For more CDA information, type:+ HELP CDA LIST (for the list file switches)-- HELP CDA BINARY (for the binary file switch)A6 HELP CDA ANALYSIS (for the crash-input file switches) E See the RSX-11M/M-PLUS Crash Dump Analyzer Reference Manual00 O F & for morel information.f 2 ANALYSIS+ The switches for the crash-input file are:h p5 /ACT (or /ATL) Dumps control blocks of active tasksh( /ADV Lists information on all devices /ALL Does entire analysis4 /CLI (or /CPB) Lists contents of CLI parser blocks) /CLQ Lists contents of the clock queueo0 /CTL Dumps controller info (KRBs, CTBs, etc.); /DEV (or/DCB,/SCB,/UCB)Lists information on active devicesn6 /DMP:a:b:[c] Dumps memory addresses between a and b;- c is an optional starting virtual address a /HDR Dumps task headers( /KDS:start:stop Dumps kernel data space/ /KIS:start:stop Dumps kernel instruction space 6 /KMR Forces assignment of kernel address registers : /PCB (or /PAR) Dumps partition control block information /POOL Dumps primary poolt /SECPOL Dumps secondary pool@ /STD (or /TCB,/TAL) Dumps task control blocks of all installed tasks. / /-SYS Does not dump system information pagesmA /TSK=name:start:stop Dumps task virtual address space start and v (or /TASK,/TAS) stop2 BINARY# The switch for the binary file is:a a? /MEMSIZ:n Specifies memory size in K words (default: n=124.)c a g2 LIST$ The switches for the list file are: 5 /EXIT:n Terminates analysis after n analysis errorsm p+ /LIMIT:n Limits output listing to n pages T( /LINES:n Limits page length to n lines $ /-SP Does not spool the list fileoes not dump system information pagesmA /TSK=name:start:stop Dumps task virtual address space start a@X 3N&e binary file is:a a? /MEMSIZ:n Specifies memory size in K words (default: n=124.)c a g2 LIST$ The switches for the list file are: 5 /EXIT:n Terminates analysis after n analysis errorsm p+ /LIMIT:n Limits output listing to n pages T( /LINES:n Limits page length to n lines $ /-SP Does not spool the list fileoes not dump system information pagesmA /TSK=name:start:stop Dumps task virtual address space start a@ CMP, the file compare program, is used to determine differencesD between ASCII coded files. The general form of the command line is: ; outfile/switch(es)=infile1/switch(es),infile2/switch(es)B If no outfile is specified, the default is TI:. The defaults forE the second input file are taken from the specification for the first input file.F For further help on the switches available with the CMP utility, type HELP CMP switches.A You may also invoke CMP through the DCL DIFFERENCE command. See  HELP/DCL DIFFERENCE.s 2 SWITCHES: The following are the legal switches for the CMP Utility: m) /BL Include blank lines in comparisoni> /CB List infile2 with change bars indicating differences7 /CO Comments (;) are to be included in comparisonc) /DI Print differences between filesoG /FF Include records of a single form-feed character in comparisonlE /LI:n Count of lines to be identical in comparison before a matche7 /LN Assign line numbers when displaying differencesI/ /MB Include blanks and tabs in comparisonlN /SL:au Create a SLP-compatible output file of differences with "au" as the  audit trailw- /TB Include trailing blanks in comparison 5 /VB:nnn Specify octal character code for change bar Print differences between filesoG /FF Include records of a single form-feed character in comparisonlE /LI:n Count of lines to be identical in comparison before a matche7 /LN Assign line numbers @X 3Fin comparisonlN /SL:au Create a SLP-compatible output file of differences with "au" as the  audit trailw- /TB Include trailing blanks in comparison 5 /VB:nnn Specify octal character code for change bar Print differences between filesoG /FF Include records of a single form-feed character in comparisonlE /LI:n Count of lines to be identical in comparison before a matche7 /LN Assign line numbers 00TADATADATADATADATADATADATADATADATAF The console output task (COT..) communicates with the Console Logger.@ The following is a list of the privileged commands you can use: - To show status: SET /COLOG (nonprivileged)+ To turn on console logging: SET /COLOG=ON- To turn off console logging: SET /COLOG=OFF7 To change a console terminal: SET /COLOG/COTERM=TTnn:2 To enable the console terminal: SET /COLOG/COTERM5 To disable the console terminal: SET /COLOG/NOCOTERM: To change a console logfile: SET /COLOG/LOGFILE=filename To open a new version of theO, current logfile: SET /COLOG/LOGFILE= To open a new version ofh. LB:[1,4]CONSOLE.LOG: SET /COLOG/LOGFILE5 To disable the console logfile: SET /COLOG/NOLOGFILEs @ The /COTERM, /NOCOTERM, /LOGFILE, and /NOLOGFILE options can beC specified with each other, with SET /COLOG, or with SET /COLOG=ON. A See Chapter 3 of the RSX-11M/M-PLUS System Management Guide for l? further information on the Console Logger and the COT... task.SET /COLOG/LOGFILE=filename@X 3M pLOG/LOGFILE= To open a new version ofh. LB:[1,4]CONSOLE.LOG: SET /COLOG/LOGFILE5 To disable the console logfile: SET /COLOG/NOLOGFILEs @ The /COTERM, /NOCOTERM, /LOGFILE, and /NOLOGFILE options can beC specified with each other, with SET /COLOG, or with SET /COLOG=ON. A See Chapter 3 of the RSX-11M/M-PLUS System Management Guide for l? further information on the Console Logger and the COT... task.SET /COLOG/LOGFILE=filenameE The File Dump Utility (DMP) allows you to examine the contents of a RD specific file or volume of files. Output can be formatted in ASCII,A octal, decimal, hexadecimal, or Radix-50 form and dumped to any H suitable output device (printer, terminal, tape, or disk). DMP has two C modes of operation: FILE MODE and DEVICE MODE. File mode is for SG dumping virtual records or virtual blocks; device mode is for dumping TE logical blocks. In file mode, the device must be mounted using the H MCR MOUNT command. In device mode, the device must be mounted foreign. ) The general form of the command line is:.$ outfile/switches = infile/switches  where:h? outfile is the output file specification for the dump. TI: isd acceptable.= infile is the name of the file to be dumped, file mode only,I3 or the input device specification, in device mode.g = For a list of available qualifiers type HELP DMP qualifiers.l 2 QUALIFIERS< Following is a list of legal qualifiers to be used with the File Dump Utility (DMP):e /AS /LC /BA /LIMd /BL /LW /BY /MD /DC /OCTe /DENS /RC /FI /RW /HD /R5 /HD:U /SB /HF /SF /HX /SP /ID /WD /LBJ A DMP command line may specify more than one format qualifier. However, J some of the qualifiers are mutually exclusive (see the documentation for E more details). If no qualifiers are specified, /OCT is the default.H , For help on a specific DMP qualifier, type: HELP DMP qualifiernamet2 AS  /AStJ Use the /AS qualifier to dump the data one byte at a time in ASCII mode.D Control characters (0 through 37) are printed as a circumflex (^) F followed by the alphabetic character corresponding to the character  code plus 100.2 BA /BAaE This qualifier specifies a two-word base block address, where n is hC the high-order base block (octal) address and m is the low-order ,F base block address. The format is BA:n:m. You can specify decimal K addresses using a period after the number. This qualifier is useful for mM specifying block numbers that exceed 16 bits. When you use this qualifier 7J in a command line, the result is to set the base address; no blocks are dumped.g2 BL /BL eG Specifies the range of blocks to be dumped, where n is the first and rL m is the last. The format is BL:n:m. Values of n and m cannot exceed 16 L bits. BL is a required qualifier in device mode. You can precede the BL M qualifier with the /HD, /HD:U, or /HF qualifier to specify that th00 O F &e header iI should be dumped with the file (using /BL:0 will dump only the header).o0 /HD dumps the file header in formatted format4 /HD:U dumps the file header in unformatted format- /HF dumps the file header in Files-11 formatbA See the complete documentation on the DMP utility for complete  information.2 BY /BYn? Specifies that the data is to be dumped in octal byte format.v2 DC /DCuA Specifies that the data is to be dumped in decimal word format.e2 DENS /DENS C This qualifier allows you to specify the density of an input tapenE (where n = 800, 1600, or 6250 bpi) when DMP is in device mode only./K The format is DENS:n. If you do not use this qualifier, DMP attempts to rI read an input tape at the density currently set in the tape controller. 2 FI /FI I In file mode, the file ID number can be used instead of a file name as G a file specification for input. The format is FI:file-number:seqnum.e2 HD:U /HDm /HD:U mD /HD dumps the file header in formatted form. /HD:U dumps the fileG header in unformatted form. Type HELP DMP BL for further informationi2 on using this qualifier in combination with /BL.2 HF /HFi2 Dumps the file header in Files-11 header format.2 HX /HX > Dumps the data in hexadecimal byte format. Remember that a E hexadecimal dump reads from right to left. (See also /LW and /WD.)e2 ID /IDn9 Causes the version of the DMP utitlity to be displayed. 2 LB /LB L Requests logical block information for a file. DMP displays the starting I block number and a contiguous or noncontiguous indication for the file.u2 LC /LClD Specifies that data should be dumped with lowercase letters where H appropriate, provided that the output device has lowercase capability.2 LIMe /LIMK Limits the range of addresses to dump. The LIM qualifier is overridden : when used with the MD qualifier. The format is LIM:n:m.2 LW /LWeF Specifies that the data should be dumped in hexadecimal double-word format.i2 MD /MDaE Allows control of line numbers in a memory dump. Line numbers are h@ not reset when the block boundary is crossed. The value of n D specifies the value of the first line number. The format is MD:n.2 OCTh /OCTH Specifies that the data should be dumped in octal format in addition ? to other specified formats. The /AS and /OCT qualifiers are l( mutually exclusive when dumping bytes.2 R5 /R5fA Specifes that the data is to be dumped in Radix-50 word format.m2 RC /RC D Dumps that data a record at a time. Data format is controlled by F the /AS, /DC, /HX, /LW, /R5, or /WD qualifiers. The /RC and the /BL$ qualifiers are mutually exclusive.2 RW /RWT1 Rewinds the magnetic tape before reading input.t2 SB /SB:ndG Spaces n blocks forward or backward (use -n) on tape. The format is e SB:n./2 SF /SFsG Spaces n EOF marks forward or backward (use -n) on tape. The format s is SF:n.2 SP /SPu2 Spools the dump output file to the line printer.2 WD /WD ( Dumps data in hexadecimal word format. by F the /AS, /DC, /HX, /LW, /R5, or /WD qualifiers. The /RC and the /BL$ qualifiers are mutually exclusive.2 RW /RWT1 Rewinds the magnetic tape before reading input.t2 SB /SB:ndG Spaces n blocks forward or backward (use -n) on tape. The format is e SB:n./2 SF /SFsG Spaces n EOF marks forward or backward (use -n) on tape. The format s is SF:n.2 SP /SPu@X 3F D ( Dumps data in hexadecimal word format. by F the /AS, /DC, /HX, /LW, /R5, or /WD qualifiers. The /RC and the /BL$ qualifiers are mutually exclusive.2 RW /RWT1 Rewinds the magnetic tape before reading input.t2 SB /SB:ndG Spaces n blocks forward or backward (use -n) on tape. The format is e SB:n./2 SF /SFsG Spaces n EOF marks forward or backward (use -n) on tape. The format s is SF:n.2 SP /SPu00TADATADATADATADATADATADATADATADATAA The Disk Save and Compress (DSC) utility program copies Files-11D disk volumes to tape or disk, or copies DSC-created tapes back ontoC disk. When copying information onto a disk, DSC reallocates and 7 consolidates the resulting disk's data storage area.  - The general form of the DSC command line is: 7 outdev:[filelabel][/switch]=indev:[filelabel][/switch]  where: 5 outdev: The physical volume to which data is copied.( The format of outdev: is ddnn:, where2 dd is the two-letter ASCII device name, and n is the octal unit number. : filelabel If the output device is a disk, outlabel is the4 new disk label. If outlabel is omitted, the label1 of the disk is the same as that of the originalu4 input disk. If the output device(s) is a magtape,4 outlabel is the file name of the disk image on the3 tape. If you do not specify an input file label,4 DSC copies the first file it encounters after its  current position on the tape.s n8 switch One or more of the following optional switches: s' /AP, /BAD, /BL, /CMP, /DENS, /RW, /VEl. For information on individual switches type: HELP DSC switchu b8 indev lists the input device(s); same format as outdev f eE See the RSX-11M/M-PLUS Utilities Manual for more information on DSC.l2 AP /AP e? The /AP switch causes DSC to append a copy of the input device A to the specified output magtape. /AP is valid only if that tape ; is the first tape of the tape set. The copy may extend too succeeding magtapes.i l2 BADe /BAD A8 There are five forms of the DSC switch /BAD. They are: i0 /BAD=MAN Causes DSC to prompt for bad blocks to& be added to the output volume's bad block file, [0,0]BADBLK.SYS t8 /BAD=MAN:NOAUTO Combination of /BAD=MAN and /BAD=NOAUTO& (Either order is acceptable) s/ /BAD=NOAUTO Causes DSC to ignore the bad block ( descriptor area on the disk. The bad& block file will be empty unless bad blocks are entered manually.x d2 /BAD=OVR Causes DSC to treat the output disk as a+ non-last track device when searching forD- bad block data.Use this switch only if thet( BAD utility was used specifying /OVR.< /BAD=MAN:OVR This is a combination of /BAD=MAN and /BAD=OVR2 BL /BL n, The blocking factor switch has the form of: r /BL=n p< where n is the number of disk blocks that should be written> at one time. The default is n=4, and 4 is the smallest value that should be specified. < Specifying a large value for n decreases the amount of time: necessary for the copy by reducing the number of required I/O commands. s< Once a blocking factor is specified, it becomes the default< blocking factor until a new value is specified or until DSC9 exits. If magtape is specified as the input device, the ; blocking factor is automatically set to the value at whichb that tape was created.t 2 CMP  /CMPT d; The /CMP switch causes DSC to compare the input and outputp8 volumes without first performing a copy operation. The= input and output volumes cannot both be magtapes. Multireelr; magtapes can be compared with a disk. When the compare ofs> the current tape is completed, the operation will continue on4 the next volume until all reels have been compared. e= If tape is involved, it is suggested that it be specified asa input.o2 DENS /DENS > The DSC density switch for magtapes has the following format: c. /DENS=1600 Specifies that the output magtape& be written at 1600 bpi. It is not# necessary to use this switch one input magtapes.a ./ /DENS=800:1600 The switch is not valid on anys* magtape controller which automatically- senses density (e.g. TM03). It specifiest* that the first two blocks on the first& output tape be written at 800 bpi.) The remainder of the magtape set willo be written at 1600 bpi.D dCFor MM: tapes, the default density is 800 bpi, for MS: tapes, it is &1600 bpi, and for MF:, it is 6250 bpi.2 RW /RW 6D The /RW switc00 O F &h specifies to DSC that the magtapes be rewound beforeD they are used. The switch applies to all tapes on the same side of  the command line. t2 VE /VE F The /VE switch specifies to DSC that it should do a compare operationF between the input and output volumes after the input volume is copiedC to the output volume. The input and output volumes cannot both be magtapes.efault density is 800 bpi, for MS: tapes, it is &1600 bpi, and for MF:, it is 6250 bpi.2 RW /RW 6D The /RW switc@,X 3D>used. The switch applies to all tapes on the same side of  the command line. t2 VE /VE F The /VE switch specifies to DSC that it should do a compare operationF between the input and output volumes after the input volume is copiedC to the output volume. The input and output volumes cannot both be magtapes.efault density is 800 bpi, for MS: tapes, it is &1600 bpi, and for MF:, it is 6250 bpi.2 RW /RW 6D The /RW switc t5 EDI or EDIT is a line oriented editor supplied with  RSX-11M, and RSX-11M-PLUS. i l EDI Command Conventions:s c< 1. The asterisk (*) can be used in place of any number2 in an EDI command. It is read as 32,767. F? 2. An elipsis (...) can be used in many search strings toa< identify characters beween the first and last char- acter of the string.  : 3. EDI allows the use of abbreviations for commands. A A summary of legal EDI commands may be obtained by entering the o following command:e i HELP EDI SUMMARY  - 2 SUMMARYi lD Listed below is a summary of EDI commands. Only the first word of 3 two-word commands is included for ease of search.   ADD INSERT RETYPE  BEGIN KILL SAVE  BLOCK LINE SEARCHh BOTTOM LIST SELECTe CHANGE LOCATE SIZEh CLOSE MACRO TAB CONCATENATION NEXT TOP  CTRL/Z OPEN TYPEw DELETE OUTPUT UNSAVEf END OVERLAY UPPERa ERASE PAGE VERIFYm ESCAPE PASTE WRITEg EXIT PRINT FILE READi FIND RENEW FORM RETURNR C A summary description of each command may be obtained by enteringo the following command: c HELP EDI commande2 ADD ADD A[DD] string P< The command ADD string adds the character string' indicated to the current line.h ! ADD AND PRINT AP stringO N< Adds the character string indicated to the current' line and prints the entire line.E2 BEGINm BEGIN B[EGIN]  T< Sets the current line to the line preceding the top< line in the file or block buffer. This command cre-< ates a copy of the file when it is invoked in line mode.2 BLOCK  BLOCK ON/OFF BL[OCK] [ON] orm BL[OCK] [OFF] h< Changes to and from the EDI block mode of accessing text.2 BOTTOM BOTTOM BO[TTOM] < Moves the line pointer to the bottom of the current< block (in block mode) or to the bottom of the file (in line mode).2 CHANGE, CHANGE [n]C[HANGE] /string1/string2[/]... n: Replaces string1 with string2 in the current line n times.h2 CLOSEe CLOSE CL[OSE] [filespec] < Transfers the remaining lines in the block buffer and: input file to the output file and closes all files. ! CLOSE AND DELETE CDL [filespec] O< Transfers the remaining lines in the block buffer and= the input file into the output file, closes the outputo( file, and deletes the input file. H CLOSE SECONDARY CLOSES s' Closes the secondary input file. 2 CONCATENATIONn% CONCATENATION CHARACTER CC [letter]h < Changes the concatenation character to the character& specified. (The default is &).2 CTRL/Z  e7 Closes files and terminates the editing session.E2 DELETE DELETE D[ELETE] [n] ors D[ELETE] [-n] < Deletes the current line and n-1 lines if n is a po-< sitive number. D00TADATADATADATADATADATADATADATADATAeletes n lines preceding the current< line if n is a negative number. Negative numbers can" only be used in block mode. O$ DELETE AND PRINT DP [n] or DP [-n] < Deletes the current line and prints the new current line.2 END END E[ND] T< Sets the current line to the last line in a file or block buffer.2 ERASEE ERASE ERASE [n]s , Erases the current line in line mode.2 ESCAPE  or ALTMODE  < Prints the previous line and makes it the new current line. 2 EXIT EXIT EXIT [filespec] e< Transfers the remaining lines in the block buffer and; input file to the output file, closes files, renamesr; the output file, and terminates the editing session.h u EXIT AND DELETE ED [filespec]  e< Transfers the remaining lines in the block buffer and; input file to the output file, closes files, renamesE3 the output file, and deletes the input file.P2 FILE FILE FIL[E] filespec t@ Transfers lines from the input file to both the output< file and the specified file until a formfeed or end of file is encountered.2 FIND FIND [n]F[IND] string  < Searches the current block or input file, beginning< at the line following the current line, for the nth< occurrence of the string. (If n is not specified,< EDI searches for the next occurrence of the string.)2 Sets the line pointer to the line it finds.2 FORM FORM FEED FFs s1 Inserts a form feed into the block buffer. 2 INSERT INSERT IN[SERT] [string]l f< Enters the specified string, immediately following< the current line. If no string is specified, EDI enters input mode. 2 KILL KILL KILLo g< Closes input and output files and deletes the output file.2 LINE( LINE CHANGE [n]LC /string1/string2[/] c< Changes all occurrences of string1 in current line" (and n-1 lines) to string2.2 LIST LIST ON TERMINAL LI[ST]d t< Prints all the lines remaining in the block buffer or" input file on the terminal.2 LOCATE LOCATE [n]L[OCATE] string u< Locates the nth occurrence of the specified string.< In block mode, the search stops at the end of the current block.l2 MACRO  MACRO MACRO [x] definition E A; Defines macro number x to be the EDI commands in thee definition. r MACRO CALL MC[CALL] < Retrieves macro definition stored in a file, MCALL;n.  MACRO EXECUTE [n]Mx [a] < Executes macro x [n] times, while passing numeric ar-1 gument [a]. The value x may be 1,2, or 3.c s" MACRO IMMEDIATE [n]  s< Defines and executes a macro n times. Stores it as macro number 1.2 NEXT NEXT N[EXT] [n] or N[EXT] [-n] < Establishes a new current line n lines away from the current line. r NEXT AND PRINT NP[n] or NP[-n]i m/ Establishes and prints new current line. 2 OPEN! OPEN SECONDARY OP[ENS] filespece a* Opens the specified secondary file.2 OUTPUT OUTPUT ON/OFF OU[TPUT] ON or  OU[TPUT] OFF  E6 Enables or disables a file transfer to an out- put file in line mode.s 2 OVERLAYc OVERLAY O[VERLAY] [n] < Deletes n lines, enters Input mode, and inserts new8 line(s), as typed, in place of the deleted lines.2 PAGE PAGE PAG[E] n or -n < Enters block mode. Reads page n into current block< buffer. If n is less than current page, goes to top= of file first. Pages are set by form feed characters.[ T PAGE FIND [n]PF[IND] string < Searches successive blocks for the nth occurrence of the string. " PAGE LOCATE [n]PL[OCATE] string < Searches successive blocks for the nth occurrence of the string.2 PASTEn% PASTE PA[STE] /s00 O F &tring1/string2[/]  E< Searches all remaining lines in file or block buffer2 for string1 and replaces them with string2.2 PRINTr PRINT P[RINT] [n] < Prints the current line and the next n-1 lines. The1 last line printed is the new current line.e2 READ READ REA[D] n  < Reads the next n blocks of text into the block< buffer. If the buffer contains text, the new text is appended to it.2 RENEWn RENEW REN[EW][n] A< Writes the current block to an output file and reads8 a new block from an input file (block mode only).2 RETURN  N< Prints the next line and makes it the new current> line. This command also exits from input mode if typed( as the first character of a line.2 RETYPE RETYPE R[ETYPE] stringl s< Replaces the current line with the specified string< or deletes the current line if no string is speci- fied.2 SAVE SAVE SA[VE] [n] [filespec] c< Saves the current line and the next n-1 lines in the specified file.2 SEARCH) SEARCH AND CHANGE SC/string1/string2[/]  t4 Locates string1 and replaces it with string2.2 SELECT SELECT PRIMARY SPp m7 Reestablishes the primary file as an input file.  Y SELECT SECONDARY SSs n8 Selects the open secondary file as an input file.2 SIZE SIZE SIZE nl s< Specifies the maximum number of lines which can be read into a block buffer.2 TAB  TAB TA[B] ON ort TA[B] OFF n) Turns automatic tabbing on or off. 2 TOP TOP T[OP]A < Moves the line pointer to the line preceding the top= line of the current block in block mode, or the top ofR< the file in line mode. This command creates a copy9 of the file each time it is executed in line mode.a n TOP OF FILE TOF < Returns to the top of the input file and saves all of< the previously edited pages. This command creates a8 new version of the file each time it is executed.2 TYPE TYPE TY[PE] [n]  8 Prints the next n lines. Identical to the print ? command in line mode. However, in block mode, the linec7 pointer remains at the current line unless EDIi reached an end of block. 2 UNSAVE UNSAVE UNS[AVE] [filespec]l < Inserts all lines from the specified file following< the current line. If no file is named, EDI uses SAVE.TMP.2 UPPERe UPPER CASE UC ON or UC OFFe c< Enables or disables conversion of lower case char-< acters to upper case letters, when they are entered at a terminal.H2 VERIFY VERIFY V[ERIFY] ON or V[ERIFY] OFFs < Selects whether the operation of Locate and Change; commands will be verified (printed after the line isr located or changed).e2 WRITEf WRITE W[RITE]e u< Writes the contents of the block buffer to an output( file and erases the block buffer.  e c< Enables or disables conversion of lower case char-< acters to upper case letters, when they are entered at a terminal.H2 VERIFY VERIFY V[ERIFY] ON or V[ERIFY] OFFs < Selects whether the operation of Locate and Change; commands will be verified (printed after the line isr located or changed).e2 WRITEf WRITE W[RITE]e u< Writes the contents of the block buffer t@X 3v< Enables or disables conversion of lower case char-< acters to upper case letters, when they are entered at a terminal.H2 VERIFY VERIFY V[ERIFY] ON or V[ERIFY] OFFs < Selects whether the operation of Locate and Change; commands will be verified (printed after the line isr located or changed).e2 WRITEf WRITE W[RITE]e u< Writes the contents of the block buffer t00TADATADATADATADATADATADATADATADATA1 HELP&You can get help on a topic by typing: & HELP topic subtopic subsubtopic... ,A topic can have one of the following forms: A 1. An alphanumeric string (e.g. a command name, option, etc.)+ 2. The match-all or wildcard symbol (*) Examples: HELP SUBSTITUTE NEXT HELP CHANGE SUBCOMMAND HELP CH EIf a topic is abbreviated, HELP displays the text for all topics thatmatch the abbreviation.1 KEYPADBEnter the keypad editor through the CHANGE command with the keypadEoption set (see SET KEYPAD command). See HELP CHANGE KEYPAD for more. information.2 VT100eWlqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqk lqqqqqqqqwqqqqqqqqwqqqqqqqqwqqqqqqqqki]x ^ x DOWN x x x x x x FNDNXT x DEL L x [x x x x x x x  GOLD x HELP x x xamx x x x x LEFT x RIGHT x x x x FIND x UND L xETx UP x v x x x tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquXmqqqqqqqqvqqqqqqqqvqqqqqqqqvqqqqqqqqj x PAGE x SECT x APPEND x DEL W xRDELETE Delete character x x x x xvLINEFEED Delete to beginning of word x COMMANDx FILL x REPLACEx UND W xRBACKSPACE Backup to beginning of line tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquZCTRL/A Compute tab level x ADVANCEx BACKUP x CUT x DEL C xRCTRL/D Decrease tab level x x x x xvCTRL/E Increase tab level x BOTTOM x TOP x PASTE x UND C xRCTRL/K Define key tqqqqqqqqnqqqqqqqqnqqqqqqqqnqqqqqqqquXCTRL/R Refresh screen x WORD x  EOL x CHAR x xTCTRL/T Adjust tabs x x x x ENTER xmCTRL/U Delete to beginning of line xCHNGCASEx DEL EOLx SPECINSx x RCTRL/W Refresh screen tqqqqqqqqvqqqqqqqqnqqqqqqqqu xVCTRL/Z Exit to line mode x LINE  x SELECT x xY x x x SUBS x kPress a key for help on that key. x OPEN LINE x RESET x x bTo exit, press the spacebar. mqqqqqqqqqqqqqqqqqvqqqqqqqqvqqqqqqqqj3 127[DELETE xPDeletes the character preceding the cursor and stores it in the delete characterMbuffer. When the cursor is at the leftmost character position on a line, thexPline terminator to the left is deleted and the text on that line is moved to the$right of the text in the line above.3 300kLINE - (0) .HMoves the cursor forward or backward to the nearest beginning of a line,<depending on the current direction (see ADVANCE and BACKUP). q qOPEN LINE - (GOLD 0) [MBreaks the current line into two lines. The break is placed after the cursoriNand leaves the cursor position unchanged. Pressing the OPEN LINE key when the>cursor is at the beginning of a line creates a new blank line.3 301tWORD - (1)HMoves the cursor forward or backward by a word, depending on the current#direction (see ADVANCE and BACKUP).  kCHNGCASE - (GOLD 1) 5Changes the case of a range of characters as follows:A L 1. If the select range is active, the case of each letter in the select range is changed.kN 2. If 1 does not apply and the cursor is positioned on the current searchH string, the case of each letter in the search string is changed.F This does not apply if a repeat count greater than 1 is given.H 3. If 1 and 2 do not apply, then the case of one letter is changed.I If the current direction is ADVANCE, the cursor moves forward one O ch00 O F &aracter after the change of case occurs. If the current direction isfN BACKUP, the cursor moves backward one character before the case change occurs.r3 302iEOL - (2)n eMMoves the cursor forward or backward to the nearest end of line, depending on+current direction (see ADVANCE and BACKUP).  a DEL EOL - (GOLD 2) aPDeletes all characters to the right of the cursor in the current line, includingMthe character on which the cursor is positioned, up to, but not including thehline terminator.3 303 CHAR - (3) nLMoves the cursor forward or backward one character, depending on the current#direction (see ADVANCE and BACKUP).m L (SPECINS - (GOLD 3) rKInserts any character from the DEC Multinational Character Set by using its Pdecimal value. Press the GOLD key, enter the code for the character in decimal,=press the GOLD key again, and press SPECINS (special insert).i3 304 ADVANCE - (4)c oPSets the current direction to forward for the CHAR, WORD, LINE, EOL, PAGE, SECT,PSUBS, FIND, and FNDNXT keys. ADVANCE means that movement will be toward the end.of the buffer; that is, to the right and down. L (BOTTOM - (GOLD 4)m r3Positions the cursor at the end of the text buffer.a3 305SBACKUP - (5) PSets the cursor direction to backward for the CHAR, WORD, LINE, EOL, PAGE, SECT,KSUBS, FIND, and FNDNXT keys. BACKUP means that movement will be toward the-5beginning of the buffer; that is, to the left and up.   RTOP - (GOLD 5) C9Positions the cursor at the beginning of the text buffer.n3 306bCUT - (6)f eMMoves the select range to the PASTE buffer. The select range is all the textrObetween the selected position (see SELECT) and the current cursor position. IfJno SELECT has been made and the cursor is positioned on the current searchPstring, that string is cut. Each time CUT is used, the previous contents of thePASTE buffer are discarded.f ; aPASTE - (GOLD 6) LInserts the contents of the PASTE buffer directly to the left of the cursor.3 307uPAGE - (7) TPMoves the cursor to the top of a page. A page is defined by a delimiter string,Nwhich can be set by the SET ENTITY command. The default page delimiter is theformfeed character (CTRL/L). n dCOMMAND - (GOLD 7) oKAllows you to enter a line mode command to be executed without exiting from Jkeypad mode. The command is processed when you press the ENTER key on thekeypad.3 308SECT - (8) MMoves the cursor 16 lines (one section) forward or backward, depending on themGcurrent direction (see ADVANCE and BACKUP). The cursor is moved to them"beginning of the appropriate line. E NFILL - (GOLD 8)t gPPerforms a word fill on the select range. A word fill reformats a block of textPso that as many full words as possible are placed on each line without exceedingNthe right margin. You can set the right margin with the SET WRAP command. IfOit is not set, the default is the terminal width - 1. For purposes of the FILL 1command, only spaces are used as word delimiters.e3 309sAPPEND - (9) TOMoves the select range to the end of the PASTE buffer. The select range is all Jthe text between the selected position (see SELECT) and the current cursorIposition. If no SELECT has been made and the cursor is positioned on the /current search string, that string is appended.  u nREPLACE - (GOLD 9) SODeletes the select range and replaces it with the contents of the PASTE buffer.p3 310 HELP - (PF2) l6Use the HELP key to obtain help on the editing keypad.3 3119FNDNXT - (PF3) rMSearches for the next occurrence of the search string previously entered withnIthe FIND key. The direction of the search is the current one (ADVANCE oroBACKUP). e mFIND - (GOLD PF3)i dNSearches for an occurrence of a string. Press the FIND key and then enter theNstring using the main keyboard. 00TADATADATADATADATADATADATADATADATA End the string by pressing either the ADVANCEOor BACKUP key to set the direction of the search, or the ENTER key to search innthe current direction.3 312 UP-ARROW P=The ^ (up-arrow) key moves the cursor to the character above.n3 313oDOWN-ARROW ?The v (down-arrow) key moves the cursor to the character below.E3 314ARIGHT-ARROWF AThe --> (right-arrow) key moves the cursor to the next character.s3 315NLEFT-ARROW eEThe <-- (left-arrow) key moves the cursor to the preceding character.e3 316ESELECT - (.) eLMarks one end of a select range. A select range is a block of text on whichPvarious operations (such as CUT, APPEND, or FILL) can be performed. To create a select range: 1F 1. Move the cursor to either the beginning or end of the text you wish to select.1 2. Press the SELECT key.h8 3. Move the cursor to the opposite end of the text. r8You can then perform the desired operation on the range. m sRESET - (GOLD .) cJCancels the effect of the GOLD key if it was pressed by mistake, cancels aIselect range, or cancels any partly entered command string. Also sets the current direction to forward.r3 317 DEL L - (PF4)n ODeletes text from the cursor position to the end of the current line, including Mthe line terminator. If the cursor is positioned at the beginning of a line,oIthe entire line is deleted. The deleted text is saved in the delete lineibuffer.  g UND L - (GOLD PF4) mJInserts the contents of the delete line buffer directly to the left of thecursor.e3 318eDEL W - (-)l nPDeletes text from the cursor to the beginning of the next word, storing the textin the delete word buffer.  tUND W - (GOLD -) tJInserts the contents of the delete word buffer directly to the left of thecursor.o3 319tDEL C - (,)e KDeletes the character on which the cursor is positioned and saves it in theudelete character buffer. ( DUND C - (GOLD ,) tOInserts the contents of the delete character buffer directly to the left of themcursor.(3 320GOLD - (PF1) OLets you use the lower (alternate) function of the editing keys. Press the GOLDf"key, then the key you wish to use. LYou can also use the GOLD key to enter counts. Press GOLD and then the mainKkeyboard numeric keys, followed by the key to which the count should apply.tNThe DELETE key and CTRL/U can be used to edit the number, and thus cannot haveLa count applied to them in this manner. The SPECINS key treats the count as(the code for a character to be inserted. NThe GOLD key is used with main keyboard keys for additional editing functions.PFor help on "GOLD character" (for example, GOLD A), press the character's key onthe main keyboard.3 321t ENTERs@Sends information to EDT for functions such as FIND and COMMAND. t hSUBS - (GOLD ENTER)MDeletes the search string, replaces it with the contents of the PASTE buffer,5and finds the next occurrence of the string. To use:y e 1. Press SELECT.o 2. Type the new text. 3. Press CUT. 4. Press FIND.n+ 5. Enter the text you wish to replace.n GEach time you press SUBS, EDT makes one substitution and finds the next Ioccurrence of the search string. You can use a repeat count for multipleTsubstitutions.3 001FTAB COMPUTE - (CTRL/A) PSets the indentation level count to the value obtained from dividing the currentNcursor column position by the SET TAB number. If the cursor position is not aMmultiple of the SET TAB number, an error results. You must have a SET TAB inreffect to use CTRL/A.e3 004eTAB DECREASE - (CTRL/D)h mKUsed to decrease the indentation level counter. You must have a SET TAB inoeffect to use CTRL/D.o3 005sTAB INCREASE - (CTRL/E)u iKUsed to increase the indentation level counter. You must have a SET TAB inveffect to use CTRL/E.b3 008f1BEGINNING OF LINE00 O F & - (CTRL/H or BACKSPACE)  PMoves the cursor to the beginning of the current line. If the cursor is alreadyKat the beginning of a line, it moves to the beginning of the previous line.e3 009T$TAB INSERT - (CTRL/I or TAB) e$Moves the cursor in one of two ways: uM 1. If the tab size has not been set with SET TAB or if the cursor is notCO at the beginning of the line, a tab character is inserted at the cursorS position.t sL 2. If the tab size has been set with SET TAB or if the cursor is at theH beginning of the line, a number of tab characters and spaces areK inserted to move the cursor to the column position that is equal toi< the SET TAB value times the indentation level count.3 010s:DELETE TO BEGINNING OF WORD - (CTRL/J or LINEFEED) nNUsed to delete all characters from the cursor position to the beginning of theOword containing the cursor. If the cursor is on the first character of a word,tthe previous word is deleted.E3 011rDEFINE KEY - (CTRL/K)  ePUsed to define a new keypad function for an editing key. You are prompted firstMto press the key to be defined, then to enter the definition. You can define Mthe key either in terms of other editing keys or with nokeypad mode commands.OOIf you press an editing key, its definition appears at the bottom of the screenoin the definition line.f3 012o"INSERT FORMFEED - (CTRL/L) r;Inserts a formfeed character () at the cursor position.d3 018EREFRESH - (CTRL/R) RORefreshes the screen display. The screen becomes blank and then the charactersrMin the buffer reappear, minus extraneous characters, such as system messages.u(The cursor remains in the same location.3 020iTAB ADJUST - (CTRL/T)  m*Indents the select range. To use the key: t= 1. Create a select range of the text you wish to adjust.eD 2. Enter a level count using the GOLD key. To decrease the tabL indentation level, precede the count with a minus sign. The default level count is 1.d 3. Use the tab adjust key.  LThe effect of CTRL/T is to increase or decrease the indentation level of theOselect range by the number of tabs specified in the level count. You must haveB(a SET TAB value in effect to use CTRL/T.3 021n.DELETE TO BEGINNING OF LINE - (CTRL/U) aPUsed to delete all characters in the current line to the left of the cursor. IfKthe cursor is on the first character of a line, the entire previous line is deleted.3 023dREFRESH - (CTRL/W) 1ORefreshes the screen display. The screen becomes blank and then the charactersdMin the buffer reappear, minus extraneous characters, such as system messages.i(The cursor remains in the same location.3 026 EXIT - (CTRL/Z)R .Shifts EDT to line editing.N3 065 TAB COMPUTE - (GOLD A) eHSets the indentation level count to the value obtained from dividing theMcurrent cursor column position by the SET TAB number. If the cursor positioneOis not a multiple of the SET TAB number, an error results. You must have a SETr"TAB value in effect to use GOLD A.3 068TAB DECREASE - (GOLD D)r oNUsed to decrease the indentation level counter. You must have a SET TAB valuein effect to use GOLD D.3 069[TAB INCREASE - (GOLD E)g NUsed to increase the indentation level counter. You must have a SET TAB valuein effect to use GOLD E.3 082tREFRESH - (GOLD R) iORefreshes the screen display. The screen becomes blank and then the charactersTMin the buffer reappear, minus extraneous characters, such as system messages.G(The cursor remains in the same location.3 084TAB ADJUST - (GOLD T)a n*Indents the select range. To use the key: = 1. Create a select range of the text you wish to adjust.[D 2. Enter a level count using the GOLD key. To decrease the tabL indentation level, precede the count with a minus sign. The default level count is 1.d 3. 00TADATADATADATADATADATADATADATADATAUse the tab adjust key.  LThe effect of GOLD T is to increase or decrease the indentation level of theOselect range by the number of tabs specified in the level count. You must haveB(a SET TAB value in effect to use GOLD T.3 085n.DELETE TO BEGINNING OF LINE - (GOLD U) aPUsed to delete all characters in the current line to the left of the cursor. IfKthe cursor is on the first character of a line, the entire previous line is deleted.3 087dREFRESH - (GOLD W) 1ORefreshes the screen display. The screen becomes blank and then the charactersdMin the buffer reappear, minus extraneous characters, such as system messages.i(The cursor remains in the same location.3 090 EXIT - (GOLD Z)L .Shifts EDT to line editing.N3 428 HELP  6Use the HELP key to obtain help on the editing keypad.3 429f DO*Processes the command that was just given. o 3 401h FIND NSearches for an occurrence of a string. Press the FIND key and then enter theNstring using the main keyboard. End the string by pressing either the ADVANCEPor BACKUP key to set the direction of the search, or the DO key to search in thecurrent direction.3 402 INSERT HERE) LLInserts the contents of the PASTE buffer directly to the left of the cursor.3 403bREMOVE iMMoves the select range to the PASTE buffer. The select range is all the textoKbetween the selected position (see SELECT) and the current cursor position.sMIf no SELECT has been made and the cursor is positioned on the current searchnLstring, that string is cut. Each time REMOVE is used, the previous contents"of the PASTE buffer are discarded. u n3 404tSELECT ILMarks one end of a select range. A select range is a block of text on whichJvarious operations (such as REMOVE, APPEND, or FILL) can be performed. Tocreate a select range: F 1. Move the cursor to either the beginning or end of the text you wish to select.n 2. Press the SELECT key.a8 3. Move the cursor to the opposite end of the text. h8You can then perform the desired operation on the range. t s3 405ePREVIOUS SCREENe MMoves the cursor 16 lines (one section) backward. The cursor is moved to ther"beginning of the appropriate line. u p3 406sNEXT SCREENE LMoves the cursor 16 lines (one section) forward. The cursor is moved to the"beginning of the appropriate line.  3 424u!BEGINNING OF LINE - (F12)  sPMoves the cursor to the beginning of the current line. If the cursor is alreadyKat the beginning of a line, it moves to the beginning of the previous line.m3 425U+DELETE TO BEGINNING OF WORD - (F13)o sNUsed to delete all characters from the cursor position to the beginning of theOword containing the cursor. If the cursor is on the first character of a word,ithe previous word is deleted.e2 VT52QHJ +--------+--------+--------+--------+)M | | | DEL L | UP | MDELETE Delete character | GOLD | HELP | | |uMLINEFEED Delete to beginning of word | | | UND L |REPLACE |eMBACKSPACE Backup to beginning of line +--------+--------+--------+--------+nM | PAGE | FNDNXT | DEL W | DOWN |oMCTRL/A Compute tab level | | | | |-MCTRL/D Decrease tab level |COMMAND | FIND | UND W | SECT | MCTRL/E Increase tab level +--------+--------+--------+--------+LMCTRL/F Fill text |ADVANCE | BACKUP | DEL C | RIGHT | MCTRL/K Define key | | | | |-MCTRL/R Refresh screen | BOTTOM | TOP | UND C |SPECINS |GMCTRL/T Adjust tabs +--------+--------+--------+--------+ MCTRL/U Delete to beginning of line | WORD | EOL | CUT | LEFT |AM00 O F &CTRL/W Refresh screen | | | | |-MCTRL/Z Exit to line mode |CHNGCASE|DEL EOL | PASTE | APPEND |NM +--------+--------+--------+--------+ M | LINE | SELECT | ENTER |TM | | | |-M | OPEN LINE | RESET | SUBS |RM*** For help on a key, press the key. +-----------------+--------+--------+ *** To exit, press the spacebar.3 127 DELETE------?Deletes the character preceding the cursor and stores it in the Odelete character buffer. When the cursor is on the leftmost character position Oon a line, the line terminator to the left is deleted and the text on that line 4is moved to the right of the text in the line above.3 300 LINE (0) ----HMoves the cursor forward or backward to the nearest beginning of a line,<depending on the current direction (see ADVANCE and BACKUP). - OPEN LINE (GOLD 0)t ---------.IInserts a carriage return/linefeed after the cursor and leaves the cursoroIposition unchanged. Pressing the OPEN LINE key when the cursor is at thet/beginning of the line creates a new blank line.t3 301h WORD (1)e----HMoves the cursor forward or backward by a word, depending on the current#direction (see ADVANCE and BACKUP).e hCHNGCASE (GOLD 1)--------5Changes the case of a range of characters as follows:r tL 1. If the select range is active, the case of each letter in the select range is changed./N 2. If 1 does not apply and the cursor is positioned on the current searchH string, the case of each letter in the search string is changed.F This does not apply if a repeat count greater than 1 is given.H 3. If 1 and 2 do not apply, then the case of one letter is changed.I If the current direction is ADVANCE, the cursor moves forward one O character after the change of case occurs. If the current direction isfN BACKUP, the cursor moves backward one character before the case change occurs.r3 302iEOL (2)---uMMoves the cursor forward or backward to the nearest end of line, depending onh/the current direction (see ADVANCE and BACKUP).o  aDEL EOL (GOLD 2).------- PDeletes all characters to the right of the cursor in the current line, includingMthe character on which the cursor is positioned, up to, but not including thefline terminator.3 303cCUT (3)---rLMoves the select range to the PASTE buffer. The select range is all the textObetween the selected position (see SELECT) and the current cursor position. IffJno SELECT has been made and the cursor is positioned on the current searchPstring, that string is cut. Each time CUT is used, the previous contents of thePASTE buffer are discarded.f e rPASTE (GOLD 3)t-----iLInserts the contents of the PASTE buffer directly to the left of the cursor.3 304h ADVANCE (4)------- PSets the current direction to forward for the CHAR, WORD, LINE, EOL, PAGE, SECT,PSUBS, FIND, and FNDNXT keys. ADVANCE means that movement will be toward the end.of the buffer; that is, to the right and down. u rBOTTOM (GOLD 4)------3Positions the cursor at the end of the text buffer.T3 305d BACKUP (5)s------PSets the cursor direction to backward for the CHAR, WORD, LINE, EOL, PAGE, SECT,KSUBS, FIND, and FNDNXT keys. BACKUP means that movement will be toward the5beginning of the buffer; that is, to the left and up.o r o TOP (GOLD 5)D---E9Positions the cursor at the beginning of the text buffer.e3 306t DEL C (6)-----oKDeletes the character on which the cursor is positioned and saves it in the delete character buffer. h uUND C (GOLD 6)f-----xOInserts the contents of the delete character buffer directly to the left of theocursor.R3 307 PAGE (7)P----PMoves the cursor to the top of a page. A page is defined by a delimiter string,Nwhic00TADATADATADATADATADATADATADATADATAh can be set by the SET ENTITY command. The default page delimiter is theformfeed character (CTRL/L). h eCOMMAND (GOLD 7) -------KAllows you to enter a line mode command to be executed without exiting fromtJkeypad mode. The command is processed when you press the ENTER key on thekeypad.x n3 308h FNDNXT (8) ------MSearches for the next occurrence of the search string previously entered withIthe FIND key. The direction of the search is the current one (ADVANCE ortBACKUP). h FIND (GOLD 8)----NSearches for an occurrence of a string. Press the FIND key and then enter theNstring using the main keyboard. End the string by pressing either the ADVANCEOor BACKUP key to set the direction of the search, or the ENTER key to search in the current direction.3 309 DEL W (9)-----hPDeletes text from the cursor to the beginning of the next word, storing the textin the delete word buffer. k UND W (GOLD 9) -----rJInserts the contents of the delete word buffer directly to the left of thecursor.f3 310c HELP (RED) ----6Use the HELP key to obtain help on the editing keypad.3 311 DEL L (GRAY)t-----nODeletes text from the cursor position to the end of the current line, includinghMthe line terminator. If the cursor is positioned at the beginning of a line,-Ithe entire line is deleted. The deleted text is saved in the delete linenbuffer.t n eUND L (GOLD GRAY)----- JInserts the contents of the delete line buffer directly to the left of thecursor.o3 312fUP (UP-ARROW)--=The ^ (up-arrow) key moves the cursor to the character above.t e iREPLACE (GOLD UP-ARROW)-------ODeletes the select range and replaces it with the contents of the PASTE buffer.l3 313DOWN (DOWN-ARROW)----?The v (down-arrow) key moves the cursor to the character below.l  dSECT (GOLD DOWN-ARROW) ----MMoves the cursor 16 lines (one section) forward or backward, depending on thehGcurrent direction (see ADVANCE and BACKUP). The cursor is moved to theo"beginning of the appropriate line.3 314oRIGHT (RIGHT-ARROW)-----eAThe --> (right-arrow) key moves the cursor to the next character.e  SPECINS (GOLD RIGHT-ARROW)w-------oKInserts any character from the DEC Multinational Character Set by using itsrPdecimal value. Press the GOLD key, enter the code for the character in decimal,=press the GOLD key again, and press SPECINS (special insert).c3 315dLEFT (LEFT-ARROW)----EThe <-- (left-arrow) key moves the cursor to the preceding character.n  tAPPEND (GOLD LEFT-ARROW)o------OMoves the select range to the end of the PASTE buffer. The select range is allaJthe text between the selected position (see SELECT) and the current cursorIposition. If no SELECT has been made and the cursor is positioned on the /current search string, that string is appended.t3 316e SELECT (.) ------LMarks one end of a select range. A select range is a block of text on whichPvarious operations (such as CUT, APPEND, or FILL) can be performed. To create a select range:L EN 1. Move the cursor to either the beginning or end of the text you wish to select.l 2. Press the SELECT key.e8 3. Move the cursor to the opposite end of the text. 8You can then perform the desired operation on the range.  rRESET (GOLD .),-----tJCancels the effect of the GOLD key if it was pressed by mistake, cancels aJselect range, or cancels any partly entered command string. Also sets thecurrent direction to forward.e3 320m GOLD (BLUE)----OLets you use the lower (alternate) function of the editing keys. Press the GOLDe"key, then the key you wish to use. .LYou can also use the GOLD key to enter counts. Press GOLD and then the mainKkeyboard numeric keys, followed by the key to which the count should apply.ENThe DELETE key and CTRL/U can be used to edit the number, and thus cannot haveLa count applied to them in this manner. The SPECINS key treats the count as(the code for a character to be inserted. dN00 O F &The GOLD key is used with main keyboard keys for additional editing functions.PFor help on "GOLD character" (for example, GOLD A), press the character's key onthe main keyboard.3 321tENTERt-----s@Sends information to EDT for functions such as FIND and COMMAND. tSUBS (GOLD ENTER)----MDeletes the search string, replaces it with the contents of the PASTE buffer,o5and finds the next occurrence of the string. To use:E S 1. Press SELECT.s 2. Type the new text. 3. Press CUT. 4. Press FIND.w+ 5. Enter the text you wish to replace.  cGEach time you press SUBS, EDT makes one substitution and finds the nextrIoccurrence of the search string. You can use a repeat count for multipleosubstitutions.3 001sTAB COMPUTE (CTRL/A). -----------GPSets the indentation level count to the value obtained from dividing the currentNcursor column position by the SET TAB number. If the cursor position is not aMmultiple of the SET TAB number, an error results. You must have a SET TAB inseffect to use CTRL/A. 3 004tTAB DECREASE (CTRL/D) ------------KUsed to decrease the indentation level counter. You must have a SET TAB in effect to use CTRL/D. 3 005 TAB INCREASE (CTRL/E) ------------KUsed to increase the indentation level counter. You must have a SET TAB inveffect to use CTRL/E.b3 006fFILL (CTRL/F)----PPerforms a word fill on the select range. A word fill reformats a block of textPso that as many full words as possible are placed on each line without exceedingNthe right margin. You can set the right margin with the SET WRAP command. IfOit is not set, the default is the terminal width - 1. For purposes of the FILL 1command, only spaces are used as word delimiters.-3 008d(BEGINNING OF LINE (CTRL/H or BACKSPACE)-----------------SPMoves the cursor to the beginning of the current line. If the cursor is alreadyKat the beginning of a line, it moves to the beginning of the previous line.m3 009lTAB INSERT (CTRL/I or TAB) ----------$Moves the cursor in one of two ways: uP 1. If the tab size has not been set with SET TAB or if the cursor is not atL the beginning of the line, a tab character is inserted at the cursor position.eL 2. If the tab size has been set with SET TAB or if the cursor is at theH beginning of the line, a number of tab characters and spaces areO inserted to move the cursor to the column position that is equal to the 8 SET TAB value times the indentation level count.3 010h1DELETE TO BEGINNING OF LINE (CTRL/J or LINEFEED)b---------------------------ENUsed to delete all characters from the cursor position to the beginning of theNword containing the cursor. If the cursor is on the first character of a wordthe previous word is deleted. 3 011iDEFINE KEY (CTRL/K)n ----------PUsed to define a new keypad function for an editing key. You are prompted firstMto press the key to be defined, then to enter the definition. You can define Mthe key either in terms of other editing keys or with nokeypad mode commands.EOIf you press an editing key, its definition appears at the bottom of the screen in the definition line. 3 012INSERT FORMFEED (CTRL/L)----------------;Inserts a formfeed character () at the cursor position.d3 0181REFRESH (CTRL/R)--------ORefreshes the screen display. The screen becomes blank and then the characterstMin the buffer reappear, minus extraneous characters, such as system messages.n(The cursor remains in the same location.3 020gTAB ADJUST (CTRL/T) ----------*Indents the select range. To use the key: o= 1. Create a select range of the text you wish to adjust. D 2. Enter a level count using the GOLD key. To decrease the tabL indentation level, precede the count with a minus sign. The default level count is 1.n 3. Use the tab adjust key.n nLThe effect of CTRL/T is to increase or decrease the indentation level of theOselect range by the number of tabs indicated by the le00TADATADATADATADATADATADATADATADATAvel count. You must haveD(a SET TAB value in effect to use CTRL/T.3 021n%DELETE TO BEGINNING OF LINE (CTRL/U)e---------------------------oPUsed to delete all characters in the current line to the left of the cursor. IfKthe cursor is on the first character of a line, the entire previous line isddeleted.3 023eREFRESH (CTRL/W)------- ORefreshes the screen display. The screen becomes blank and then the characterseMin the buffer reappear, minus extraneous characters, such as system messages. (The cursor remains in the same location.3 026 EXIT (CTRL/Z)----Shifts EDT to line editing.  T3 065TAB COMPUTE (GOLD A)- ----------- HSets the indentation level count to the value obtained from dividing theMcurrent cursor column position by the SET TAB number. If the cursor positioneOis not a multiple of the SET TAB number, an error results. You must have a SETs"TAB value in effect to use GOLD A.3 068eTAB DECREASE (GOLD D) ------------NUsed to decrease the indentation level counter. You must have a SET TAB valuein effect to use GOLD D.3 069-TAB INCREASE (GOLD E) ------------NUsed to increase the indentation level counter. You must have a SET TAB valuein effect to use GOLD E.3 070tFILL (GOLD F)----PPerforms a word fill on the select range. A word fill reformats a block of textPso that as many full words as possible are placed on each line without exceedingNthe right margin. The right margin can be set by the SET WRAP command. If itLis not set, the default is the terminal width - 1. For purposes of the FILL1command, only spaces are used as word delimiters.-3 082dREFRESH (GOLD R)-------lORefreshes the screen display. The screen becomes blank and then the charactersIMin the buffer reappear, minus extraneous characters, such as system messages.r(The cursor remains in the same location.3 084aTAB ADJUST (GOLD T) ----------GAdjusts the tab level of the select range. The key is used as follows:  = 1. Create a select range of the text you wish to adjust.iD 2. Enter a level count using the GOLD key. To decrease the tabL indentation level, precede the count with a minus sign. The default level count is 1.  3. Use the tab adjust key.n eLThe effect of GOLD T is to increase or decrease the indentation level of theOselect range by the number of tabs indicated by the level count. You must haved(a SET TAB value in effect to use GOLD T.3 085 %DELETE TO BEGINNING OF LINE (GOLD U)e---------------------------oPUsed to delete all characters in the current line to the left of the cursor. IfKthe cursor is on the first character of a line, the entire previous line isddeleted.3 087eREFRESH (GOLD W)------- ORefreshes the screen display. The screen becomes blank and then the characterseMin the buffer reappear, minus extraneous characters, such as system messages. (The cursor remains in the same location.3 090 EXIT (GOLD Z)----Shifts EDT to line editing.  O1 CHANGEGThe CHANGE command puts EDT in change mode. Use change mode to edit atl/the character level rather than the line level.  t-Format: CHANGE [range] [;nokeypad command(s)]u iFThe optional range specifies the cursor position when you enter change7mode. If you omit range, the current position is used.a rGThere are three submodes of change mode. Which submode you use dependseHon the type of terminal you are using and whether or not you wish to useFthe auxiliary (numeric) keypad for editing commands. These modes are:  1. Hardcopy modee 2. Keypad modea 3. Nokeypad mode  hDIf the CHANGE command contains a semicolon (;) it may be followed byFnokeypad commands. If the last nokeypad command is EX, EDT returns toBline mode for the next command line. This is the only form of theCCHANGE command that may be used in a startup command file or macro. 2 ENTITIESBEntities are used in nokeypad mode commands to specify the text onBwhich a command will operate. Each entity represents a portion ofE00 O F &text, which may be anything from a single character to an entire textpFbuffer. Most entities can be preceded by a count, which indicates the"number of entities to be affected. 3 CHARACTERpGThe character entity is specified by the letter C. It selects a singlehcharacter of text.3 WORD@A word consists of a string of characters terminated by a set ofCdelimiter characters. The default delimiter characters are spaces,yDtabs, carriage returns, line terminators, line feeds, formfeeds, and?vertical tabs. Spaces are handled in a special way: all spacesoHfollowing a word up to the first non-space character are considered partFof a word. Other delimiters are not considered part of the word theyBterminate. Rather, they are considered to be words by themselves,Funless SET WORD NODELIMITER in in effect. If SET WORD NODELIMTER is inAeffect, delimiters are not considered words by themselves but arecHconsidered part of the word they terminate. The three word entities are: D W Specifies the entire word in which the cursor is positioned.I BW Specifies all characters preceding the cursor up to the beginninge of the word.G EW Specifies all characters from the cursor through the end of thea word.c i?You can change the word delimiters with the SET ENTITY command.i3 LINEThe line entities are: D L Specifies the entire line in which the cursor is positioned.I BL Specifies all characters preceding the cursor up to the beginningH of a line. (When the cursor is positioned at the beginning of a> line, the BL entity selects the entire previous line.)F EL Specifies all characters from the cursor to the end of a line,B including the character on which the cursor is positioned.G (If the cursor is on a line terminator, the entire next line ist selected.)H NL Specifies all characters from the cursor to the beginning of theA next line, including the character on which the cursor is positioned.W3 RANGEuHThe range entities specify all text in the buffer either before or after(the cursor. The two range entities are: fG BR Specifies the text from the cursor position to the beginning ofn the buffer.iE ER Specifies the text from the cursor position to the end of then buffer.n 3 SENTENCEHA sentence consists of a string of characters terminated by one of a setEof single character delimiters. The default sentence delimiters are:cEperiod (.), question mark (?), and exclamation point (!). A sentenceeGdelimiter is considered to be a delimiter only if it is at the end of arFline or if it is followed by a space. The line terminator or trailingGspaces are considered a part of the sentence. There are three sentencet entities:u rJ SEN Specifies the entire sentence in which the cursor is positioned,I including the delimiter and trailing spaces or line terminator.eF BSEN Specifies all characters preceding the cursor in the current sentence.aJ ESEN Specifies all characters in the current sentence from the cursor9 to (but not including) the delimiter character.a aAThe sentence delimiters can be changed by the SET ENTITY command.o3 PAGEFA page consists of all the text between two page delimiters, includingHthe trailing page delimiter. The default page delimiter is the formfeed'character. The three page entities are:n e, PAGE Specifies all of the current page.I BPAGE Specifies all characters in the current page from the characterf< preceding the cursor to the beginning of the page.I EPAGE Specifies all characters in the current page from the cursor tod1 (but not including) the page delimiter.o >You can change the page delimiter with the SET ENTITY command. 3 PARAGRAPHFA paragraph consists of all the text between two paragraph delimiters,Gincluding the trailing paragraph delimiter, and if SET PARAGRAPH WPS isfFin effect, any adjacent delimiters. The default paragraph delimiter isCtw00 TADATADATADATADATADATADATADATADATAo consecutive line terminators. The three paragraph entities are:n f1 PAR Specifies all of the current paragraph.hD BPAR Specifies all characters in the current paragraph from theK character preceding the cursor to the beginning of the paragraph.oK EPAR Specifies all characters in the current paragraph from the cursora9 to (but not including) the paragraph delimiter.  CYou can change the paragraph delimiter with the SET ENTITY command.a3 SELECTGThe select entity consists of all characters between the cursor and thenFselect mark. The select mark must have been specified previously by aHSEL command. The select range entity is specified by SR. Some commandsCuse the search string when the SR entity is specified but no selectorange has been created. 3 VERTICALHThe vertical entity is the same as the line entity, except that with theHV entity, the cursor stays in the same column. You specify the verticalentity with V.3 STRINGGThe string entity consists of all the characters between the cursor andoEthe next occurrence of a specified search string. Specify the stringiAentity by enclosing the desired search string in single or doubleRCquotation marks. If the string is null (specified by '' or ""), thee%previous search string is used again.d FFor key definitions, you may use the null character (character code 0)Bin place of the quotation marks to avoid conflicts with the searchstring. 2 HARDCOPY6On a hardcopy terminal, change mode operates this way: h@When you enter change mode, EDT displays the current line on theFterminal. The cursor position is marked by bracketing the character on>which the cursor is positioned. EDT will then prompt with the characters:l p C* 'FIn response, you type a series of nokeypad mode commands terminated byDpressing return. EDT will execute the commands and type the currentline.u2 KEYPAD@You enter the keypad mode of change mode when your terminal is aHVT100-type or VT52 and the keypad option is set. (This option is set byGdefault for these terminals.) In this mode the terminal screen is usedtFto view the text buffer. Characters typed using the main keyboard areCinserted into the buffer at the cursor position. You enter editingnAcommands by using keys on the auxiliary keypad, function keys, ory"control keys on the main keyboard. eFFor more help on keypad mode, type CHANGE to enter that mode. Use the keypad HELP facility as follows: J 1. If your terminal is a VT100-type, press the keypad key marked PF2.= 2. If your terminal is a VT52, press the red keypad key.rI 3. If your terminal has function keys, press the function key markedb HELP.t 2 NOKEYPAD@You enter the nokeypad mode of change mode if your terminal is aEVT100-type or VT52 and the SET NOKEYPAD command has been used to turnhDoff the keypad option. The screen is used as a window into the textEbuffer. You type nokeypad mode commands at the keyboard; they echo onfEthe bottom line of the screen. EDT executes the commands and updates.1the text on the screen whenever you press return.k 2 SUBCOMMANDSf@When EDT is in change mode and SET NOKEYPAD is in effect or yourCterminal is set to HARDCOPY, EDT accepts a distinct set of commandseCcalled the nokeypad mode commands. You may concatenate a string ofn6these commands with or without spaces separating them. nCNokeypad commands take one of the following forms, depending on themparticular command:; e 1. commando 2. [+|-][count]command = 3. [+|-][count][command][+|-][count][+|-]entity[=buffer]e @Whenever a sign can appear in more than one place, the last sign#specified determines the direction.e3 ADViEThe ADV (advance) command sets the cursor direction to advance. Manyn@nokeypad commands use the current direction to determine whetherFentities to the left or to the right of the cursor are to be affected.BWhen the direction is forward, nokeypad commands affect the cursor&character and characters to the right. n Format: 00 O F &ADV 3 APPENDEThe APPEND command works in the same way as the CUT command (see CUT) Cexcept that it adds the new text to the end of the alternate buffers"instead of replacing its contents. n:Format: [+|-][count]APPEND[+|-][count][+|-]entity[=buffer]3 ASCcFThe ASC nokeypad command inserts a specified character into the bufferDat the cursor position. Use the count field to indicate the decimalEcode of the character you want to insert. Characters are coded usingrCthe DEC Multinational Character Set; codes 0 to 127 are the same aswASCII. Format: [count]ASC mDThe ASC command is the only way to insert a carriage return into theEmiddle of a line of text; otherwise, insert commands always treat theoBcarriage return as a line terminator. The following command wouldinsert a carriage return:d a0 13ASC (13 is the code for carriage return)3 BACKFThe BACK command sets the cursor direction to backward. Many nokeypadGcommands use the current direction to determine whether entities to thec@left or to the right of the cursor are to be affected. When theFdirection is backward, nokeypad commands affect characters to the leftof the cursor. Format: BACK3 BELLGThe BELL command rings the bell on the terminal. There is no effect onfthe text buffer. d Format: BELL3 CHGCBThe CHGC command changes the case of every letter in the specifiedDnumber of entities: lowercase letters become uppercase and uppercasebecome lowercase.e r/Format: [+|-][count]CHGC[+|-][count][+|-]entityh HCHGCSR (change case of select region) works differently: If there is noGselect range and the cursor is in the search string, CHGCSR changes therGcase of every letter in the search string. If there is no select rangerFand the cursor is not in the search string, CHGCSR changes the case ofFthe character under the cursor, if it is letter. If the [count] field;is two or more, CHGCSR ignores the search string condition.p3 CHGL>The CHGL command forces every letter in the specified range to lowercase. H/Format: [+|-][count]CHGL[+|-][count][+|-]entityn :4CHGLSR has the same special contingencies as CHGCSR.3 CHGU>The CHGU command forces every letter in the specified range to uppercase. e/Format: [+|-][count]CHGU[+|-][count][+|-]entityt s4CHGUSR has the same special contingencies as CHGCSR.3 CLSS1The CLSS command clears the search string buffer. Format: CLSS3 CUTRHThe CUT command deletes a specified number of entities and saves all theDdeleted text in an alternate text buffer. The command works exactly6like the DELETE command except that the text is saved. p7Format: [+|-][count]CUT[+|-][count][+|-]entity[=buffer]f e?If you do not specify a buffer, the buffer named PASTE is used.  -"Ex: CUTSR Cut the selected range( CUTPAGE Cut the current page of text3 D >The D nokeypad command deletes a specified number of entities. r,Format: [+|-][count]D[+|-][count][+|-]entity HIf the entity is C, W, BW, EW, L, BL, EL, or NL, the last entity deletedGby the command is saved in the delete buffer associated with the entityeBand can be restored with the UNDC, UNDW, or UNDL nokeypad command. ];Ex: D15C Deletes 15 characters in the current direction.f% DSR Deletes the select range. 3 DBR Deletes to the beginning of the buffer. 3 DATEBThe DATE command inserts the current date and time string into the&buffer at the current cursor position. tEThe form of the string is: dd-MMM-yyyy hh:mm:ss . Note the trailinglEspace. Before the tenth of the month the dd is a space followed by aaHsingle digit. If you prefer the month abbreviation to be in lower case,Byou can change it by backing up to the month and using CHGL. This>command always uses the English abbreviations for month names. e Format: DATE3 DEFKCThe DEFK command can be used to reassign the define key function ton-another redefinable keypad mode function key.u Format: DEFK3 DESEL HThe DESEL command cancels the current select range if one is active. If4no select range is act00TADATADATADATADATADATADATADATADATAive the command has no effect. d Format: DESELd3 DLWCHThe DLWC (default lowercase) command sets the motion state to lowercase.HWith this as the motion state moving the cursor over a lower case letter-changes it to upper case. See DLWC and DMOV.o t Format: DLWC3 DMOVEThe DMOV command returns the default motion state to unchanged. With Hthis as the motion state moving the cursor over a letter does not changeits case. See DLWC and DUPC.e r Format: DMOV3 DUPCHThe DUPC (default uppercase) command sets the motion state to uppercase.HWith this as the motion state moving the cursor over a lower case letter-changes it to upper case. See DMOV and DLWC.i t Format: DUPC3 EX:The EX (exit) command exits from change mode to line mode. Format: EX3 EXT FThe EXT (extend) command executes a line mode command while you are inHchange mode. EDT interprets the remainder of the command line as a line<mode command, executes the command, and reenters change modeBautomatically. The EXT command may not be used inside parentheses. sFormat: EXT line mode commandt3 FILLCThe FILL command reformats a block of text so that as many completeDEwords as possible are placed on each line without exceeding the rightm?margin. It sets the right margin to the terminal width minus 1n@character by default. The margin can be changed by the SET WRAPcommand. e/Format: [+|-][count]FILL[+|-][count][+|-]entitye3 HELPEThe HELP command can be used to reassign the help function to anotherT%redefinable keypad mode function key.a3 IeDThe I command inserts new text into the buffer at the current cursor position.o oFormat: Itext to be inserted^Z or: Ip text to be inserted ^Zl HIf you plan to insert only a few characters, use the first form of the IHcommand. If you plan to insert several lines use the second form. WithBthe second form you can insert lines until you type control Z. OnFVT100-type terminals the I command remains at the bottom of the screenHto remind you that you are inserting text. Only the first form of the IAcommand can be used in a key definition or after C; in a macro ornstartup command file.o 3 KSBThe KS command modifies the cursor position after a PASTE command. EAfter a PASTE command, the cursor is on the character to the right ofaGthe pasted text. If PASTE is followed by KS, however, the cursor moves Gto the last pasted character if the current direction is forward and toIDthe first pasted character if the direction is backward. You should:only use the KS command immediately after a PASTE command. eFormat: PASTE KS tGSuch cursor positioning affects a subsequent string search. KS is usedcHin the definition of the keypad SUBS function so that the character thatHfollows the pasted text in the current direction is included in the nextstring search.3 MOVEFThe "MOVE" command moves the cursor a specified number of entities. IfFDLWC is in effect, all letters encountered are forced to lowercase. IfFDUPC is in effect, all letters encountered are forced to uppercase. IfBDMOV is in effect, no text is changed. The "MOVE" command uses no command word.  uFormat: [+|-][count][+|-]entitye GIf you use an explicit sign, the direction of the move is determined byAthat sign (+ for forward, - for backward); otherwise, the current Hdirection mode (set by the ADV or BACK command) is used to determine the direction. n-Ex: +3W Moves the cursor 3 words forward.u= L Moves the cursor 1 line in the current direction.e: -PAGE Moves the cursor backward to a page delimiter.3 PASTEtEThe PASTE command copies the contents of an alternate buffer into the+&current buffer at the cursor position. xFormat: [count]PASTE[=buffer]h o6If you omit the buffer name, the PASTE buffer is used.3 QUITLThe QUIT nokeypad command leaves the editor without saving any text buffers.EThis will cause you to lose any editing you have done in this sessionrCunless you used the WRITE command to save the text before quitting.c n Format00$ O F &: QUIT3 ReHThe R (replace) command deletes the specified entities and leaves you inGthe insert state so you can enter the text that you want to replace the deleted text with. o,Format: [+|-][count]R[+|-][count][+|-]entity3 REFf%The REF command refreshes the screen.U Format: REFy3 SoCThe S command replaces occurrences of one string of characters withaanother. s(Format: [+|-][count]S/string-1/string-2/ HThe slashes represent any non-alphanumeric character used to delimit theGtwo strings. S searches in the specified direction from the cursor andsAfinds an occurrence of string-1. It deletes string-1 and inserts string-2 in its place. eEx: S/1988/1989/3 SELmHThe SEL command marks a portion of text that will be one end of a selectArange. You create a select range by positioning to one end of therGdesired text (either end will do), executing the SEL command, moving tonHthe other end of the desired text, and performing an operation on the SRC(select range) entity. On VT100-type terminals the select range is displayed in reverse video.s i Format: SELe3 SHIFTrDUse the SHL (shift left) and SHR (shift right) commands to alter theHleft margin when in change mode. The left margin is the position of theFfirst character in each line on the screen. Normally, the left marginAis 0, which means all characters are displayed. If you use a SHLtDcommand, the left margin can be changed by an integral number of tabHstops (8 characters). If SHL is used once, the first 8 columns will notHbe displayed on the screen. This shifts the screen window horizontally. 1Format: countSHL (Shift left by count tab stops)h2 countSHR (Shift right by count tab stops)3 SSELEThe SSEL (search and select) command searches for the occurrence of a Hstring and places the string in the select range. The cursor remains atthe far end of the string. tFormat: SSEL"string"3 SNGThe SN (substitute next) command performs a substitution using the same Bsearch and replacement strings as the previous substitute command. Format: [+|-][count]SN3 TABhEUse the TAB nokeypad command when the line mode SET TAB command is in Feffect. The TAB command inserts the correct number of tabs and blanksFto position the cursor to the current tab level. When SET NOTAB is inBeffect, or when the cursor is not at the beginning of a line, thisHcommand inserts an HT character, thus positioning the cursor to the next-tab stop. Tab stops are every eight columns.m Format: TABp3 TADJGThe TADJ command adjusts the tab level for the specified range of text.GThe SET TAB value determines the tab size. The tab level is adjusted bys>the value of count; it is incremented for a positive count andDdecremented for a negative count. A count not preceded by + or - isFassumed positive. The TADJ tab setting is the product of the tab sizeand the count. *Format: [+|-][count]TADJ[+|-][count]entity uHNote that the + or - that precedes the first count is not used to modifyHthe direction of entity selection. Its function in this command differsGin this way from all other nokeypad commands that use a similar format.l3 TCFThe TC nokeypad command computes the tab level from the current cursorAposition. This command has meaning only if SET TAB is in effect.  s Format: TC3 TDHThe TD nokeypad command decreases the tab level count. This command has%meaning only if SET TAB is in effect.n y Format: TD3 TGSEL HThe TGSEL command allows you to toggle select. When the select range isGactive, TGSEL will cancel it, and when no select range is active, TGSELm,will enable it, acting like the SEL command. o Format: TGSELh3 TIFThe TI nokeypad command increases the tab level counter. This command)has meaning only if SET TAB is in effect.  i Format: TI3 TOPmHThe TOP command forces the line on which the cursor is positioned to theHtop of the screen. If there is less than a full screen of lines between?the current line and the end of the buffer, TOP has no effect. l Format: TO00,TADATADATADATADATADATADATADATADATAPi 3 UNDELETEAThe UNDELETE commands restore the last entity deleted by a deletelcommand. l"Format: UNDC (undelete character) UNDW (undelete word)m UNDL (undelete line)n3 XLATEsDThe XLATE command allows calling back to the caller of callable EDT. OFormat: XLATEtext^Zo sDThe text is passed to the XLATE routine, which returns some NOKEYPADHcommands for EDT to execute. This command is an error except on VAX/VMSGwhen EDT is being called from a program. See the EDT Editor Manual forE more details.E3 ()FA sequence of nokeypad commands can also be enclosed in parentheses toFform a single unit. A number preceding the left parenthesis indicatesDthe number of times to repeat the entire sequence. The EXT nokeypad)command cannot appear inside parentheses.L3 ^xFThis command provides for the insertion of control characters in text.GEDT accepts a circumflex (^) followed by a letter from A to Z, an @, [,VH\, ], ^ or _. Each of these 32 characters is transformed into a controlHcharacter by subtracting 32 from its ASCII code, thus ^@ becomes NUL, ^Abecomes SOH, etc.e Format: [count]^[character]m1 CLEARd4The CLEAR (abbreviated CL) command deletes a buffer. oFormat: CLEAR buffer cHThe buffer no longer appears on the list printed by SHOW BUFFER. If theIbuffer was a macro, it is no longer a macro. If the buffer contained anycGtext, that text is deleted. If that buffer was the current buffer, the Jcurrent buffer becomes MAIN. There are two exceptions to these rules: theLbuffers PASTE and MAIN. The CLEAR command does not delete these buffers butNjust deletes their text. Note that the argument is a buffer name, not a rangeIspecification: CLEAR PASTE is valid, while CLEAR =PASTE and CLEAR BUFFERrPASTE are not.1 COPYBThe COPY (abbreviated CO) command copies text from one location toEanother within a buffer or between buffers. When text is copied, thehsource text remains intact.f ;Format: COPY [range-1] TO [range-2] [/QUERY] [/DUPLICATE:n]t hHThe lines specified by range-1 are copied above the first line specifiedHby range-2. Either range defaults to the current line. Either range mayinclude a buffer specification.c oAIf the destination is not the current buffer, put the name of theTFreceiving buffer immediately after TO (=buffer). Give the full name of=the buffer. To copy text from an external file, see INCLUDE.e 2 /DUPLICATEFormat: /DUPLICATE:n aCWhen you use the /DUPLICATE (abbreviated /DUP) qualifier, the linesI,specified by range-1 are duplicated n times.2 /QUERYFormat: /QUERY eHWhen you use the /QUERY (abbreviated /Q) qualifier, EDT prompts you with5a question mark (?) to verify each line to be copied.e sResponses are:  Y Yes, copy this lineo! N No, do not copy this lineyA Q Quit, do not copy any of the remaining lines in the rangex+ A All, copy all the rest of the linesP1 DEFINEDThe DEFINE command (abbreviated DEF) defines either editing keys for$keypad mode or macros for line mode.2 KEYaBThe DEFINE KEY (abbreviated DEF K) command creates definitions forCediting keys for use in keypad mode. You can redefine keypad keys,nCcontrol key sequences and GOLD control key sequences. You can also3define function keys, for terminals that have them.  s'Format: DEFINE KEY key-name AS 'string't 3 KEY-NAME'Format: DEFINE KEY key-name AS 'string'l h!Key-name is one of the following:  I [GOLD] [FUNCTION] number [GOLD] CONTROL character [GOLD] CONTROL "character" [GOLD] CONTROL 'character' [GOLD] DELETEc GOLD character GOLD "character" GOLD 'character' CNumber refers to keypad and function keys. CONTROL character namesyBspecific control keys (upper- and lowercase letters are consideredGequivalent). A character following CONTROL is limited to @, A to Z, [,oG\, ], ^ and _. DELETE refers to the delete key, which is not a controliCcharacter. Character not following CONTROL can be any keyboard keyFexcept 0-9, though - is not 004 O F &useful. Characters !, %, ', and " must be5enclosed in quotation marks; other characters can be."3 STRING ''Format: DEFINE KEY key-name AS 'string'n u@The string is a string of nokeypad mode commands that define theEfunction of the key. If you want the command to be executed when thelDkey is struck, the definition must end with a period. Otherwise, EDTGwill accumulate definitions until the user types a key whose definition 7ends with a period, and then execute them all together.h4 ?-FYou can use a question mark (?) or question mark and asterisk (?*), inGkey definitions to prompt the user for input. The ? is replaced by thenDcharacters read from the terminal before the command is executed. AEprompt string enclosed in single quotation marks may follow the ?. AxCresponse to an input request generated by a ? must be terminated bydDpressing a keypad or function key, whereas a response to a ?* can beFterminated by pressing a keypad key, a function key or the return key.4 RESET DIf you define a key as 'RESET' (must be exactly five characters) theDkey will perform the RESET keypad function. RESET is not a nokeypad;command. Do not put a period at the end of the definition.d4 GOLDBIf you define a key as 'GOLD' the key will perform the GOLD keypadFfunction. GOLD is not a nokeypad command. Do not put a period at theend of the definition. 3 EXAMPLESDTo define the key CTRL/A to move 3 lines, use the following command: y DEFINE KEY CONTROL A AS '3L.'t GTo define the GOLDed function of the up-arrow key to mean "go to top ofa#buffer," use the following command:T y DEFINE KEY GOLD 12 AS 'BR.'o pDTo define the key CTRL/D to write your COBOL identification division*header for you, use the following command: pJ DEFINE KEY CONTROL D AS 'iIDENTIFICATION DIVISION.^Z^MiPROGRAM-ID. ?^Z.' a0(After pressing the key, type the program name.) oDTo define the CTRL/R key to prompt for the name of a BLISS routine,4which it will then find, use the following commmand: D? DEFINE KEY CONTROL R AS "BR ADV 'ROUTINE ?'Routine name: ''."u3 VT529 +-------+-------+-------+-------+9This diagram shows | | | | | 9the numbers of the | 20 | 10 | 11 | 12 | 9keypad keys on VT52 | | | | |R9terminals for use in +-------+-------+-------+-------+ 9the DEFINE KEY | | | | |e9command. | 7 | 8 | 9 | 13 |o9 | | | | |I9 +-------+-------+-------+-------+-9 | | | | | 9 | 4 | 5 | 6 | 14 | 9 | | | | | 9 +-------+-------+-------+-------+-9 | | | | | 9 | 1 | 2 | 3 | 15 | 9 | | | | | 9 +-------+-------+-------+-------+-9 | | | | 9 | 0 | 16 | 21 | 9 | | | | 9 +---------------+-------+-------+-3 VT100-I+-------+-------+-------+-------+ +-------+-------+-------+-------+ I| | | | | | | | | | I| 12 | 13 | 15 | 14 | | 20 | 10 | 11 | 17 | I| | | | | | | | | | I+-------+-------+-------+-------+ +-------+-------+-------+-------+ I | | | | | IThe diagram to the right shows the | 7 | 8 | 9 | 18 |-Inumbers of the keypad keys on VT100 | | | | | Iterminals for use in the DEFINE KEY +-------+-------+-------+-------+ Icommand. Above are th00<TADATADATADATADATADATADATADATADATAe numbers for | | | | | Ithe arrow keys, for terminals that | 4 | 5 | 6 | 19 |-Ido not have function keys. | | | | | I +-------+-------+-------+-------+eI | | | | |yI | 1 | 2 | 3 | | I | | | | |rI +-------+-------+-------+ 21 |oI | | | |iI | 0 | 16 | | I | | | | I +---------------+-------+-------+ 3 FUNCTION-KEYS I +--+--+--+--+--+--+--+--+--+--+--+--+-----+--+--+--+--+--+ I |17|18|19|20|21| |23|24|25|26| |28| 29 | |31|32|33|34| I +--+--+--+--+--+--+--+--+--+--+--+--+-----+--+--+--+--+--+  :The diagram above and right shows the numbers +--+--+--+:of the function keys. When used with the | 1| 2| 3|:DEFINE KEY command these numbers must be +--+--+--+:preceeded by the word FUNCTION. | 4| 5| 6|: +--+--+--+7The diagram to the right shows how the arrow +--+7keys are numbered on terminals which have |12||:function keys. These keys do not use the word +--+--+--+:FUNCTION when defined using the DEFINE KEY |15|13|14|:command. +--+--+--+ e2 MACROtFThe DEFINE MACRO (abbreviated DEF M) command defines a line mode macrocommand. rFormat: DEFINE MACRO nameN EThe name is the name of the text buffer in which the macro is stored. GThe macro itself is a series of EDT line mode commands. You invoke thee=macro by giving its name in response to the line mode prompt.n1 DELETELThe DELETE (abbreviated D) command deletes the lines specified by the range. KFormat: DELETE [range] [/QUERY]  AIf you do not specify the range, the default is the current line.M2 /QUERYFormat: /QUERY aIWhen you use the QUERY (abbreviated /Q) qualifier, EDT prompts you with a4question mark (?) to verify each line to be deleted. oResponses are: a Y Yes, delete this linei# N No, do not delete this lineaC Q Quit, do not delete any of the remaining lines in the rangeE- A All, delete all the rest of the linese1 EXITEThe EXIT (abbreviated EX) command terminates all action in the editoru<and saves a copy of the MAIN text buffer in the output file. Q8Format: EXIT [file-spec] [/SEQUENCE:[init:incr]] [/SAVE] AIf you omit the file specification, the output file name from the Gcommand line that invoked EDT is used. If no output file name has beensHspecified, and if /READ_ONLY and /NOOUTPUT have not been specified, thenthe input file name is used.2 /SAVEEAWhen you use the /SAVE qualifier, the journal file is saved. The(Ejournal file is called 'name.JOU', where name is the output file name Ffrom the command line. For information about the journal facility, see HELP JOURNAL.E 2 /SEQUENCErFormat: /SEQUENCE[:init:incr]  eFWhen you use the /SEQUENCE option, the output file is in VFC (variableGwith fixed control) format, and line numbers are written in the control_Dfield. The values of both 'init' and 'incr' must be less than 65536. uIIf you set init and incr, the file is renumbered starting with the number.Dyou choose for init, and the lines are incremented by the number youJchoose for incr. Otherwise, the line numbers assigned by EDT are written.EThese line numbers are truncated to integers and taken modulo 100000,with a maximum value of 65535.1 FILLDThe FILL (abbreviated FIL) command reformats a block of text so thatHthere are as many full words on a line as possible without exceeding the right ma00D O F &rgin.e tFormat: FILL [range] tFThe lines in the range must be contiguous. If you omit the range, theselect range is assumed. aGThe right margin can be set by the SET WRAP command. If the margin hasu8not been set, the default is the terminal width minus 1.1 FINDDThe FIND (abbreviated F) command places the cursor at the first linespecified by range.( rFormat: FIND [range] rGThe located line is not displayed. To find and display a line, use theo TYPE command.e eHEx: F=X. Returns EDT to buffer X, to the line EDT was on when you lastH left buffer X. Note the dot (.) after the buffer name. ThisG specifies the line that EDT was on when you last left bufferr X.e 1 INCLUDE EThe INCLUDE (abbreviated INC) command copies external files into text)buffers. e!Format: INCLUDE file-spec [range]c eEThe specified file is copied to the location before the first line ofpHthe range. Note that range specifies the position to which the file willEbe copied; it does not restrict the portion of the file which will be Cincluded. To include part of a file, first INCLUDE the file into a Cbuffer; then COPY the desired portion of the included text into therappropriate buffer.N1 INSERT?The INSERT (abbreviated I) command inserts new text into a textxbuffer.r +Format: INSERT [range] ;line to be insertedh Or: INSERT [range] text to be inserted ^Z EThe new text is inserted above the first line specified by range. Ifl<you omit range, new text is inserted above the current line. iHIf you choose the first form of the INSERT command, the text on the lineHfollowing the semicolon is inserted and the editor does not enter insertFmode. This is the only form of the INSERT command that should be used#in a startup command file or macro. oGIf you choose the second form, EDT enters insert mode. In insert mode, Fyou can enter as many lines of text as you wish, terminating each line>by pressing return. Terminate insert mode by pressing CTRL/Z. CThe line following the last line inserted becomes the current line. 1 JOURNALcDEDT saves all input from the terminal during an editing session in aDfile called the journal file. The journal file is deleted when youHexit the editor with an EXIT or QUIT command (without the /SAVE option).?If the editor is left involuntarily, the journal file is saved.s EThe journal file can be used to redo all the operations of an editingcEsession. The edited file is thereby recreated. Type the same commandFline used previously with the addition of the /RECOVER qualifier. AllDinput files used in the original session must be available under the(same names as when they were first read. EUnless explicitly overridden by the /JOURNAL qualifier on the commandUBline, the journal file will have the same name as the output file,Eexcept that the file type will be JOU and the file will be written intthe current default directory.1 MOVE@The MOVE (abbreviated M) command moves text from one location to0another, deleting it from the original location. ,Format: MOVE [range-1] TO [range-2] [/QUERY] BThe lines specified by range-1 are moved to a location immediatelyFabove the first line specified by range-2. The lines are deleted fromGthe original location. If you omit either of the range specifications, Dthe current line is used. The first line of range-2 becomes the newDcurrent line. To move lines of text without deleting them from the(original location, see the COPY command.2 /QUERYFormat: /QUERY nGWhen you use the QUERY (abbreviated /Q) qualifier, EDT prompts you with 4a question mark (?) to verify each line to be moved. Responses are: e Y Yes, move this line." N No, do not move this line.A Q Quit, do not move any of the remaining lines in the rangep, A All, move all the rest of the lines.1 PRINTnAThe PRINT (abbreviated P) command creates a listing file with thewspecified file name. Format: PRINT file-spec [range]C EThe 00LTADATADATADATADATADATADATADATADATAlines selected by range are written to a listing format file withaFpage headers. If the NUMBERS option is set (see SET NUMBERS), the EDTGline numbers will appear on the listing. If you omit range, the entirenGcurrent buffer is printed. Print does not alter the current line. UsetFPRINT only to create a listing. If you wish to create a file, use theWRITE command.1 QUITDThe QUIT command exits the editor without saving the contents of the MAIN buffer. Format: QUIT [/SAVE] rGUse the QUIT command only if you have made no changes to the buffer youiFare editing or if you have decided you do not wish to save the changesByou have made. All edits will be discarded when you QUIT from theeditor.t2 /SAVErCThe SAVE qualifier specifies that the journal file should be saved.4Normally, the journal file is deleted when you QUIT.1 RANGEuERange specifications select the exact lines of text on which the lineuediting command will operate.A b:There are several general classes of range specifications: 9 1. Single line ranges specify a single line of text. M 2. Multiple line ranges specify blocks of text, such as an entire buffer D or all lines from the current line to the end of the buffer.L 3. Compound ranges combine single line ranges with operators to specify multiple lines of text.yL 4. Noncontiguous ranges specify multiple lines that are not necessarily adjacent to one another.2 ALLe<The ALL range further refines a general range specification. :Format: [range] ALL 'string' sEWhile range can be a single, multiple, or compound range, the commandoEbeing performed will only apply to those lines of text containing theuGgiven string. This string can be enclosed in single or double quotationgmarks. gFEx: TYPE ALL 'EDT' When ALL is used, the default for range isH WHOLE. This command will type all the linesG in the current buffer containing the stringe" 'EDT'. rF SUBS/A/B/50:100 ALL '1' Substitute B for A in all lines from 50 to; 100 which include the string 1.o2 ANDs.The AND range selects a group of single lines. *Format: range-1 AND range-2 AND range3 ...& Or: range-1 , range-2 , range3 ... CEach of the ranges must be a single line range. Each of the single lines is operated on.w @Ex: TYPE 4 AND 7 Lines 4 and 7 are displayed on the terminal B TYPE BEGIN,END-1 The first and last lines are displayed on the terminalu2 BEGINAEThe BEGIN range (abbreviated B) is a single line range that specifies the first line in the buffer. 2 BEFORE@The BEFORE range (abbreviated BEF) is a multiple line range thatAspecifies all the lines in the buffer preceding the current line. 2 BUFFEREThe BUFFER (abbreviated BU) specification may precede any other rangeFspecification and indicates that the range is to be applied to a namedbuffer.E GFormat: BUFFER name [range]i Or: =name [range]e FThe two forms are equivalent. Name is the name of the buffer in whichCthe text resides. If you leave out the range, the entire buffer is selected.2 DOTOEThe dot (.) is a single line range that refers to the current line of Etext. For many commands, dot is the default range. See the help textF/for a command if you are unsure of the default.  e'Ex: TYPE . Display the current line.t2 ENDnGThe END (abbreviated E) range specifies an imaginary line following theiClast line in the buffer. END does not specify the last line in thetCbuffer. The last line can be referred to by E-1 (that is, the lineh;preceding END). When the END line is typed, it looks like:. s[EOB]l2 FORrFThe FOR range is a multiple line range that selects a specified number*of lines starting at a specified location. Format: [range] FOR nr Or: [range] # ne x@The two forms are equivalent. Range is a single line range thatFspecifies the starting position, and n is an integ00T O F &er number. If range6is omitted, the current line is the starting position. rEEx: TYPE . FOR 5 Display 5 lines, starting with the current linen N8 TYPE #5 Equivalent to the previous example > TYPE BEGIN FOR 10 Display the first 10 lines in the buffer2 LASTHThe LAST (abbreviated L) range is a single line range that refers to theHline in the previous buffer which was the current line when you switchedto the current buffer.2 MINUS FThe minus sign (-) in ranges selects a single line that is a specified(number of lines before a specified line. Format: [range] - [n]  iHRange is a single line range, and n is an integer. The line selected isDthe line that is n lines before the line specified by range. If you?omit range, the current line is used; if you omit n, 1 is used.) nGEx: TYPE 15 - 3 Display the third line before the line numbered 15.  c8 TYPE END -1 Display the last line in the buffer. e. TYPE - Display the previous line.2 NUMBERGA line number is a single line range that refers to the line having the?specified number. The line number may contain a decimal point.s 'Ex: TYPE 10 Display line number 10.t ' INSERT 65.3 Insert above line 65.3.a .HThe maximum allowable line number is 2814749767. A line number may have4up to five digits to the right of the decimal point. h?You can change the line number with the RESEQUENCE command. InnGaddition, the INSERT and INCLUDE commands will automatically change theUGnumbers of existing lines if necessary to make each line in a buffer to 1have a line number larger than the previous line.n dAWhen lines are read from the primary input file and that file has Fsequence numbers, the line number assigned is the sequence number fromDthe file, plus N*100000, where N is large enough to ensure that eachCline in the buffer has a line number larger than the previous line. 5File sequence numbers range in value from 0 to 65535.I 2 ORIGINALFormat: ORIGINAL n cFThe ORIGINAL (abbreviated O) range is no longer a feature of EDT. TheHkeyword ORIGINAL is ignored; the number specified is taken as an editing9line number. See HELP RANGE NUMBER for more information.a2 PLUSCThe plus sign selects, in ranges, a single line that is a specifiedh'number of lines after a specified line.n hFormat: [range] + [n]i iHRange is a single line range, and n is an integer. The line selected isHthe line that is n lines after the line specified by range. If you omit;range, the current line is used. If you omit n, 1 is used.t FEx: TYPE 15 + 3 Display the third line after the line numbered 15. : TYPE BEGIN +1 Display the second line in the buffer. a@ TYPE + Display the line following the current line. iC TYPE 'string'+2 Display the second line following the next line ( continaing 'string'.2 RESTFThe REST (abbreviated R) range is a multiple line range that refers to7the current line and all lines following in the buffer.c2 SELECTAThe SELECT range is a multiple line range that contains all linespHbetween the current line and the SELECT mark. The SELECT mark is set byCthe change mode SEL nokeypad command or the keypad SELECT function. 2 STRINGDA quoted string specifies a single line that contains the specifiedGstring. You can enclose the string in either single or double quotationBmarks (' or "). When you use a string as a range, EDT will searchEforward, starting with the current line, until it locates a line with Cthe specified string. If a minus sign (-) precedes the string, theisearch will be backward. eGEx: TYPE 'abc' Locate and display the first line forward that containse! the string 'abc'.u i9 TYPE -"abc" Same, except the search will be backward.t2 THRUGThe THRU range is a compound range that specifies all lines between twodsingle line ranges.k 'Format: range-1 THRU range-2 Or: range-1 : range-2h oFBoth forms are equivalent. Starting with range-1, EDT selects00\TADATADATADATADATADATADATADATADATA all the8lines up to and including the line specified by range-2. FEx: TYPE 15:30 Display all lines with numbers between 15 and 30. fB TYPE 'glorp':END Display all lines from the first line forward3 containing 'glorp' to the end. 2 WHOLEtAThe WHOLE (abbreviated W) range refers to the entire text buffer.e 1 REPLACEwHThe REPLACE (abbreviated R) command deletes the specified range of lines#and then places EDT in INSERT mode.v n'Format: REPLACE [range] ;text to insertl Or: REPLACE [range]l text to insert ^Z EWhen you do not specify a range, replace deletes the current line and.&inserts the new text at that location. sFIf you use the first form of the REPLACE command, EDT inserts the textCin the command line following the semicolon and the editor does notnEenter insert mode. This is the only form of the REPLACE command thate3should be used in startup command files and macros.  IGIf you use the second form, EDT enters insert mode. In insert mode youCGcan enter as many lines of text as you wish, terminating each line withfAa carriage return. You terminate insert mode by pressing CTRL/Z.e aCThe line following the last line inserted becomes the current line.d 1 RESEQUENCEFThe RESEQUENCE (abbreviated RES) command assigns new line numbers to arange of lines.e m0Format: RESEQUENCE [range] [/SEQUENCE:init:incr] aHThe specified range of lines must be contiguous. When you do not specifyFa range, all lines in the current buffer are resequenced. If the newEnumbers assigned would cause duplicate or nonsequential line numbers,aAEDT will either disallow the command or renumber lines beyond the specified range. sGNote that the total count of lines resequenced (which is displayed upon(?completion of the command), may differ from the number of lineslBoriginally specified in the range, due to the possibility of extra renumbering. 2 /SEQUENCEmCThe SEQUENCE (abbreviated /SEQ) qualifier specifies the sequence of Anumbers to be assigned. The init parameter specifies the initiald<number, and incr specifies the number by which the lines areEincremented. If you do not use the SEQUENCE qualifier, init and incr.both default to 1. a<The maximum allowable line number is 2814749767. If, duringEresequencing, a line number plus 'incr' would exceed this value, thatsEline and all remaining lines will be numbered 2814749767. You should Gcorrect this immediately by resequencing with a different 'init' and/ornsmaller 'incr'.o1 SETiGThe SET (abbreviated SE) command sets options that control other editoriHoperations. Once set, these options are in effect throughout the rest of5the edit session or until changed by the SET command. 2 AUTOREPEATHThe SET AUTOREPEAT (abbreviated SE AUTOREPEAT) command enables EDT's useDof the DECARM VT100 control sequence to prevent keypad, function andHarrow keys from repeating faster than EDT can update the screen. If youEdo not want EDT to manipulate the VT100's autorepeat feature, use SET @NOAUTOREPEAT (abbreviated SE NOAUTOREPEAT). On some VT100-classHterminals, SET AUTOREPEAT can cause the arrow keys to repeat at the rate>of 2 per second rather than the usual 30 per second. With SETHNOAUTOREPEAT the arrow keys repeat faster, but the screen is not updatedFfor each repeat of the arrow key, since EDT skips intermediate updatesif it gets behind. Format: SET [NO]AUTOREPEAT2 CASE)Format: SET CASE { UPPER | LOWER | NONE }  CUse the SET CASE (abbreviated SE CA) command on terminals which are(Hcapable of displaying uppercase characters only. SET CASE instructs EDTHto flag with a preceding apostrophe either the uppercase characters, theDlowercase characters, or neither. The default for SET CASE is NONE,&which means no characters are flagged. d+You can abbreviate the keywords as follows:  p CASE CA UPPER Ue LOWER L NONE N] 2 COMMAND&Format: SET COMMAND file-specification NEThe SET COMMAND (abbreviated SE COMMAND) command is used i00d O F &n a startuphDcommand file to specify the name of the next startup command file toFread. EDT provides a default file type of ".EDT". If the file is notBpresent this command does nothing; otherwise it causes the currentEcommand file to be abandoned and the new one to be read in its place.b 3 STARTUPeEWhen EDT starts up, it reads the installation default startup command Ffile. The name of the file is always EDTSYS. The default name varies$depending on the system, as follows: N Default Name$ -----------------#VAX/VMS SYS$LIBRARY:.EDT RSX-11M & M-PLUS LB:[1,2].EDT RSTS/E LB:.EDT AWhen opening the file, EDT combines the name and the default nameGtogether into a complete file specification. On VAX/VMS, therefore, if Ethe logical name EDTSYS is defined, EDT will read from it rather than from SYS$LIBRARY:EDTSYS.EDT. fEThe installation default startup command file should have SET COMMAND,FEDTINI at its end, so that the user's initialization file will be readFafter the installation default initialization file. If EDTSYS is notHfound, EDT will try again using the name EDTINI, so there is no need forBan installation-default initialization file that just contains SETCOMMAND EDTINI.o2 CURSORFormat: SET CURSOR top:bottoma aEThe SET CURSOR (abbreviated SE CU) command, used with screen editing,ABsets the limits within which the cursor is allowed to move withoutscrolling the screen. IDTop and bottom are the line numbers at the top of the screen and theHbottom of the screen. The line numbers must be in the range of 0 to 21,Gwith 0 specifying the top of the screen and 21 the bottom. The defaultiGsetting is 7:14, allowing the cursor to move within the middle third ofDGthe screen. If SET LINES is used to decrease the number of lines shownrEon the screen, the top and bottom of the cursor limits must be withinh"the number of lines on the screen.2 ENTITY1Format: SET ENTITY entity-type 'delimiter string'e n*Where entity-type is one of the following: t WORD (abbreviated W)r SENTENCE (abbreviated S),! PAGE (abbreviated PAG)s! PARAGRAPH (abbreviated PAR)l FThe SET ENTITY (abbreviated SE EN) command sets the delimiters for theGuser-defined change mode entities. For the WORD and SENTENCE entities,rGthe delimiter string is a set of single character delimiters. For PAGEDand PARAGRAPH, the delimiter is a character string that delimits theCentity. See HELP CHANGE ENTITIES for explanations of the entities.w2 FNFtFormat: SET [NO]FNFb iDThe SET FNF option controls whether or not an informative message isFdisplayed when you attempt to edit a non-existing file. NOFNF opens anew file but gives no message.2 HELP%Format: SET HELP [file-specification]t .FThe SET HELP (abbreviated SE H) option lets you define which help fileHwill be accessed when you either give the HELP command or press the HELPCkey in keypad mode. The default device and directory are always asEGlisted below unless overriden by an explicit device and directory. SEThEHELP without a file specification returns you to the original defaultp help file. aAThe following are default specifications for the various systems:v n5 File specification Name Typen5 ------------------ ---- ---- 5VAX/VMS SYS$HELP: .HLB EDTHELP .HLBr5RSX-11M & M-PLUS LB:[1,2] .HLP EDTHELP .HLP 5RSTS/E LB: .HLP EDTHEL .HLP t2 KEYPADFormat: SET [NO]KEYPAD cDThe SET KEYPAD (abbreviated SE K) option controls whether or not theHediting keypad is to be used when you are in CHANGE mode. KEYPAD is setBby default for VT100 and VT52 terminals, which means the alternateAkeypad is used to enter change mode commands. For terminals with-Afunction keys, the function keys can also be used in KEYPAD mode.E2 LINESrFThe SET LINES (abbreviated SE L) command controls the number of screenElines used in either of the screen00lTADATADATADATADATADATADATADATADATA versions of change mode. Use this]Coption to reduce the time it takes to refresh the screen image when editing on slow terminals. oFormat: SET LINES n  CGwhere n is the number of lines to use. n must be between 1 and 22. ByhHdefault, n is set to 22 lines. If the cursor limits are larger than n-1)they are reduced to n-1. See SET CURSOR. 2 MODEHThe SET MODE (abbreviated SE M) command determines which mode of editingAshould be entered after all initial processing is complete. This 3command is useful only in the startup command file.  u"Format: SET MODE { LINE | CHANGE } e?By default, EDT enters line mode when the startup processing is Hcomplete. Use SET MODE CHANGE in your startup command file to cause EDT9to enter change mode when startup processing is complete.s 2 NUMBERS Format: SET [NO]NUMBERSd HThe SET NUMBERS (abbreviated SE NU) command controls the display of lineHnumbers on the terminal. Numbers are set on by default. If you want to9suppress numbers, use SET NONUMBERS (abbreviated SE NON).r 2 PARAGRAPHiFormat: SET PARAGRAPH [NO]WPSN HThe SET PARAGRAPH (abbreviated SE PARA) command specifies a paragraph asEthe text between two delimiters and including any adjacent delimitersu2(WPS), or the text between two delimiters (NOWPS).2 PROMPT'Format: SET PROMPT prompt-type 'string'd EWhere prompt-type is either LINE, KEYPAD, NOKEYPAD, HCCHANGE, INSERT,iINSERTN, or QUERY. iGThe SET PROMPT command allows redefinition of the prompt string that issEdisplayed in line mode, in keypad mode, in nokeypad mode, in hardcopyREchange mode, in line mode when inserting, in line mode when insertingf.with NONUMBERS, and with the /QUERY qualifier. EEDT will become confused if the new string for the keypad or nokeypaddDprompt causes a net motion of the cursor. If a pair is notEincluded in the new string for any prompt which has it in the defaultEEprompt, these characters will be inserted at the beginning of the newnstring.r2 QUIETnDThe SET QUIET (abbreviated SE Q) command controls whether or not the5bell will sound when an error is made in change mode.  lFormat: SET [NO]QUIETf iAThe quiet option is off (meaning the bell will sound) by default.o2 REPEATGThe SET REPEAT (abbreviated SE REP) command enables you to use the GOLD Dkey followed by digits to represent a count. If you do not want theBability to use counts, use SET NOREPEAT (abbreviated SE NOREP). ACwarning bell sounds if you attempt to use counts with NOREPEAT set.  Format: SET [NO]REPEAT mBy default, REPEAT is enabled.2 SCREENFThe SET SCREEN (abbreviated SE SC) command specifies the width of your terminal.  eFormat: SET SCREEN w tFwhere w is the width of the screen line. By default, the screen widthCis set to the terminal's width, as reported to EDT by the operatingtHsystem. On VT100-type terminals you can set the width to 80 or 132, andGEDT will adjust the terminal appropriately. On other CRT terminals youtCshould only use the terminal's fixed width: 80 for VT52s and 84 foryVK100s. 2 SEARCHCThe SET SEARCH (abbreviated SE SE) command controls several optionsirelated to string searching. ,Format: SET SEARCH { GENERAL | EXACT | WPS |, CASE INSENSITIVE | CI |3 DIACRITICAL INSENSITIVE | DI } " { [UN]BOUNDED }" { BEGIN | END } 3 GENERAL EThe GENERAL option will cause the case of letters and the presence orRFabsence of diacritical marks to be ignored in search strings. GENERALis the default.K3 EXACT HThe EXACT option will require all characters to match exactly, includingDthe case of letters and the presence of diacritical marks, in searchstrings.3 WPS GThe WPS option will cause a case-independent string match for lowercaseLFletters in the search string, and a case-dependent match for uppercaseletters in the search string. 3 CIDThe CI option will cause the case of letters to be ignored in search=strings, but not the presence of diacritical marks. CI 00t O F &is anN"abbreviation for CASE INSENSITIVE.3 DIFThe DI option will cause diacritical marks on letters to be ignored inHstring searches, but not the case of the letters. DI is an abbreviationfor DIACRITICAL INSENSITIVE. 3 BOUNDEDiGThe BOUNDED (abbreviated BO) option will cause the search to be bounded Fby a page delimiter. By default, the search is unbounded, which meansHthat the entire buffer will be searched. This option has effect only in change mode. tHThe UNBOUNDED (abbreviated U) option causes the search not to be bounded?by a page delimiter, which means that the entire buffer will berFsearched. This is the default. This option has effect only in changemode. 3 BEGINiDThe BEGIN (abbreviated B) option causes the cursor to be left at theEbeginning of the search string when it is found. This is the default. +This option has effect only in change mode.a3 ENDtFThe END (abbreviated E) option causes the cursor to be left at the endHof the search string when it is found. By default, the cursor is left at:the beginning. This option has effect only in change mode. 2 SUMMARY GThe SET [NO]SUMMARY command controls whether or not summary information Gabout a file written with the WRITE or EXIT commands will be typed out.sFThe default is SUMMARY, which means that summary information is typed. Format: SET [NO]SUMMARYt 2 TABeBThe SET TAB (abbreviated SE TA) command enables the structured tab&feature and sets the logical tab size. eFormat: SET [NO]TAB ni o7where n is the number of columns in a logical tab stop.i pFWith the structured tab feature, EDT keeps a counter of the tab level,Fwhich is set to 1 when the SET TAB command is issued. When you use theEtab key in change mode at the beginning of a line, EDT inserts enoughMGtabs and spaces to move the cursor to the column defined by the level n]Ktimes the tab size. Change mode nokeypad commands can alter the tab level.u2The structured tab feature is disabled by default. CThe tab size set by the tab command is also used by the TABS ADJUSTicommand. 2 TERMINAL,Format: SET TERMINAL { HCPY | VT100 | VT52 }* { SCROLL | NOSCROLL }& { EDIT | NOEDIT }. { EIGHTBIT | NOEIGHTBIT } GThe SET TERMINAL (abbreviated SE TE) command identifies to EDT the type Gof terminal you are using. Normally, EDT will set the terminal type by Fasking the operating system what type it is. If it does not appear toEhave set the type correctly, you can use the SHOW TERMINAL command to Dsee what EDT thinks your terminal is and the SET TERMINAL command toGcorrect it if necessary. If your terminal is not a VT100 or a VT52, it !should be set to HCPY (hardcopy). 3 HCPYEHCPY stands for hardcopy. EDT considers a terminal hardcopy if it iscFnot a VT100 or a VT52. On such terminals change mode does not use theFscreen as a window onto your buffer, but instead shows you the currentHline with the cursor position indicated. You type NOKEYPAD commands andBEDT will keep you informed by printing the current line after eachcommand.3 VT100RCThe VT100 is a family of terminals, all based on the original VT100 Cterminal. This class of terminals includes the VT101, VT102, VT125,YVT131 and VT132.3 VT52FThe VT52 terminal is the predecessor of the VT100 family. It does not5have reverse video, and has fewer keys in its keypad.i3 SCROLLFThis option indicates that your terminal has scrolling regions and EDT<may use them. This is the default for most VT100 terminals. 3 NOSCROLLGThis option indicates that either your terminal does not have scrolling Aregions or EDT should not use them. This is the default for VT52l terminals.3 EDITHThis option indicates that your terminal has the screen editing featuresHof the VT102. These are IL (insert line), DL (delete line), ICM (insert,character mode) and DCH (delete characters).3 NOEDITAThis option indicates that your terminal does not have the screendediting features of the VT102. 3 EIGHTBITGThis option indicates that y00|TADATADATADATADATADATADATADATADATAour terminal contains the DEC MultinationalrFCharacter Set, which extends ASCII to include letters with diacritical*marks and other characters used in Europe. 3 NOEIGHTBITAThis option indicates that your terminal does not contain the DECHMultinational character set. On such a terminal characters which cannot-be displayed directly are displayed using <>. 2 TEXT$Format: SET TEXT text-type 'string' d"Text-type is one of the following: r PAGE END  HAThe SET TEXT command allows you to define the displayed string totGindicate a formfeed character (SET TEXT PAGE), and the displayed stringaEto indicate the end of the buffer (SET TEXT END). The string can nots%contain control or escape characters.e 2 TRUNCATEEThe SET TRUNCATE (abbreviated SE TR) command controls the handling of long lines in change mode. cFormat: SET [NO]TRUNCATE @By default, truncate mode is set, which means long lines will beGtruncated on the display (the actual text is not altered). If you turnwHoff truncate mode by using SET NOTRUNCATE, long lines will be wrapped toAas many screen lines as are necessary to display the entire line.e2 VERIFYAThe SET VERIFY (abbreviated SE V) command controls the listing ofcBcommands that are executed from the startup command file or from amacro. aFormat: SET [NO]VERIFY hFVerify is off by default, which means the lines are not typed. If you9turn it on, each command line is typed as it is executed.s2 WORDFormat: SET WORD [NO]DELIMITER yGThe SET WORD (abbreviated SE W) command enables you to specify that therCword delimiters be considered words by themselves (NODELIMITER), or Hconsidered as part of the word they delimit (DELIMITER). The default is DELIMITER. m2 WRAPFormat: SET [NO]WRAP n rAThe SET WRAP (abbreviated SE W) command enables word wrapping andCspecifies the right margin. Word wrapping is a feature of EDT thatuBautomatically insert carriage returns when the text you are typingDexceeds the right margin. Word wrapping is in effect in change mode4only and only if you have used the SET WRAP command. EThe SET WRAP command also sets the right margin for the nokeypad modetFILL commmand. eCSET NOWRAP (abbreviated SE NOW) disables the word wrapping feature.E1 SHOWFormat: SHOW parameter rFThe SHOW (abbreviated SH) command displays selected information on theGcurrent state of the editor. Parameter is one of the additional topicsi listed below.n 2 AUTOREPEATFormat: SHOW AUTOREPEATi >The SHOW AUTOREPEAT command displays whether EDT is allowed toFmanipulate the Autorepeat feature of VT100-type terminals or not. See$SET AUTOREPEAT for more information.2 BUFFERFormat: SHOW BUFFER  RHThe SHOW BUFFER (abbreviated SH BU) command lists the buffers being usedFduring the edit session, including the number of lines of text in eachFbuffer. The current buffer is marked by an equal sign (=) before theGname. If an asterisk follows the number of lines, it indicates that anRFinput file is connected to the buffer and that there are more lines to<be read from the file. Thus, the line count is not accurate.2 CASEFormat: SHOW CASET rHThe SHOW CASE (abbreviated SH CA) command shows the current case setting(upper, lower, or none). 2 COMMANDuFormat: SHOW COMMAND tGThe SHOW COMMAND (abbreviated SH COMMAND) command shows the name of theh>last specified startup command file. For more information seeHELP SET COMMAND. 2 CURSORFormat: SHOW CURSOR  iHThe SHOW CURSOR (abbreviated SH CU) command shows the current setting of*the cursor region. EDT will respond with: lt:bo Fwhere t and b are integer numbers indicating the top and bottom of theDcursor region. See HELP SET CURSOR for an explanation of the cursorregion. 2 ENTITYFormat: SHOW ENTITY entity-typeW M*where entity-type is one of the following:  WORD (abbreviated W)a SENTENCE (abbreviated S)f PAGE (abbreviated PAG) PARAGRAPH (abbreviated PAR)i h@The SHOW ENTITY (abbreviated SH EN) command disp00 O F &lays the current*delimiter string for the specified entity.2 FILESFormat: SHOW FILES CThe SHOW FILES (abbreviated SH FI) command displays the name of theoHinput and output files which were specified in the EDT command line. IfFno output file was specified, then the input file name is also used asFthe output file name. If /NOOUTPUT or /READ_ONLY was specified in theEcommand line, then this will be indicated in place of the output filePname.h2 FNFHFormat: SHOW FNF dCThe SHOW FNF command displays whether the file not found message isienabled or disabled.2 HELPFormat: SHOW HELP WCThe SHOW HELP (abbreviated SH H) command shows the currently activenEdefault help file specification and help file name. Use the SET HELPt'command to redefine the help file name.l2 KEYiGThe SHOW KEY (abbreviated SH K) command displays the current definitionc%of a keypad, function or control key.i bFormat: SHOW KEY key-name  pGWhere key-name is one of the following: (alternatives separated by "|")l 9[GOLD] number |[GOLD] CONTROL char |[GOLD] CONTROL "char".7[GOLD] CONTROL 'char' |GOLD character |GOLD "character"t8GOLD 'character' |[GOLD] DELETE |[GOLD] FUNCTION number l@Number refers to keypad and function keys and CONTROL char namesEspecific control keys Char is limited to @, A to Z, [, \, ], ^ and _, ?but the case of letters is ignored. DELETE refers to the deleterEcharacter, which is not a control character. Character refers to anynFkeyboard key except 0-9, though - is not useful. Upper and lower caseDletters are considered equivalent. Characters !, %, ', and " must beenclosed in quotation marks. GFor the meaning of the string printed by the SHOW KEY command, see HELPr DEFINE KEY.n2 KEYPADFormat: SHOW KEYPADr mGThe SHOW KEYPAD (abbreviated SH KEYP) command shows the current setting Cfor the option of using keypad editing when you are in change mode.hHKEYPAD is the default for VT100 and VT52 terminals, which means that theGalternate keypad is used to enter change mode commands. The option canr/be changed by using the SET [NO]KEYPAD command.a2 LINES Format: SHOW LINES oEThe SHOW LINES (abbreviated SH L) command shows the current number ofmDscreen lines displayed in change mode. Use the SET LINES command tomodify this setting.2 MODEFormat: SHOW MODEh uEThe SHOW MODE (abbreviated SH M) command shows the current setting ofcHthe default editing mode. It indicates the editing mode that is enteredDafter all startup processing. By default, EDT enters line mode whenDstartup processing is complete. Use SET MODE CHANGE in your startupDcommand file to cause EDT to enter change mode at the end of startup processing. 2 NUMBERSbFormat: SHOW NUMBERS lFThe SHOW NUMBERS (abbreviated SH NU) command shows the current settingGfor the option of displaying line numbers on the terminal. Numbers aredFdisplayed by default. Use SET NONUMBERS to suppress the line numbers. 2 PARAGRAPHoFormat: SHOW PARAGRAPH lBThe SHOW PARAGRAPH (abbreviated SH PARA) command shows the currentEsetting for delimiting paragraphs. By default a new paragraph begins Gafter two successive linefeeds. Use SET PARAGRAPH WPS to indicate that Da new paragraph begins at the first non-linefeed character after twosuccessive linefeeds.e2 PROMPTFormat: SHOW PROMPT prompt-typei lFWhere prompt-type is one of: LINE, KEYPAD, NOKEYPAD, HCCHANGE, INSERT,INSERTN, or QUERY. s@The SHOW PROMPT command shows the current string to be used whenGprompting in line mode, in keypad change mode, in nokeypad change mode,oGin hardcopy change mode, in line mode when inserting, in line mode whenuBinserting with NONUMBERS, and in response to /QUERY, respectively.2 QUIET Format: SHOW QUIET -FThe SHOW QUIET (abbreviated SH Q) command shows the current setting ofHthe option that controls whether or not the bell sounds when you make anHerror in change mode. You can change this option with the SET [NO]QUIETcommand.2 REPEATFormat: SHOW REPEATn rHThe SHOW REPEAT (abbreviated00TADATADATADATADATADATADATADATADATA SH REP) command shows whether or not countsHare allowed. The default is to allow counts. To disable counts use SET NOREPEAT.h2 SCREENFormat: SHOW SCREEN/ REThe SHOW SCREEN (abbreviated SH SC) command shows the current settingr.for the maximum length of a line EDT displays.2 SEARCHFormat: SHOW SEARCHe rDThe SHOW SEARCH (abbreviated SH SE) command shows the current searchDparameters. See HELP SET SEARCH for a description of search options. 2 SUMMARYPFormat: SHOW SUMMARY DThe SHOW SUMMARY command shows whether the file summary on WRITE andEXIT is enabled or disabled.2 TAB Format: SHOW TAB TGThe SHOW TAB (abbreviated SH TA) command shows the current settings foriDthe structured tab feature. If structured tabs are enabled, the tab)size and indentation level are displayed.  WFFor additional information on the structured tab feature, see HELP SETTAB and HELP TAB.e 2 TERMINALFormat: SHOW TERMINALi oGThe SHOW TERMINAL (abbreviated SH TE) command shows your terminal type:AHVT100, VT52 or Hardcopy. It also shows whether or not your terminal hasEscrolling regions, eight-bit graphics and the advanced screen editingT1features. See SET TERMINAL for more information.u2 TEXTFormat: SHOW TEXT text-typeb r(where text-type is one of the following: ENDd PAGE WHThe SHOW TEXT command shows the current string to be used for displayingformfeeds or the end of buffer.o 2 TRUNCATEFormat: SHOW TRUNCATET IGThe SHOW TRUNCATE (abbreviated SH TR) command shows the current settingrGof the option for displaying long lines in change mode. The default isiATRUNCATE, which means that lines longer than the screen width are Gtruncated on the display (the actual text is not altered). If you turntHoff this option by entering SET NOTRUNCATE, long lines are wrapped to as@many screen lines as are necessary to display the entire screen.2 VERIFYFormat: SHOW VERIFYo uBThe SHOW VERIFY (abbreviated SH VERI) command displays the currentAsetting of the option to list commands that are executed from the Gstartup command file or a macro. By default, verify is off, which meanscFthat the lines are not typed. If you turn it on, each such command istyped as it is executed. 2 VERSIONdFormat: SHOW VERSION sHThe SHOW VERSION (abbreviated SH VE) command displays the version numberFand copyright statement of EDT. You should write the full text of theCversion number on any EDT SPR. The copyright statement appears asieither c: COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1980, 1983 dor h8 COPYRIGHT DIGITAL EQUIPMENT CORPORATION 1980, 1983 f@the latter form is used on terminals that have the internationalcopyright symbol.s2 WORDFormat: SHOW WORD EGThe SHOW WORD (abbreviated SH WO) command shows the current setting form@the handling of word delimiters. The default is to consider allEdelimiters with the exception of a space a word. To disable this use SET WORD NODELIMITER.t2 WRAPFormat: SHOW WRAP  OEThe SHOW WRAP (abbreviated SH W) command shows the current setting ofO#the right margin for word wrapping.O 9EWord wrapping is a feature of EDT that automatically inserts carriageaHreturns when the text you are typing exceeds the right margin. The sameGmargin is used for the nokeypad mode FILL command. Word wrapping is inoBeffect in change mode only and only, if you have used the SET WRAPcommand. 1 SUBSTITUTEBThe SUBSTITUTE (abbreviated S) command replaces occurrences of one)string of characters with another string.t SMFormat: SUBSTITUTE/string-1/string-2/ [range] [/BRIEF[:n]] [/QUERY] [/NOTYPE]O 9HAny nonalphanumeric character except % can be used as string delimiters. uHAll occurrences of string-1 within the specified range are replaced withBstring-2. If you do not specify range, a single occurrence in the@current line is substituted. The line in which the substitution*occurred is typed after each substitution. 2 /BRIEF[:n]EWhen you select the /BRIEF (abbreviated /BR) option, only the first n Hcharacters00 O F & of the line are displayed. If you omit n, the default is 10. 2 /NOTYPEO>When you specify /NOTYPE (abbreviated /NOT) the lines in which%substitutions occurred are not typed.e2 NEXTHThe SUBSTITUTE NEXT (abbreviated N) command replaces the next occurrenceof string-1 with string-2. r/Format: [SUBSTITUTE] NEXT [/string-1/string-2/]i iGThe search for string-1 is made forward from the current location. WhenBFa substitution is made, the line where the substitution occurs becomesEthe current line. When the optional strings are omitted, the stringsa@used in the last SUBSTITUTE or SUBSTITUTE NEXT command are used.2 /QUERYFormat: /QUERY uGWhen you use the QUERY (abbreviated /Q) qualifier, EDT prompts you withN0a question mark (?) to verify each substitution. iResponses are: o! Y Yes, do the substitution.s' N No, do not do the substitution.s$ Q Quit, terminate the command.< A All, do the rest of the substitutions without query.1 TABuCThe TAB ADJUST (abbreviated TA A) command shifts each of a range of .lines a specified number of logical tab stops. T Format: TAB ADJUST [-] n [range] Fwhere n is the number of tab stops to shift. You must use the SET TABGcommand to set the logical tab size in order for this command to work.iDIf you omit range, the select range is assumed. If a minus sign (-)Hprecedes the count n, the text shifts to the left. Otherwise, it shifts to the right.e1 TYPEFThe TYPE (abbreviated T) command displays the specified range of lineson the terminal. )Format: TYPE [range] [/BRIEF[:n]] [/STAY]  i?The first line in the specified range becomes the current line.  tEIf the range specification starts with a nonalphabetic character, thes'keyword TYPE may be omitted completely. 2 /BRIEFFormat: /BRIEF[:n] aEWhen you select the /BRIEF (abbreviated /BR) option, only the first nuBcharacters of the line are displayed. If you omit n, the defaultis 10.2 /STAY Format: /STAYe )GWhen you select the /STAY (abbreviated /ST) option, the cursor positionmEis not changed by the TYPE command. This enables you to look at textfBelsewhere in the buffer (or in another buffer) without losing your position.h1 WRITEhHThe WRITE (abbreviated WR) command creates a file from a specified range of lines.B F7Format: WRITE file-spec [range] [/SEQUENCE[:init:incr]]t ,FWhen you specify a range, the text contained in that range becomes theGfile. When you do not specify a range, the contents of the current text Hbuffer becomes the new file. The cursor position is not affected by theWRITE command. 2 /SEQUENCE Format: /SEQUENCE[:init:incr]  tFWhen you use the /SEQUENCE option, the output file is in VFC (variableGwith fixed control) format, and line numbers are written in the controlnDfield. The values of both 'init' and 'incr' must be less than 65536. ]IIf you set init and incr, the file is renumbered starting with the numbertDyou choose for init, and the lines are incremented by the number youJchoose for incr. Otherwise, the line numbers assigned by EDT are written.EThese line numbers are truncated to integers and taken modulo 100000,with a maximum value of 65535.n, the output file is in VFC (variableGwith fixed control) format, and line numbers are written in the controlnDfield. The values of both 'init' and 'incr' must be less than 65536. ]IIf you set init and incr, the file is renumbered starting with the numbertDyou choose for init, and the lines are incremented by the number youJchoose for incr. Otherw@6X 3KHbers are truncated to integers and taken modulo 100000,with a maximum value of 65535.n, the output file is in VFC (variableGwith fixed control) format, and line numbers are written in the controlnDfield. The values of both 'init' and 'incr' must be less than 65536. ]IIf you set init and incr, the file is renumbered starting with the numbertDyou choose for init, and the lines are incremented by the number youJchoose for incr. Otherw00TADATADATADATADATADATADATADATADATA ; The RSX error logging system consists of four tasks - ELI,A ERRLOG, RPT, and CFL. Since these tasks require MCR syntax, use; the DCL MCR command to execute them from DCL. All command6 descriptions in these help files refer to MCR syntax. A The Error Log Interface task (ELI) controls the operation of theB error logging task (ERRLOG). ELI turns error logging on and off,B changes error limits, and names error log files and backup files.9 ERRLOG also provides a warning whenever one of the errorT limits is reached.s e3 The Report Generator task (RPT) produces error logF6 reports based on information in control file modules. R@ The Control File Language compiler (CFL) compiles the Error Log" control file modules used by RPT. A Type HELP ERROR_LOG ELI for more information about ELI commands.hF Type HELP ERROR_LOG WARNINGS for more information about error limits.@ Type HELP ERROR_LOG CFL for information about the CFL commands.D Type HELP ERROR_LOG RPT for more information about the RPT commands$ that generate error log reports. a2 CFL) o: The CFL compiler compiles Error Log control file modules.8 CFL is used primarily to generate new or patch existing9 control file modules. Since CFL does not produce object.; code, CFL binary output cannot be patched with ZAP or PAT. ? Patches must be made by applying SLP corrections to the sourceo> file and recompiling the module. CFL can be used from MCR or with the DCL MCR command. E$ The command line syntax for CFL is: hB [binary_file][,list_file][,symbol_file,]=input_file[,symbol_file] T The file type defaults are: g Binary ICF List LST Symbol SYM Input CNFe e2 ELI  c6 The Error Log Interface task (ELI) controls the Error9 Logging task (ERRLOG). ELI can be used from MCR or withw the DCL MCR command.h m& ELI switches and their functions are: Switch Meaning n /AP Appends a log file /BA Names a backup filer /HL Sets hard error limits /LIM Turns on limiting /-LIM Turns off limiting /LOG Turns on logging /-LOG Turns off logging! /RE Resets QIO and error countsr /SH Shows informations /SL Sets soft error limits" /SW Switches logging to new file tG Type HELP ERROR_LOG ELI switch for information on a particular switch.  d 3 /APPENDr t? The ELI /AP switch appends a previous log file to the current > log file. Logging must be active for the /AP switch to work.  Syntax: filespec/AP[/DE] r Default: . /-DE Does not delete the appended log file. g 3 /BACKUPuB The ELI /BA switch names a backup file to be used if the primary E error log file becomes unuseable. If you do not name a backup file, ! then LB:[1,6]BACKUP.ERR is used.T Syntax: backup_file/BAo< The backup file is not actually created until it is needed.F Note that by default the backup file is on the same device and in the same directory as LOG.ERR.e3 /HLc#/SL3 /LIMIT n4 The ELI /LIM switch turns error limiting on or off. t Syntax: /LIM /-LIM . Defaults: NoneT E3 /LOG c3 The ELI /LOG switch turns error logging on or off.r l Syntax: [logfile]/LOG[/-LIM][/NV]o Syntax: /LOG /-LOG Defaults: logfile LB:[1,6]LOG.ERR /LIM Enables limiting* /-NV Append log file to current log file i s e3 /RESET B The ELI /RE switch resets the error and QIO counts on devices. Up to 14 devices may be specified.  Syntax: ddnn:[,ddnn:,...]/RE t Default:r None 3 /SHOW. tH The ELI /SH switch displays error and QIO counts for up to 14 specified> devices on the system. If no devices are specified, all errorE logging devices are shown. The /SH switch also displays information @ about the current operating status of the error logging system.  Syntax: [ddnn:,...]/SH s Default: 7 ddnn: If no devices are specified, information aboutt+ all error logging devices is displayed.f3 /SL SE The ELI /HL and /SL switches set the Hard and Soft error limits. IftE limiting is turne00 O F &d on and a particular limit is reached, logging foriE that type of error stops for that device. Either switch may be usedgF individually or in combination. Up to 14 devices may be specified in one command line. g Syntax:0 ddnn:[,ddnn:,...]/HL:nn. Sets only hard limit/ ddnn:[,ddnn:,...]/SL:nn. Sets only soft limita2 ddnn:[,ddnn:,...]/HL:nn./SL:nn. Sets both limits  Defaults (set by sysgen): " Device type Hard limit Soft limit h Disks 5. 8. Tapes 5. 8. 3 /SWITCH rI The /SW switch copies the current log file to another file and transfers  logging to the new file.h s Syntax: logfile/SW[/DE][/NV] i Defaults: . logfile No default" /-DE Preserves previous log file5 /-NV Appends current log file to specified log filea2 RPTt d( The general command line syntax is: a3 [report_file[/switches]]=[input_file[/switches]]A RPT can be used either from MCR or with the DCL MCR command.t h Defaults: report_file input_file W Device: LB0: LB0:c UIC: current UIC [1,6] file_name: ERRREPORT LOGr file_type: .LST .ERR version: new version ;0 W; The equals sign (=) is not optional. Therefore, to get ae6 default report, including switches, use the following command line: f RPT>=< Switches are options that can be used on either side of the command line. iC Type HELP ERRLOG RPT DEFAULT for information on the switches used h! in the RPT default command line.t The Error Log RPT switches are: i Switch Meaning :( /DA[te] Selects packets based on date* /DE[vice] Selects packets based on device1 /F[ormat] Determines format for error log reportt2 /P[acket] Selects packets based on packet number< /R[eport] Creates reports using a predefined switch string5 /S[erial] Selects packets based on serial number ofr drive and/or pack/ /T[ype] Selects packets based on packet typeo1 /V[olume] Selects packets based on volume label 6 /W[idth] Determines width of error log output report B Type HELP ERROR_LOG RPT switch for information on individual RPT switches.3 /DATEb d# /DA:argument[:argument][:argument]m fK The RPT /DA switch allows you to select packets based on the time of theirR occurrence. e Syntax:C /DA:RANGE:start_date:end_date select packets in this date ranger+ /DA:TODAY select packets occuring TODAYe3 /DA:YESTERDAY select packets occuring YESTERDAY 1 /DA:PREVIOUS:n select packets occuring on theD PREVIOUS n dayso u> Start_date and end_date are both date strings. A date string has the form:  i String Type Meaning/ a1 dd-mmm-yy Start Starting at dd-mmm-yy 00:00:00i- dd-mmm-yy End Ending at dd-mmm-yy 23:59:59i o> (dd-mmm-yy hh:mm:[:ss]) Start Starting at the specified time: (dd-mmm-yy hh:mm:[:ss]) End Ending at the specified time t, * Start Any date up through the end_date' * End Any date since the start_dateR O Default:cA The default is /DA:RANGE:*:* to select packets from all dates.t 3 DEFAULTS a DEFAULTS  e- RPT switches use the following defaults: t /DA:RANGE:*:* /DE:ALL /F:BRIEF  /P:*:*a /T:ALLd /W:WIDE 0A The rest of the RPT switches have no defaults. RPT does not use-4 them unless they are specified in the command line. d 3 /DEVICE: [ /DE:argumentg G The RPT /DE switch allows you to select packets for peripheral errors, ( based on the device or controller name. f Syntax:/ /DE:ALL select errors from all peripheralsr2 /DE:d_s select errors from a single peripheral3 /DE:(d_s,...) select errors from the peripheralsR specifiedA ! The device specifier d_s can be:: E Syntax Meaning R# DD devices with the mnemonic DDe DDnn: device DDnn: e Default:f /DE:ALL m 3 /FORMAT  /F:report_formatE gC The RPT /F switch allows you to specify the desired format for thep packet-by-packet report.h e Syntax:, /F:BRIEF Displays packets in BRIEF format* /F:FULL Displays packets in FULL format6 00TADATADATADATADATADATADATADATADATA/F:REGISTERS Displays only device registers in FULL* format on PERIPHERAL errors. Does not* display software information. Packets& for other errors are displayed in  FULL format.. /F:NONE Does not display a packet by packet report.A 6 Multiple arguments for the /F switch are not allowed. t Default:o /F:BRIEFy e 3 /PACKETr C /P:packet_number[:packet_number] or /P:(selection1,selection2,...)a pD The RPT /P switch allows you to select a packet or range of packetsF by specifying the packet identification number. BBB.RR is the formatF for packet_number, where BBB is the block number and RR is the record number. r Syntax:' /P:packet_number Selects this packet : /P:start_number:end_number Selects this range of packets> /P:(packet_specifier,...) Selects multiple packet_specifiers  String Type Meaningr 1 xxx.yy Start Starting with packet number xxx.yyn- zzz.aa End Ending with packet number zzz.aaw o' * Start Any packet number through the end_number.e# * End Any packet number since theR start-number.r c Default:  /P:*:* Selects all packets R 3 /REPORTo 5 /R:string_name or /R:(string_name1,string_name2,...)s c6 The RPT /R switch accesses predefined switch strings. c Syntax:6 /R:argument Replaces /R:argument with a predefined  switch stringy > In this command, 'argument' is interpreted as either the nameB of a DIGITAL predefined switch string or as a user defined switch* string, located in LB:[1,6]ERRDEFINE.CFS. *A DIGITAL supplies 4 predefined switch strings to use with the /REt? switch. Their arguments are SYSTEM, WEEK, MONTH, and DAY. Theg7 strings, using defaults for unspecified switches, are:T * SYSTEM /F:BR/T:A/DA:RA:*:*/P:*:*/W:WI( WEEK /F:BR/T:A/DA:PREVIOUS:7/W:WI) MONTH /F:BR/T:A/DA:PREVIOUS:31/W:WIn% DAY /F:FULL/T:A/DA:TODAY/W:WI  e Default:e Noneh a 3 /SERIALI A /S:argument:argumenti o7 The RPT /S switch selects packets based on their driveR and/or pack serial number.p e Syntax:= /S:DRIVE:serial_number Selects errors from peripherals thatn# have the specified drive serial number s s< /S:PACK:serial_number Selects errors from peripherals that" have the specified pack serial number := /S:(DRIVE:s_n,PACK:s_n)Selects errors from peripherals thatn have the specified pack andY drive serial numberN h= /S:(DRIVE:s_n,PACK:s_n)Selects errors from peripherals thatw% have the specified pack and drivev serial number. - The serial_number is a string of hex digits.r l Default:  None e3 /TYPEn , /T:argument or /T:(argument1,argument2,...) 7 The RPT /T switch selects packets by specifying a typel or types of packets.e i Syntax:) /T:PERIPHERAL Selects peripheral errorss" /T:PROCESSOR Selects cpu errors" /T:MEMORY Selects memory errors/ /T:CONTROL Selects Error Log control packets,4 /T:SYSTEM_INFO Selects system information packets- /T:ERRORS Selects peripheral, CPU, memory,m+ and system_information packetse /T:ALL Selects all packetso2 /T:(xxx,...) Selects the packet types specified( xxx can be any one of the arguments- listed above. Note that you can specifyf, ALL and ERRORS in this syntax, but each) must be the only argument. That is,e* /T:(ALL) is legal but /T:(MEMORY,ALL) is not. R Default:  /T:ALL 3 /VOLUMEk , /V:argument OA The RPT /V switch allows you to select packets based on a devicea volume label.  Syntax:0 /V:volume_label Selects packets that have the specified volume label.) Default:h Nonet3 /WIDTH d /W:argument < The RPT /W switch controls the width of the output listing. p Syntax:+ /W:NARROW Generates an 80 column listing ) /W:WIDE Generates a 132 column listing  / Default:l /W:WIDE M 2 WARNINGS = The ERRLOG task issues a warning message when error limitingt= is turned on and the device reaches one of the error limits.a00 O F & The message is: e= ** WARNING: Device ddnn: reached {Hard|Soft} limit (nn.) **t @ ERRLOG then stops logging that particular type of error on that2 device. Logging can be resumed on the device by: F (1) raising the limit that was met (see HELP ERROR_LOG ELI HL or SL)G (2) resetting the device error counts (see HELP ERROR_LOG ELI RESET)./ IF On nonmultiuser systems, the warning is only displayed on the console terminal. H On multiuser systems, the warning is displayed on any terminal that hasE allocated the device. If that fails, it is sent to the terminal that*D invoked the task that attached the device. If the device is neither< allocated nor attached, the warning is sent to the console. H See HELP ERROR_LOG ELI SHOW for information on how to display the error counts for each device. t s HELP ERROR_LOG ELI RESET)./ IF On nonmultiuser systems, the warning is only displayed on the console terminal. H On multiuser systems, the warning is displayed on any termina@X 3Ne terminal that*D invoked the task that attached the device. If the device is neither< allocated nor attached, the warning is sent to the console. H See HELP ERROR_LOG ELI SHOW for information on how to display the error counts for each device. t s HELP ERROR_LOG ELI RESET)./ IF On nonmultiuser systems, the warning is only displayed on the console terminal. H On multiuser systems, the warning is displayed on any termina6 Help is available for all Executive directives. Type HELP EXECUTIVE macrocall E for help on the directive that corresponds to the macro call. (Note E that the terminating $ should be eliminated from the macro call when D requesting help. For example, type HELP EXECUTIVE ABRT for help on the ABRT$ directive.) You can also type" HELP EXECUTIVE directivenameF where directivename is the name of the directive. Remember that manyG directives have similar names. Type the full name of the directive asl< a single word with underscores between words. For example:. HELP EXECUTIVE SEND_REQUEST_AND_CONNECT F Type HELP EXECUTIVE DIRECTIVES for a list of the directives and their macro call names.H Type HELP EXECUTIVE DIC for information on the Directive IdentificationG Codes and HELP EXECUTIVE ERRORS for a list of the error codes returnedc in the Directive Status Word. 2 DIRECTIVESE The following is a list of all of the Executive directives and theirp macro call names. ABRT Abort Task ACHN Assign Channel o ALTP Alter Priority ALUN Assign LUN ASTX AST Service Exit ATRG Attach Region! CINT Connect to Interrupt Vector  CLEF Clear Event Flagd CLON Create Logical Name CMKT Cancel Mark Time Requestsr CNCT Connecti CPCR Checkpoint Common Region CRAW Create Address Windowa% CRGF Create Group Global Event Flags  CRRG Create RegionW CRVT Create Virtual Terminalo* CSRQ Cancel Scheduled Initiation Requests e DECL Declare Significant Event! DLON Declare Significant EventC DSAR Disable AST Recognition DSCP Disable Checkpointinge DTRG Detach Regiona ELAW Eliminate Address Window( ELGF Eliminate Group Global Event Flags ELVT Eliminate Virtual Terminal EMST Emit StatusR ENAR Enable AST Recognition ENCP Enable Checkpointing EXIF Exit Ifd. EXIT Task Exit (Note: use full name for help) EXST Exit with Status EXTK Extend Taskr) FEAT Test for Specified System Featuret" FSS File Specification Scanner) GCCI Get Command for Command Interpreter ) GCII Get Command Interpreter InformationC GDIR Get Default DirectoryR GLUN Get LUN Informationl GMCR Get MCR Command Line GMCX Get Mapping Contexte GPRT Get Partition Parameters GREG Get Region ParametersR GSSW Get Sense Switches GTIM Get Time Parametersn GTSK Get Task Parameters  k IHAR Inhibit AST Recognitionh MAP Map Address Windows MRKT Mark Times2 MSDS Map Supervisor D-Space to Supervisor I-Space- MVTS Move to/from User/Superv00TADATADATADATADATADATADATADATADATAisor I-/D-Spacem PFCS Parse FCSp PRMS Parse RMSo QIO Queue I/O Request QIOW Queue I/O Request and Wait RCST Receive Data or Stop RCVD Receive Data RCVX Receive Data or Exit RDAF Read All Event Flags RDEF Read Event Flage RDXF Read Extended Event Flags - RLON Recursive Translation of Logical Name  RMAF Remove AffinityI, RPOI Request and Pass Offspring Information RQST Request Task RREF Receive By Reference$ RRST Receive By Reference or Stop RSUM Resume Task/ RUN Run Task-! SCAA Specify Command Arrival AST  SCAL Supervisor Calle" SCLI Set Command Line Interpreter SDAT Send DataS SDIR Set Default Directory SDRC Send, Request, and Connect8 SDRP Send Data Request and Pass Offspring Control Block SETF Set Event Flag* SFPA Specify Floating Point Exception AST SMSG Send Message SNXC Send Next CommandO SPEA Specify Parity Error AST SPND Suspend SPRA Specify Power Recovery AST SPWN Spawn  SRDA Specify Receive Data AST SREA Specify Requested Exit AST SREX Specify Requested Exit AST SREF Send By Referencel& SRRA Specify Receive-By-Reference AST STAF Set Affinity STIM Set System Timer( STLO Stop for Logical OR of Event Flags STOP Stop STSE Stop for Single Event Flag* SVDB Specify SST Vector for Debugging Aid! SVTK Specify SST Vector for Task  SWST Switch State' TFEA Test for Specified Task Featurer TLON Translate Logical Name% ULGF Unlock Group Global Event FlagsS UNMAP Unmap Address Window USTP Unstop VRCD Variable Receive Data % VRCS Variable Receive Data or Stop e% VRCX Variable Receive Data or Exit e VSDA Variable Send Data ) VSRC Variable Send, Request, and Connectl WSIG Wait for Significant Event( WTLO Wait for Logical OR of Event Flags WTSE Wait for Single Event Flag 2 ABORT_TASK#ABRTf2 ABRTG Abort Task ABRT$  FORTRAN Call: CALL ABORT (tsk[,ids])a6 tsk Name (Radix-50) of the task to be aborted ids Directive status Macro Call: ABRT$ tsk6 tsk Name (Radix-50) of the task to be aborted2 ASSIGN_CHANNEL#ACHNa2 ACHNH Assign Channel (RSX-11M-PLUS, Micro/RSX) ACHN$ FORTRAN Call:6 CALL ACHN ([mod],[itbmsk],lun,fsbuf,fssz[,idsw])G mod Modifier for logical name table entries; specify one * of the following values: LB.LOC = 1 LB.LOG = 2G Specifying one of these values indicates that matchesG in the logical table are based on the exact value.LG Not specifying a value indicates that the system will G look for the first matching logical block, regardless,( of the modifier value.G itbmsk Inhibit mask to prevent a logical table from being G searched. The following symbol definitions, when F set, prevent a particular table from being searched:+ System (IN.SYS) = 10n+ Group (IN.GRP) = 4v+ Session (IN.SES) = 20l+ Task (IN.TSK) = 1  $ lun LUN to be assigned@ fsbuf Array containing the file specification bufferB fssz Size (in bytes) of the file specification buffer > idsw Integer to receive the Directive Status Word Macro Call:# ACHN$ mod,tbmsk,lun,fsbuf,fsszl9 mod Modifier for logical name table entries; specify oneY of the following values: LB.LOC = 1 LB.LOG = 27 Specifying one of these values indicates that matches 4 in the logical table are based on the exact value.7 Not specifying a value indicates that the system wille7 look for the first matching logical block, regardlessb of the modifier value.: tbmsk Inhibits mask to prevent a logical table from being7 searched. The following symbol definition, when set,k100 O F & prevent a particular table from being searched:t System (IN.SYS) = 10 Group (IN.GRP) = 4: Session (IN.SES) = 20G Task (IN.TSK) = 1o lun LUN to be assigneda+ fsbuf Address of file specification buffer 6 fssz Size (in bytes) of the file specification buffer2 ALTER_PRIORITY#ALTPr2 ALTPG Alter Priority ALTP$k FORTRAN Call:% CALL ALTPRI ([tsk],[ipri][,ids])r tsk Active task namei? ipri A one-word integer value equal to the new priorityt from 1 to 250(10) ids Directive status Macro Call: ALTP$ [tsk][,pri] tsk Active task nameb+ pri New priority from 1 to 250(10)s 2 ASSIGN_LUN#ALUNe2 ALUNG Assign LUN ALUN$  FORTRAN Call:$ CALL ASNLUN (lun,dev,unt[,ids]) lun Logical unit number& dev Device name (format: 1A2) unt Device unit numberw ids Directive statusw Macro Call: ALUN$ lun,dev,unt lun Logical unit number3 dev Device name (two uppercase characters)  unt Device unit numberN2 AST_SERVICE_EXIT#ASTX2 ASTXG AST Service Exit ($S form recommended) ASTX$S  FORTRAN Call:F Neither the FORTRAN language nor the ISA standard permits directF linking to system-trapping mechanisms. Therefore, this directive' is not available to FORTRAN tasks.i Macro Call: ASTX$S [err]:" err Error-routine address2 ATTACH_REGIONu#ATRG2 ATRGF Attach Region ATRG$ FORTRAN Call: CALL ATRG (irdb[,ids])AG irdb An eight-word integer array containing a Region DefinitionF Block N ids Directive statush Macro Call: ATRG$ rdb, rdb Region Definition Block addressG See HELP EXECUTIVE RDB for information on the Region Definition Block.l2 CLEAR_EVENT_FLAG#CLEF 2 CLEFG Clear Event Flag CLEF$i FORTRAN Call: CALL CLREF (efn[,ids])  efn Event flag number ids Directive status Macro Call: CLEF$ efn efn Event flag number2 CREATE_LOGICAL_NAME#CLONi2 CLONH Create Logical Name (RSX-11M-PLUS, Micro/RSX) CLON$: (CALL CRELON and CLON$ are the preferred calls to use on8 RSX-11M-PLUS and Micro/RSX. CALL CRELOG and CLOG$ are( provided for compatibility with P/OS.) FORTRAN Call: ; CALL CRELON (mod,itbnum,lns,lnssz,iens,ienssz[,idsw])E; CALL CRELOG (mod,itbnum,lns,lnssz,lens,ienssz[,idsw]) G mod Modifier of the logical name within a table; if notfG specified, the nonzero value reserved by the systemmG (LB.LOC = 1) is placed in the DPB; if specified,dH nonzero values must correspond to the valid symbolic1 references used by the systemiG itbnum Logical name table number in the lower byte and thes= status byte in the upper byte, as follows:s% Table number:  4 System (LT.SYS) = 04 Group (LT.GRP) = 14 Session (LT.SES) = 44 Task (LT.TSK) = 3 Status:= LS.TRM = 1 Terminal statuse? LS.PRV = 2 Privileged statusoE lns Character array containing the logical name stringf = lnssz Size (in bytes) of the logical name string G iens Character array to contain the returned equivalencep string G ienssz Size (in bytes) of the data area for the returned % equivalence string ? 00TADATADATADATADATADATADATADATADATAidsw Integer to receive the Directive Status Word Macro Calls:e" CLON$ mod,,lns,lnssz,ens" CLOG$ mod,,lns,lnssz,ens: mod Modifier of the logical name within a table; if not5 specified, the nonzero value reserved by the systema1 (LB.LOC =1) is placed in the DPB; if specified,y6 nonzero values must correspond to the valid symbolic references used by the systemz" <[tbnum][,status]>0 (angle brackets not required if only tbnum is specified)1 tbnum Logical name table number. The following * are the symbolic offsets for the table: System (LT.SYS) = 0 Group (LT.GRP) = 1 Session (LT.SYS) = 4l Task (LT.TSK) = 3) status Logical status definition value.r, The following are the valid bits for the value:B LS.TRM = 1 Terminal statusm! LS.PRV = 2 Privileged statusc lns Logical name string1 lnssz Size (in bytes) of the logical name stringg! lens Returned equivalence stringm5 lenssz Size (in bytes) of the data area for returned  equivalence string2 CANCEL_MARK_TIME_REQUESTSa#CMKT2 CMKTH Cancel Mark Time Requests CMKT$ FORTRAN Call: CALL CANMT ([efn][,ids])n efn Event flag number ids Directive status Macro Call: CMKT$ [[efn],[ast],[err]] efn Event flag number" ast Mark time AST address" err Error-routine address 2 CONNECTu#CNCTe2 CNCTG Connect CNCT$  FORTRAN Call:: CALL CNCT (rtname,[iefn],[iast],[iesb],[iparm][,ids]); CALL CNCTN (rtname,[iefn],[iast],[iesb],[iparm][,ids])CC rtname Name (Radix-50) of the Offspring task to be connectedrD iefn Event flag to be set when the offspring task exits or emits statustD iast Name of an AST routine to be called when theF Offspring task exits or emits status (ignored for CALL CNCTN)H iesb Name of an eight-word status block to be written when8 the Offspring task exits or emits statusD iparm Name of a word to receive the status block address" when an AST occurs< ids Integer to receive the Directive Status Word Macro Call:# CNCT$ tname,[efn],[east],[esb] E tname Name (Radix-50) of the Offspring task to be connectedsD efn The event flag to be cleared on issuance and set= when the Offspring task exits or emits status D east Address of an AST routine to be called when the4 Offspring task exits or emits statusH esb Address of an eight-word status block to be written when8 the Offspring task exits or emits statusA See HELP EXECUTIVE ESB for information on the Exit Status Block.a2 CONNECT_TO_INTERRUPT_VECTORb#CINTc2 CINTF Connect To Interrupt Vector CINT$ FORTRAN Call: Not supported Macro Call:$ CINT$ vec,base,isr,edir,pri,astD vec Interrupt vector address; must be in the range 60(8) to@ highest vector specified during system generation,3 inclusive, and must be a multiple of 4sD base Virtual base address for kernel APR 5 mapping of the6 ISR and enable/disable interrupt routinesC isr Virtual address of the ISR or 0 to disconnect from the  interrupt vectorRD edir Virtual address of the enable/disable interrupt routine< pri Initial priority at which the ISR is to executeD ast Virtual address of an AST routine to be entered after1 the fork-level routine queues an ASTt2 CHECKPOINT_COMMON_REGION#CPCRV2 CPCRH Checkpoint Common Region (RSX-11M-PLUS, Micro/RSX) CPCR$ a FORTRAN Call: CALL CPCR (name[,ids])dC name Name (Radix-500 O F &0) of the common region to bec checkpointed ids Directive status Macro Call: CPCR$ namei: name Name of the common region to be checkpointed2 CREATE_ADDRESS_WINDOWi#CRAWe2 CRAWG Create Address Window CRAW$I FORTRAN Call: CALL CRAW (iwdb[,ids])mH iwdb An eight-word integer array containing a Window Definition Block  ids Directive statusa Macro Call: CRAW$ wdb, wdb Window Definition Block addressG See HELP EXECUTIVE WDB for information on the Window Definition Block. !2 CREATE_GROUP_GLOBAL_EVENT_FLAGSo#CRGFc2 CRGFG Create Group Global Event Flags CRGF$  FORTRAN Call: CALL CRGF ([group][,ids])K group Group number for the flags to be created. Only privilegedrL tasks can specify group numbers other than the issuing task'sA group UIC. If the UIC is not specified, the task'sWF protection UIC (H.CUIC+1) in the task's header is used.; ids Integer to receive the Directive Status WordN Macro Call: CRGF$ [group]K group Group number for the flags to be created. Only privilegedL tasks can specify group numbers other than the issuing task'sC group UIC. If the UIC is not specified, the task'sgF protection UIC (H.CUIC+1) in the task's header is used.2 CREATE_REGIONc#CRRGt2 CRRGG Create Region CRRG$. FORTRAN Call: CALL CRRG (irdb[,ids])vH irdb An eight-word integer array containing a Region Definition Block  ids Directive status Macro Call: CRRG$ rdb, rdb Region Definition Block addressG See HELP EXECUTIVE RDB for information on the Region Definition Block. 2 CREATE_VIRTUAL_TERMINAL+#CRVTh2 CRVTG Create Virtual Terminal (RSX-11M-PLUS, Micro/RSX) CRVT$  FORTRAN Call:< CALL CRVT ([iiast],[ioast],[iaast],[imlen],iparm[,ids])D iiast AST address at which input requests from offspring" tasks are servicedD ioast AST address at which output requests from offspring" tasks are servicedD iaast AST address at which the parent task may be notifiedD of the completion of successful offspring attach and< detach requests to the virtual terminal unitD imlen Maximum buffer length allowed for offspring I/O requestsH iparm Address of three-word buffer to receive information from, the stack when an AST occursG ids Integer to receive the Directive Status Word containing + the virtual terminal numbert Macro Call:& CRVT$ [iast],[oast],[aast],[mlen]D iast AST address at which input requests from offspringG tasks are serviced; if iast=0, offspring input requestsr1 are rejected with IE.IFC returned D oast AST address at which output requests from offspringH tasks are serviced; if oast=0, offspring output requests1 are rejected with IE.IFC returneddD aast AST address at which the parent task may be notifiedD of the completion of successful offspring attach andC detach requests to the virtual terminal unit; if E aast=0, no notification of offspring attach/detach is . returned to the parent taskF mlen Maximum buffer length (in bytes) allowed for offspringA I/O requests (default and maximum values for this 8 parameter are system generation options)&2 CANCEL_SCHEDULED_INITIATION_REQUESTS#CSRQi2 CSRQF Cancel Scheduled Initiation Requests CSRQ$ FORTRAN Call: C00TADATADATADATADATADATADATADATADATAALL CANALL (tsk[,ids]) tsk Task name ids Directive statusf Macro Call: CSRQ$ tsk) tsk Scheduled (target) task name 2 DECLARE_SIGNIFICANT_EVENTtG Declare Significant Event ($S form recommended) DECL$S  FORTRAN Call: CALL DECLAR ([,ids])a ids Directive statusi Macro Call: DECL$S [,err]" err Error-routine address2 DELETE_LOGICAL_NAME #DLON 2 DLONF Delete Logical Name (RSX-11M-PLUS, Micro/RSX) DLON$9 (CALL DELLON and DLON$ are the preferred calls to use onc: RSX-11M-PLUS and Micro/RSX systems. DELLOG and DLOG$ are& provided for compatibility with P/OS. FORTRAN Call:/ CALL DELLON (mod,itbnum,lns,lnssz[,idsw]) / CALL DELLOG (mod,itbnum,lns,lnssz[,idsw])(G mod Modifier of the logical name within a table; if not,G specified, the nonzero value reserved by the systemOG (LB.LOC = 1) is placed in the DPB; if specified, any G nonzero value must correspond to the valid symbolicR0 references used by the systemE itbnum Logical name table number. The tables and theirA- corresponding numbers are: / System (LT.SYS) = 0 / Group (LT.GRP) = 1a/ Session (LT.SES) = 4t/ Task (LT.TSK) = 3 E lns Character array containing the logical name string = lnssz Size (in bytes) of the logical name string? idsw Integer to receive the Directive Status Word Macro Call:  DLON$ mod,tbnum,lns,lnssz  DLOG$ mod,tbnum,lns,lnsszmG mod Modifier of the logical name within a table; if not G specified, the nonzero value reserved by the system(G (LB.LOC = 1) is placed in the DPB; if specified, any G nonzero value must correspond to the valid symbolic 0 references used by the systemE tbnum Logical name table number. The tables and their- corresponding numbers are:n/ System (LT.SYS) = 0 / Group (LT.GRP) = 1a/ Session (LT.SES) = 4t/ Task (LT.TSK) = 3 & lns Logical name string= lnssz Size (in bytes) of the logical name stringr p2 DISABLE_AST_RECOGNITION#DSAR 2 DSARG Disable AST Recognition ($S form recommended) DSAR$S  FORTRAN Call: CALL DSASTR [(ids)] ids Directive statusn Macro Call: DSAR$S [err] " err Error-routine address2 DISABLE_CHECKPOINTING#DSCP 2 DSCPG Disable Checkpointing ($S form recommended) DSCP$ST FORTRAN Call: CALL DISCKP [(ids)] ids Directive statusi Macro Call: DSCP$S [err]" err Error-routine address2 DETACH_REGIONA#DTRGg2 DTRGG Detach Region DTRG$C FORTRAN Call: CALL DTRG (irdb[,ids])uH irdb An eight-word integer array containing a Region Definition Block P ids Directive statuse Macro Call: DTRG$ rdb, rdb Region Definition Block addressG See HELP EXECUTIVE RDB for information on the Region Definition Block.l2 ELIMINATE_ADDRESS_WINDOW#ELAWr2 ELAW r& Eliminate Address Window ELAW$ FORTRAN Call: CALL ELAW (iwdb[,ids]) H iwdb An eight-word integer array containing a Window! Definition Block o ids Directive status Macro Call: ELAW$ wdb/ wdb Window Definition Block addressG See HELP EXECUTIVE WDB for information on the Window Definition Block.L$2 ELIMINATE_GROUP_GLOBAL_EVENT_FLAGS#ELGFe2 ELGFG Eliminate Group00 O F & Global Event Flags ELGF$e FORTRAN Call: CALL ELGF ([group][,ids])G group Group number of flags to be eliminated. Only privilegednE tasks can specify group numbers other than the issuing H task's group UIC. If the UIC is not specified, the task'sF protection UIC (H.CUIC+1) in the task's header is used.; ids Integer to receive the Directive Status WordL Macro Call:E ELGF$ [group]G group Group number of flags to be eliminated. Only privilegedNE tasks can specify group numbers other than the issuing H task's group UIC. If the UIC is not specified, the task'sF protection UIC (H.CUIC+1) in the task's header is used.2 ELIMINATE_VIRTUAL_TERMINAL#ELVTk2 ELVT J Eliminate Virtual Terminal (RSX-11M-PLUS, Micro/RSX) ELVT$ FORTRAN Call: CALL ELVT (iunum[,ids]), iunum Virtual terminal unit number< ids Integer to receive the Directive Status Word Macro Call: ELVT$ unumyE unum Unit number of the virtual terminal to be eliminated.I> The task must provide this parameter after the, virtual terminal is created. 2 EMIT_STATUS_#EMST_2 EMSTG Emit Status EMST$S FORTRAN Call:& CALL EMST ([rtname],status[,ids])F rtname Name of a task connected to issuing task to which the' status is to be emittedaD status A 16-bit quantity to be returned to the connected task< ids Integer to receive the Directive Status Word Macro Call: EMST$ [tname],statustD tname Name of a task connected to the issuing task to1 which the status is to be emitted D status A 16-bit quantity to be returned to the connected task2 ENABLE_AST_RECOGNITION#ENARt2 ENARG Enable AST Recognition ($S form recommended) ENAR$St FORTRAN Call: CALL ENASTR [(ids)] ids Directive statuss Macro Call: ENAR$S [err]e" err Error-routine address2 ENABLE_CHECKPOINTING#ENCPa2 ENCPG Enable Checkpointing ($S form recommended) ENCP$S  FORTRAN Call: CALL ENACKP [(ids)] ids Directive status Macro Call: ENCP$S [err] " err Error-routine address 2 TASK_EXITRG Task Exit ($S form recommended) EXIT$St FORTRAN Call: CALL EXIT (istat)sB istat A 16-bit quantity to be returned to the parent task Macro Call: EXIT$S [err]d" err Error-routine address 2 EXIT_IFa#EXIFc2 EXIFG Exit If EXIF$ FORTRAN Call: CALL EXITIF (efn[,ids]) efn Event flag number ids Directive statusi Macro Call: EXIF$ efn efn Event flag number2 EXIT_WITH_STATUS#EXST$2 EXSTG Exit with Status EXST$  FORTRAN Call: CALL EXST (istat)C istat A 16-bit quantity to be returned to the parent task Macro Call: EXST$ status C status A 16-bit quantity to be returned to the parent taskN2 EXIT_STATUS_BLOCKT#ESB2 ESB)D The Exit Status Block (ESB) can be specified by a parent task when K spawning or connecting to an offspring task. The ESB receives exit-statusWJ information when the offspring task exits or emits status. The format of the ESB is as follows:$ Word 0 Offspring-task exit status Word 1 TKTN abort codet Words 2-7 ReserveddI The ESB defaults to a length of one word. To receive more than one word I of information, logically OR the event flag argument with SP.WX8 in the TL directive that establishes the connection to the offspring task. Note thatM if this is done00TADATADATADATADATADATADATADATADATA, all eight words of the ESB are expected to be available fora returning information. 2 EXTEND_TASKe#EXTK 2 EXTKG Extend Task EXTK$k FORTRAN Call: CALL EXTTSK ([inc][,ids])D inc A positive or negative number equal to the number ofD 32-word blocks by which the task size is to be extended or reducedT ids Directive status Macro Call: EXTK$ [inc]D inc A positive or negative number equal to the number ofD 32-word blocks by which the task is to be extended or reduced#2 TEST_FOR_SPECIFIED_SYSTEM_FEATURE #FEAT 2 FEAT E Test for Specified System Feature FEAT$v FORTRAN Call: CALL FEAT (isym[,ids]) 4 isym Symbol for the specified system feature ids Directive statuse Macro Call: FEAT$ sym4 sym Symbol for the specified system feature2 FILE_SPECIFICATION_SCANNER#FSS2 FSSuH File Specification Scanner (RSX-11M-PLUS, Micro/RSX) FSS$ FORTRAN Call:r; CALL FSSFSS (fsbuf,fssz,prsblk,prssz,[reserv][,idsw]) A fsbuf Array containing the file specification buffer C fssz Size (in bytes) of the file specification buffery3 prsblk Array containing the parse blocks5 prssz Size (in bytes) of the parse block= reserv Reserved parameter (must not be specified)E? idsw Integer to receive the Directive Status Word- Macro Call:) FSS$ fsbuf,fssz,prsblk,prssz,reserv; fsbuf Address of the file specification bufferC fssz Size (in bytes) of the file specification buffer - prsblk Address of the parse blocki a. prssz Size (in bytes) of the parse block5 reserv Reserved parameter (must be blank))%2 GET_COMMAND_FOR_COMMAND_INTERPRETER #GCCIe2 GCCIG Get Command for Command Interpreter GCCI$  FORTRAN Call:B CALL GTCMCI (icbf,icbfl,[iibuf],[iibfl],[iaddr],[incp][,ids]): icbf Name of a byte array to receive the commandE icbfl Integer containing the size of the icbf array in bytesL iibuf Name of an integer array to receive the optional information  buffer G iibfl Name of an integer containing the length of the optionalO! information bufferC iaddr Name of an integer containing the address in pool of E the command desired. (This address was obtained by ad> previous call to GTCMCI with GC.CND specified.)D incp Name of an integer containing a value indicating theK action to take if there is no command queued (see list undert ncp) ; ids Integer to receive the Directive Status Wordi Macro Call:/ GCCI$ cbuf,cbfl,[ibuf],[ibfl],[addr],[ncp]: cbuf Address of buffer to receive command stringB cbfl Length of buffer; maximum buffer size is 91(10) for? RSX-11M and 266(10) for RSX-11M-PLUS and for Micro/RSXsF ibuf Address of buffer to receive information on the issuing terminala6 ibfl Length of buffer to receive information! addr Address of commands> ncp Action to take if no command buffer is present:C GC.CCS (000) -- Return with Carry set (default)AF GC.CEX (001) -- Force CLI to exit instead of- returning F GC.CST (002) -- Force CLI to stop instead of- returningeF GC.CND (200) -- Copy command into buffer, but do@ not dequeue it from the list%2 GET_COMMAND_INTERPRETER_INFORMATIONf#GCIIr2 GCIIG Get Command Interpreter Information GC00 O F &II$ FORTRAN Call:8 CALL GETCII (ibuf,ibfl,[icli],[idev],[iunit][,ids])F ibuf Name of an integer array to receive the CLI informationF ibfl Length in bytes of the integer array to receive the CLI informationG icli Name of a two-word array element containing the Radix-50  name of the CLIF idev Name of an integer containing the ASCII name of( terminal (default is TI:)F iunit Name of an integer containing the octal unit number of terminali ids Directive status Macro Call:$ GCII$ buf,bufl,cli,[dev],[unit]7 buf Address of buffer to receive informatione+ bufl Length of information bufferiK cli Name (Radix-50) of the CLI on which information is requested  G dev ASCII name of terminal whose CLI should be used (default is TI:), unit Octal unit number of terminal2 GET_DEFAULT_DIRECTORYu#GDIRb2 GDIR? Get Default Directory (RSX-11M-PLUS, Micro/RSX) GDIR$M FORTRAN Call:2 CALL GETDDS (mod,iens,ienssz,[irsize],[idsw])C mod Modifier for the GDIR$ directive; specify one of ther following values:% 0 = Get task defaulta) GD.LOG = Get terminal default F iens Character array containing the default directory string> ienssz Size (in bytes) of the default directory string? irsize Buffer address of the returned default directory( string size ; ids Integer to receive the Directive Status Words Macro Call:" GDIR$ [mod],ens,enssz[,rsize]C mod Modifier for the GDIR$ directive; specify one of the following values:% 0 = Get task default ) GD.LOG = Get terminal defaultc= ens Buffer address of the default directory stringyE enssz Size (in bytes) of the default directory string buffertH rsize Buffer address to which the size of the default directory! string is returned 2 GET_LUN_INFORMATIONl#GLUN 2 GLUNG Get LUN Information GLUN$v FORTRAN Call: CALL GETLUN (lun,dat[,ids]) lun Logical unit number@ dat A six-word integer array to receive LUN information ids Directive statust Macro Call: GLUN$ lun,buf lun Logical unit numberF buf Address of six-word buffer that will receive the LUN information2 GET_MCR_COMMAND_LINE#GMCR2 GMCRG Get MCR Command Line GMCR$  FORTRAN Call: CALL GETMCR (buf[,ids])9 buf An 80-byte array to receive the command linei ids Directive statusr Macro Call: GMCR$2 GET_MAPPING_CONTEXTi#GMCXr2 GMCXG Get Mapping Context GMCX$  FORTRAN Call: CALL GMCX (imcx[,ids]) D imcx An integer array to receive the mapping context. TheD size of the array is 8*n+1, where n is the number of2 window blocks in the task's header. 6 The maximum size is 8*8=1=65 on RSX-11M systems.B and 8*24+1=193 on RSX-11M-PLUS and Micro/RSX systems. ids Directive status Macro Call: GMCX$ wvecXC wvec The address of a vector of n Window Definition BlocksXE followed by a terminator word; n is the number of window ( blocks in the task's headerG See HELP EXECUTIVE WDB for information on the Window Definition Block.e2 GET_PARTITION_PARAMETERS#GPRTh2 GPRTG Get Partition Parameters GPRT$  FORTRAN Call:" CALL GETPAR ([prt],buf[,ids]) prt Partition names@ buf A three-word integer array to receive the partition parameterso00TADATADATADATADATADATADATADATADATA ids Directive status Macro Call: GPRT$ [prt],buf prt Partition name + buf Address of a three-word bufferT Buffer format:t+ Word 0 Partition physical base addressA Word 1 Partition size! Word 2 Partition flags word: & 0 = system-controlled partition$ 1 = user-controlled partition2 GET_REGION_PARAMETERS #GREGt2 GREGG Get Region Parameters GREG$i FORTRAN Call:" CALL GETREG ([rid],buf[,ids]) rid Region idH buf A three-word integer array to receive the region parameters ids Directive statusf Macro Call: GREG$ [rid],buf rid Region id+ buf Address of a three-word bufferl Buffer format:0 Word 0 Region base address  Word 1 Region sizer Word 2 Region flags word:& 0 = system-controlled partition$ 1 = user-controlled partition2 GET_SENSE_SWITCHES#GSSW:2 GSSWG Get Sense Switches ($S form recommended) GSSW$SA FORTRAN Call: CALL READSW (isw); isw Integer to receive the console switch settings:G The following FORTRAN call allows a program to read the state of ao single switch:f CALL SWITCH (ibt,ist). ibt The switch to be tested (0 to 15) ist Test results where: 1 = switch onr 2 = switch off Macro Call: GSSW$S [err]S" err Error-routine address2 GET_TIME_PARAMETERS #GTIM 2 GTIMG Get Time Parameters GTIM$t FORTRAN Call: CALL GETTIM (ibfp[,ids])o( ibfp An eight-word integer array ids Directive statush Macro Call: GTIM$ buf, buf Address of an eight-word buffer Buffer format:s Word 0 Year (since 1900)  Word 1 Month (1-12) Word 2 Day (1-31) Word 3 Hour (0-23)  Word 4 Minute (0-59)e Word 5 Second (0-59) Word 6 Tick of second Word 7 Ticks per second2 GET_TASK_PARAMETERS #GTSK 2 GTSKG Get Task Parameters GTSK$  FORTRAN Call: CALL GETTSK (buf[,ids])D buf An 18-word integer array to receive the task parameters ids Directive status Macro Call: GTSK$ buf) buf Address of an 18-word buffer 2 INHIBIT_AST_RECOGNITIONr#IHARr2 IHARG Inhibit AST Recognition ($S form recommended) IHAR$Sk FORTRAN Call: CALL INASTR [(ids)]E ids Directive statusK Macro Call: IHAR$S [err] " err Error-routine address2 MAP_ADDRESS_WINDOWG Map Address Window MAP$i FORTRAN Call: CALL MAP (iwdb[,ids])H iwdb An eight-word integer array containing a Window Definition Block I ids Directive statusH Macro Call: MAP$ wdbf, wdb Window Definition Block addressG See HELP EXECUTIVE WDB for information on the Window Definition Block.K 2 MARK_TIME:#MRKT 2 MRKTG Mark Time MRKT$p FORTRAN Call:" CALL MARK (efn,tmg,tnt[,ids]) efn Event flag number$ tmg Time interval magnitude tnt Time interval unita ids Directive status G The ISA standard call for delaying a task for a specified timeP interval is also provided:  CALL WAIT (tmg,tnt,ids)$ tmg Time interval magnitude tnt Time interval unitA ids Directive statusi Macro Call: MRKT$ [efn],tmg,tnt[,ast] efn Event flag number$ tmg Time interval magnitude tnt Time interval unit $ ast AST entry-point address Legal tmg values for CALL WAIT: 0 for tickss 1 for milliseconds/ Legal tmg value for CALL MARK and macro calls:t 1 00 O F &for tickss Legal tmg values for all forms: 2 for seconds  3 for minutesu 4 for hoursT2 MAP_SUPERVISOR_DSPACE #MSDSD2 MSDSG Map Supervisor D-Space (RSX-11M-PLUS) MSDS$  FORTRAN Call: Not supported Macro Call: MSDS$ maskTE mask A seven-bit mask with one bit corresponding to each vC supervisor-mode D-space APR. If the bit is set, theD APR is mapped to supervisor-mode I-space. If the bitE is clear, the APR is mapped to user-mode D-space. A The seven bits are specified in bits 8 through 14 D of the mask word.2 MOVE_USER_SUPERVISOR_ID_SPACE #MVTSS2 MVTSH Move to/from User/Supervisor I/D-Space (RSX-11M-PLUS, Micro/RSX) MVTS$ FORTRAN Call: Not supported Macro Call: MVTS$ action,addr,val buff % action One of the following:A5 MV.TUI -- Move to user I-space 5 MV.TUD -- Move to user D-spaced; MV.TSI -- Move to supervisor I-spaceb; MV.TSD -- Move to supervisor D-spaceE7 MV.FUI -- Move from user I-spaceo7 MV.FUD -- Move from user D-spaceT= MV.FSI -- Move from supervisor I-space = MV.FSD -- Move from supervisor D-space 3 addr Address of the location in the task F buf Buffer to receive the value fetched (for the move-from operations) C val Value to be stored in the location (for the move-toM operations)- 2 PARSE_FCS #PFCS 2 PFCSG Parse FCS (RSX-11M-PLUS, Micro/RSX) PFCS$r FORTRAN Call:F CALL PRSFCS ([mod],[itbmsk],[lun],prbuf,prsz,rsbuf,rssz,[rslen],> [prsblk,prssz],[dfnbk,dfnsz],[rsmsk][,idsw])G mod Modifier for logical name table entries; specify onee+ of the following values: " LB.LOC = 1" LB.LOG = 2G Specifying one of these values indicates thatCG matches in the logical table are based on the exact G value. Not specifying a value indicates that therG system will look for the first matching logicals; block, regardless of the modifier value. G itbmsk Inhibit mask to prevent a logical table from beingsG searched. The following symbol bit definitions,=G when set, prevent a particular table from beingt searched:/ System (IN.SYS) = 10 / Group (IN.GRP) = 4i/ Session (IN.SES) = 20w/ Task (IN.TSK) = 1 % lun LUN to be assignedoG prbuf Array containing the primary file specificationeG buffer; prbuf and prsz must both be specified ortG both omitted; if omitted, a comma between theireG positions must be present unless no other parametersy follow G prsz Size (in bytes) of the primary file specificationoG buffer; prbuf and prsz must both be specified or G both omitted; if omitted, a comma between theiriG positions must be present unless no other parameters  followeG rsbuf Array containing the resulting file specificationn buffer G rssz Size (in bytes) of the resulting file specificationf buffer ? rslen Integer to receive the resulting string size 3 prsblk Array containing the parse blockd5 prssz Size (in bytes) of the parse blockoG dfnb00 TADATADATADATADATADATADATADATADATAk Array containing the default name block; dfnbk andoG dfnsz must both be specified or both omitted; ifyG omitted, a comma between their positions must bee< present unless no other parameters followG dfnsz Size of the default name block; dfnbk and dfnsz musttG both be specified or both omitted; if omitted, anG comma between their positions must be present unlessc- no other parameters followeG rsmsk Mask of fields in the resulting string to suppresspG before returning the string. The bits currently G defined are the same as those for the flag word inpG the parse block. The bits are FS$NOD, FS$DEV,nG FS$DIR, FS$NAM, FS$TYP, and FS$VER. If the bittG FS$NDF is set, the device is not defaulted to and G the LUN is not assigned. (FS$NDF has no meaning for ' the FSS$ directive.)l? idsw Integer to receive the Directive Status Wordh Macro Call:I PFCS$ mod,tbmsk,lun,prbuf,prsz,rsbuf,rssz,rslen,prsblk,prssz,dfnbk,a dfnsz,rsmsk G mod Modifier for logical name table entries; specify one + of the following values:I" LB.LOC = 1" LB.LOG = 2G Specifying one of these values indicates thateG matches in the logical table are based on the exact G value. Not specifying a value indicates that theFG system will look for the first matching logical ; block, regardless of the modifier value. G tbmsk Inhibit mask to prevent a logical table from beingsG searched. The following symbol bit definitions,=G when set, prevent a particular table from beingt searched:/ System (IN.SYS) = 10 / Group (IN.GRP) = 4i/ Session (IN.SES) = 20w/ Task (IN.TSK) = 1 % lun LUN to be assignedoC prbuf Address of the primary file specification buffertG prsz Size (in bytes) of the primary file specificationb buffer E rsbuf Address of the resulting file specification buffer G rssz Size (in bytes) of the resulting file specification  buffer G rslen Address of a word to receive the resulting string - prsblk Address of the parse block 5 prssz Size (in bytes) of the parse blockd4 dfnbk Address of the default name block1 dfnsz Size of the default name blockpG rsmsk Mask of fields in the resulting string to suppresshG before returning the string. The bits currentlyeG defined are the same as those for the flag word in G the parse block. The bits are FS$NOD, FS$DEV,G FS$DIR, FS$NAM, FS$TYP, and FS$VER. If the bit G FS$NDF is set, the device is not defaulted to andlG the LUN is not assigned. (FS$NDF has no meaning for ' the FSS$ directive.)l 2 PARSE_RMS #PRMSs2 PRMSH Parse RMS (RSX-11M-PLUS, Micro/RSX) PRMS$ FORTRAN Call:nF CALL PRSRMS ([mod],[itbmsk],[lun],prbuf,prsz,rsbuf,rssz,[rslen],= [prsblk,prssz],[dfbuf,dfsz],[rsmsk][,idsw]) G mod Modifier for logical name table entries; specify one + of the following values:t" LB.LOC = 1" LB.LOG = 2G Specifying one of these values indicates thatsG 00 O F & matches in the logical table are based on the exact G value. Not specifying a value indicates that therG system will look for the first matching logicalz; block, regardless of the modifier value. G itbmsk Inhibit mask to prevent a logical table from beingsG searched. The following symbol bit definitions,=G when set, prevent a particular table from beingt searched:/ System (IN.SYS) = 10 / Group (IN.GRP) = 4i/ Session (IN.SES) = 20w/ Task (IN.TSK) = 1 % lun LUN to be assignedoG prbuf Array containing the primary file specificationeG buffer; prbuf and prsz must both be specified ortG both omitted; if omitted, a comma between theireG positions must be present unless no other parametersy follow G prsz Size (in bytes) of the primary file specificationoG buffer; prbuf and prsz must both be specified or G both omitted; if omitted, a comma between theiriG positions must be present unless no other parameters  followeG rsbuf Array containing the resulting file specificationn buffer G rssz Size (in bytes) of the resulting file specificationf buffer ? rslen Integer to receive the resulting string size 3 prsblk Array containing the parse blockd5 prssz Size (in bytes) of the parse blockoG dfbuf Address of the default file specification buffer;oG dfbuf and dfsz must both be specified or bothyG omitted; if omitted, a comma between their positionseD must be present unless no other parameters followG dfsz Size of the default file specification buffer; dfbufvG and dfsz must both be specified or both omitted; ifaG omitted, a comma between their positions must be < present unless no other parameters followG rsmsk Mask of fields in the resulting string to suppressrG before returning the string. The bits currentlyiG defined are the same as those for the flag word inlG the parse block. The bits are FS$NOD, FS$DEV,fG FS$DIR, FS$NAM, FS$TYP, and FS$VER. If the bit;G FS$NDF is set, the device and directory are not = defaulted to and the LUN is not assigned.l4 (FS$NDF has no meaning for the FSS$ directive.)@ idsw Integer to receive the Directive Status Word. Macro Call:tI PRMS$ mod,tbmsk,lun,prbuf,prsz,rsbuf,rssz,rslen,prsblk,prssz,dfbuf,w dfsz,rsmskG mod Modifier for logical name table entries; specify one + of the following values:t" LB.LOC = 1" LB.LOG = 2G Specifying one of these values indicates that G matches in the logical table are based on the exactIG value. Not specifying a value indicates that theRG system will look for the first matching logical ; block, regardless of the modifier value. G tbmsk Inhibit mask to prevent a logical table from beingsG searched. The following symbol bit definitions,=G when set, prevent a particular table from beingt searched:/ System (IN.SYS) = 10 / Group (IN.GRP) = 4i/ Sess00TADATADATADATADATADATADATADATADATAion (IN.SES) = 20w/ Task (IN.TSK) = 1 % lun LUN to be assignedoC prbuf Address of the primary file specification buffertG prsz Size (in bytes) of the primary file specificationb buffer E rsbuf Address of the resulting file specification buffer G rssz Size (in bytes) of the resulting file specification  buffer G rslen Address of a word to receive the resulting string  size(- prsblk Address of the parse blocks5 prssz Size (in bytes) of the parse blocksC dfbuf Address of the default file specification bufferaG dfsz Size (in bytes) of the default file specificationA buffereG rsmsk Mask of fields in the resulting string to suppressnG before returning the string. The bits currentlyAG defined are the same as those for the flag word insG the parse block. The bits are FS$NOD, FS$DEV, G FS$DIR, FS$NAM, FS$TYP, and FS$VER. If the bithG FS$NDF is set, the device and directory are not)G defaulted to and the LUN is not assigned. (FS$NDF : has no meaning for the FSS$ directive.)2 QUEUE_IO_REQUEST#QIO2 QIO G Queue I/O Request QIO$d FORTRAN Call:5 CALL QIO (fnc,lun,[efn],[pri],[isb],[prl][,ids])s fuc I/O function code lun Logical unit number efn Event flag number= pri Priority (ignored, but parameter must be present  in call)A isb A two-word integer array to receive final I/O statusDF prl A six-word integer array containing device-dependentD parameters to be placed in parameter words 1 through 6D of the Directive Parameter Block (DPB). Fill in this8 array by using the GETADR routine.  ids Directive statusl Macro Call:/ QIO$ fnc,lun,[efn],[pri],[isb],[ast],[prl]r fnc I/O function code lun Logical unit number efn Event flag number? pri Priority (ignored, but Q.IOPR byte must be presente in DPB)( isb Address of I/O status block7 ast Address of AST service-routine entry pointo2 prl Parameter list of the form 2 QUEUE_IO_REQUEST_AND_WAITn#QIOW 2 QIOWG Queue I/O Request and Wait QIOW$  FORTRAN Call:5 CALL WTQIO (fnc,lun,efn,[pri],[isb],[prl][,ids]) fnc I/O function code lun Logical unit number efn Event flag number= pri Priority (ignored, but parameter must be presentb in call)sA isb A two-word integer array to receive final I/O statusE prl A six-word integer array containing device-dependentAD parameters to be placed in parameter words 1 through 6 of the DPBW ids Directive status Macro Call:0 QIOW$ fnc,lun,[efn],[pri],[isb],[ast][,prl] fnc I/O function code lun Logical unit number efn Event flag number? pri Priority (ignored, but Q.IOPR byte must be present in DPB)( isb Address of I/O status block7 ast Address of AST service-routine entry pointv2 prl Parameter list of the form 2 RECEIVE_DATA#RCVDu2 RCVDG Receive Data RCVD$: FORTRAN Call:# CALL RECEIV ([tsk],buf[,,ids]) < tsk Sender task name (if not specified, data may be$ received from any task)6 buf A 15-word integer array for received data ids Directive status Macro Call: RCVD$ [tsk],buf00$ O F &C tsk Sender task name (if not specified, data may bel$ received from any task)( buf Address of a 15-word buffer2 RECEIVE_DATA_OR_EXIT#RCVX 2 RCVX Receive Data or Exit RCVX$ FORTRAN Call:# CALL RECOEX ([tsk],buf[,,ids]) C tsk Sender task name (if not specified, data may bec$ received from any task)6 buf A 15-word integer array for received data ids Directive status Macro Call: RCVX$ [tsk],bufC tsk Sender task name (if not specified, data may bec$ received from any task)( buf Address of a 15-word buffer2 RECEIVE_DATA_OR_STOP#RCSTe2 RCSTG Receive Data or Stop RCST$  FORTRAN Call:$ CALL RCST ([rtname],ibuf[,ids])D rtname Sender task name (if not specified, data may be' received from any task)F ibuf Address of a 15-word buffer to receive the sender task name and data < ids Integer to receive the Directive Status Word Macro Call: RCST$ [tname],bufD tname Sender task name (if not specified, data may be' received from any task) D buf Address of a 15-word buffer to receive the sender" task name and data2 READ_ALL_EVENT_FLAGS#RDAF 2 RDAFG Read All Event Flags RDAF$o FORTRAN Call:= A FORTRAN task can read only one event flag. The call is:  CALL READEF (efn[,ids]) efn Event flag number  ids Directive statust C The Executive returns the status codes IS.SET (+02) and IS.CLR C (00) for FORTRAN calls in order to report event-flag polarity.f Macro Call: RDAF$ buf* buf Address of a four-word buffer Buffer format:! Word 0 Task local flags 1-16 " Word 1 Task local flags 17-32# Word 2 Task common flags 33-48R# Word 3 Task common flags 49-64 2 READ_EVENT_FLAG #RDEFE2 RDEF sG Read Event Flag RDEF$ FORTRAN Call: CALL READEF (iefn[,ids])S5 iefn Integer containing an event flag numberdC ids Integer variable to receive the Directive Status WordC The Executive returns the status codes IS.SET (+02) and IS.CLRWC (00) for FORTRAN calls in order to report event-flag polarity. Macro Call: RDEF$ efn efn Event flag number2 READ_EXTENDED_EVENT_FLAGSE#RDXFF2 RDXFE Read Extended Event Flags (RSX-11M-PLUS, Micro/RSX RDXF$ FORTRAN Call:= A FORTRAN task can read only one event flag. The call is:i CALL READEF (efn[,ids]) efn Event flag number e ids Directive status Macro Call: RDXF$ buf) buf Address of a six-word buffer  Buffer format:n! Word 0 Task local flags 1-16 " Word 1 Task local flags 17-32# Word 2 Task common flags 33-48 # Word 3 Task common flags 49-64 ) Word 4 Task Group Global flags 65-80L) Word 5 Task Group Global flags 81-96N------------------------'2 RECURSIVE_TRANSLATION_OF_LOGICAL_NAME #RLON2 RLONF Recursive Translation of Logical Name (RSX-11M-PLUS, Micro/RSX) RLON$ RLOG$9 (CALL RCTLON and RLON$ are the preferred calls to use ono@ RSX-11M-PLUS and Micro/RSX. CALL RCTLOG and RLOG$ are provided for compatibility with P/OS.) FORTRAN Call:? CALL RCTLON (mod,tbmsk,lns,lnssz,ens,ienssz,[rsize],[rtbmod],  [status],[idsw])? CALL RCTLOG (mod,tbmsk,lns,lnssz,ens,ienssz,[rsize],[rtbmod],- [status],[idsw])G mod Modifier of the logical name within a table;o1 restricted to LB.LOC or LB.LOG G tbmsk Inhibit mask to prevent a logical name table from1G being searched. The following symbol bitiG 00,TADATADATADATADATADATADATADATADATA definitions, when set, prevent a particular tablee' from being searched: 1 System (IN.SYS) = 10s1 Group (IN.GRP) = 4a1 Session (IN.SES) = 20e1 User (IN.USR) = 1 G If no mask is specified, the tables are searched inpF the following order: user, session, group, system.E lns Character array containing the logical name stringh= lnssz Size (in bytes) of the logical name stringeF ens Character array buffer to contain the returned% equivalence string G ienssz Size (in bytes) of the data area for the returned * equivalence name stringG rsize Word to receive the size of the returned equivalence  namegG rtbmod Word to receive, in the lower byte, the table numberyG and, in the higher byte, the modifier value of the)' located logical namen; status Word to receive the logical status word: < LS.TRM = 1 Terminal status bit: LS.PRV = 2 Privileged status? idsw Integer to receive the Directive Status Worde Macro Call:C RLON$ mod,tbmsk,lns,lnssz,ens,enssz,[rsize],[rtbmod],[status]WC RLOG$ mod,tbmsk,lns,lnssz,ens,enssz,[rsize],[rtbmod],[status] D mod Modifier of the logical name within a table;1 restricted to LB.LOC or LB.LOG G tbmsk Inhibit mask to prevent a table from being searched.1G The following symbol bit definitions, when set,eB prevent a particular table from being searched:1 System (IN.SYS) = 10n1 Group (IN.GRP) = 4 1 Session (IN.SES) = 20o1 User (IN.USR) = 1eG If no mask is specified, the tables are searched inrF the following order: user, session, group, system.C lns Character array containg the logical name stringn= lnssz Size (in bytes) of the logical name stringmG ens Character array to contain the returned equivalence  string G enssz Size (in bytes) of the data area for the returned * equivalence name stringG rsize Word to receive the size of the returned equivalenceiG name; this size is always the actual size of the.G equivalence name regardless of the string size' specified with ensszhG rtbmod Word to receive, in the lower byte, the table number G and, in the higher byte, the modifier value of theS' located logical name 6 status Word to receive the logical status:< LS.TRM = 1 Terminal status bit: LS.PRV = 2 Privileged status------------------------2 REGION_DEFINITION_BLOCK #RDB2 RDBe Region Definition Block RDB Format  Word 0 R.GID -- Region ID  Word 1 R.GSIZ -- Region size* Words 2-3 R.NAM -- Region name (Radix-50)< Words 4-5 R.GPAR -- Region's main partition name (Radix-50)% Word 6 R.GSTS -- Region status wordc) Word 7 R.GPRO -- Region protection wordi R.GSTS bit definitions: 0 RS.CRR=100000 ;Region was created successfully= RS.UNM=40000 ;One or more windows were unmapped on a detach3 RS.MDL=200 ;Mark region for delete on last detach = RS.NDL=100 ;Created region is not to be marked for deletionr' ;on last detach % RS.ATT=40 ;Attach to created regioni- RS.NEX=20 ;Created region is not extendable', RS.DEL=10 ;Delete access desired on attach+ RS.EXT=4 ;Extend access desired on a004 O F &ttach-* RS.WRT=2 ;Write access desired on attach) RS.RED=1 ;Read access desired on attach 2 REMOVE_AFFINITY#RMAF=2 RMAF rJ Remove Affinity (RSX-11M-PLUS multiprocessor; $S form recommended) RMAF$S FORTRAN Call: CALL RMAF [(ids)]i8 ids Integer to receive the Directive Status Word Macro Call: RMAF$S (2 REQUEST_AND_PASS_OFFSPRING_INFORMATION#RPOIg2 RPOIG Request and Pass Offspring Information RPOI$; FORTRAN Call:I CALL RPOI (tname,[iugc],[iumc],[iparen],[ibuf],[ibfl],[isc],[idnam],a. [iunit],[itask],[ocbad][,ids])H tname Name of an array containing the actual name in Radix-50F of the task to be requested and optionally chained toD iugc Name of an integer containing the group code number@ for the UIC of the requested target chain taskE iumc Name of an integer containing the member code number ? for the UIC of the requested target chain task,J iparen Name of an array (or I*4 integer) containing the Radix-50C name of the parent task. (This is returned in thea> information buffer of the GTCMCI subroutine.)N ibuf Name of an array containing the command line text for the chained taskfB ibfl Name of an integer containing the number of bytes1 in the command in the ibuf arrayF isc Flag byte controlling the actions of this directive* request when executed D idnam Name of an integer containing the ASCII name of theM requested task's TI: (must be the name of a physical device)uE iunit Name of an integer containing the unit number of the % requested task's TI:dB itask Name of an array containing the Radix-50 name the/ requested task is to run underuJ On Micro/RSX systems, any task may specify a new name forH the requested task as long as the requested task is not a CLI task.F The requested task (specified in the tname parameter)8 must be installed in the ...tsk format.@ ocbad Name of an integer containing the internal poolI address of the parent OCB. This value may be obtainedeI only in the information buffer of the GTCMCI subroutine,OF which only a CLI can issue; therefore, only a CLI can' specify this argument.e= ids Integer to receive the Directive Status Word Macro Call:G RPOI$ tname,,,,[ugc],[umc],[parent],[bufadr],[buflen],[sc],[dnam],i [unit],[task],[ocbad]. tname Name of task to be chained to= ugc Group code for the UIC of the requested taska> umc Member code for the UIC of the requested taskG parent Name of issuing task's parent task whose connection ise to be passed.D bufadr Address of buffer to be given to the requested taskC buflen Length of buffer to be given to the requested tasku sc Flag bits:[@ RP.OEX -- (200) Force issuing task to exitL RP.OAL -- (1) Pass all connections (default is none)? RP.ONX -- (2) Pass the first connection in the queue,h if there is onepJ dnam ASCII device name for TI: (must be the name of a physical device)* unit Unit number of task's TI:4 task Radix-50 name task is to be started9 On RSX-11M systems, this argument is valid only if thei issuing task is a CLI task. 7 On RSX-11M-PLUS and Micro/RSX systems, any task may 8 specify a new name for the requested task as long as ( the requested task is not a CLI task.8 For all systems the requested task (specified in the ; tname parameter00<TADATADATADATADATADATADATADATADATA) must be installed in the ...tsk format.h3 ocbad Address of OCB to pass (CLIs only)i2 REQUEST_TASK#RQST2 RQSTG Request Task RQST$i FORTRAN Call:" CALL REQUES (tsk,[opt][,ids]) tsk Task name& opt A four-word integer arrayB opt(1) First half of partition name (ignored, but( must be present)C opt(2) Second half of partition name (ignored, but ( must be present)? opt(3) Priority (ignored, but must be present)_0 opt(4) User Identification Code ids Directive status Macro Call:$ RQST$ tsk,[prt],[pri][,ugc,umc] tsk Task name: prt Partition name (ignored, but must be present)4 pri Priority (ignored, but must be present) ugc UIC group codet umc UIC member code2 RECEIVE_BY_REFERENCE#RREFn2 RREFG Receive By Reference RREF$t FORTRAN Call:" CALL RREF (iwdb,[isrb][,ids])J iwdb An eight-word integer array containing a Window Definition Block RF isrb A 10-word integer array to be used as the receiveF buffer. If the call omits this parameter, the contents! of iwdb(8) are unchanged.  ids Directive statusu Macro Call: RREF$ wdb. wdb Window Definition Block addressG See HELP EXECUTIVE WDB for information on the Window Definition Block. 2 RECEIVE_BY_REFERENCE_OR_STOP#RRST 2 RRSTG Receive By Reference or Stop (RSX-11M-PLUS, Micro/RSX) RRST$  FORTRAN Call:# CALL RRST (iwdb,[isrb][,ids]) G iwdb An eight-word integer array containing a Windowp! Definition BlockiG isrb A 10-word integer array to be used as the receiveG buffer. If the call omits this parameter, thee3 contents of iwdb(8) are unchanged.i! ids Directive statusN Macro Call: RRST$ wdb0 wdb Window Definition Block address 2 RESUME_TASKF#RSUMC2 RSUMG Resume Task RSUM$n FORTRAN Call: CALL RESUME (tsk[,ids]) tsk Task name ids Directive statusg Macro Call: RSUM$ tsk tsk Task name 2 RUN_TASKG Run Task RUN$d FORTRAN Call:3 CALL RUN (tsk,[opt],smg,snt,[rmg],[rnt][,ids]): tsk Task name' opt A four-word integer array:eC opt(1) First half of partition name (ignored, but ( must be present)D opt(2) Second half of partition name (ignored, but( must be present)? opt(3) Priority (ignored, but must be present)0 opt(4) User Identification Code% smg Schedule delta magnitude7 snt Schedule delta unit (either 1, 2, 3, or 4) * rmg Reschedule interval magnitude% rnt Reschedule interval unit  ids Directive statusg> The ISA standard call for initiating a task is also provided:# CALL START (tsk,smg,snt[,ids])n tsk Task name% smg Schedule delta magnitude : snt Schedule delta unit (either 0, 1, 2, 3, or 4) ids Directive statusI Macro Call:7 RUN$ tsk,[prt],[pri],[ugc],[umc],smg,snt[,rmg,rnt]  tsk Task name: prt Partition name (ignored, but must be present)4 pri Priority (ignored, but must be present) ugc UIC group codeI umc UIC member code% smg Schedule delta magnitudeR7 snt Schedule delta unit (either 1, 2, 3, or 4)s* rmg Reschedule interval magnitude% rnt Reschedule interval unito2 SPECIFY_COMMAN00D O F &D_ARRIVAL_ASTa#SCAA2 SCAAG Specify Command Arrival AST SCAA$t FORTRAN Call: Not supported Macro Call: SCAA$ [ast]E ast AST service-routine entry point. Omitting this parameterU? disables command arrival ASTs for the issuing taskh0 until the directive is respecified.2 SUPERVISOR_CALL,#SCAL42 SCAL rH Supervisor Call (RSX-11M-PLUS; $S form recommended) SCAL$S FORTRAN Call: Not supported Macro Call: SCAL$S saddr,caddr[,err] = saddr Address of the called supervisor-mode routineND caddr Address of the completion routine for return to the caller( err Address of error routine NOTE a7 We strongly suggest using the Task Builder to resolve i9 references to supervisor-mode routines rather than using9 the SCAL$S directive explicitly. Doing so allows you to > take advantage of the CSM (Call Supervisor Mode) instruction,' which is not used by the Task Builder. 2 SET_COMMAND_LINE_INTERPRETER#SCLI 2 SCLIF Set Command Line Interpreter SCLI$ FORTRAN Call:( CALL SETCLI (icli,idev,iunit[,ids])C icli Name of a two-word array element containing the nameg5 of the CLI to which the terminal is to be setoB idev Name of an integer containing the ASCII name of the2 terminal to be set (default is TI:)C iunit Name of an integer containing the unit number of thei terminalI ids Directive statust Macro Call: SCLI$ cli,[dev],[unit] A cli Name of the CLI to which the terminal is to be setuD dev ASCII name of the terminal to be set (default is TI:)& unit Unit number of terminal 2 SEND_DATAo#SDATo2 SDATG Send Data SDAT$  FORTRAN Call:$ CALL SEND (tsk,buf,[efn][,ids]) tsk Task name7 buf A 13-word integer array of data to be sent  efn Event flag number ids Directive statuse Macro Call: SDAT$ tsk,buf[,efn] tsk Task name- buf Address of a 13-word data bufferi efn Event flag number2 SET_DEFAULT_DIRECTORYo#SDIRn2 SDIRD Set Default Directory (RSX-11M-PLUS, Micro/RSX) SDIR$ FORTRAN Call:+ CALL SETDDS (mod,iens,ienssz,[idsw])DG mod Modifier for the SDIR$ directive; specify one of thei# following values: 3 0 = Modify task defaults7 SD.LOG = Modify terminal default 7 SD.BYE = Delete terminal default D SD.TI = Set task default to terminal defaultG iens Character array containing the default directory  stringA ienssz Size (in bytes) of the default directory string > idsw Integer to receive the Directive Status Word Macro Call: {mod } ? SDIR$ {,ens,enssz } (must choose one of these options)S {mod,ens,enssz}lG mod Modifier for the SDIR$ directive; specify one of the " following values:2 0 = Modify task default6 SD.LOG = Modify terminal default6 SD.BYE = Delete terminal defaultC SD.TI = Set task default to terminal defaultDG ens Buffer address of the default directory string; if not G specified, the default directory string is deletedmG (ens and enssz must be selected to modify the default)iG enssz Size (in bytes) of the default directory string (enssz @ and ens must be selected to modify the default)2 SDRCNn#SDRCu2 SEND_REQUEST_AND_CONNECT#SDRCD2 SDRCG Send, Request, and Connect 00LTADATADATADATADATADATADATADATADATA SDRC$a FORTRAN Call:? CALL SDRC (rtname,ibuf,[iefn],[iast],[iesb],[iparm][,ids]) @ CALL SDRCN (rtname,ibuf,[iefn],[iast],[iesb],[iparm][,ids])F rtname Target task name of the offspring task to be connectedS/ ibuf Name of a 13-word send buffersF iefn Event flag to be set when the offspring task exits! or emits statusNF iast Name of an AST routine to be called when theC Offspring task exits or emits status (ignored for, CALL SDRCN)J iesb Name of an eight-word status block to be written when: the Offspring task exits or emits statusF iparm Name of a word to receive the status block address$ when an AST occurs> ids Integer to receive the Directive Status Word Macro Call:' SDRC$ tname,buf,[efn],[east],[esb]aF tname Target task name of the offspring task to be connected1 buf Address of a 13-word send buffer J efn The event flag to be cleared on issuance and set when the5 offspring task exits or emits statusmF east Address of an AST routine to be called when the5 offspring task exits or emits statusrK esb Address of an eight-word status block to be written when[9 the offspring task exits or emits statuse42 SEND_DATA_REQUEST_AND_PASS_OFFSPRING_CONTROL_BLOCK#SDRP 2 SDRPG Send Data Request and Pass Offspring Control Block SDRP$o FORTRAN Call:9 CALL SDRP (task,ibuf,[ibfl],[iefn],[iflag],[iparen],  [iocbad][,ids]) A task Name of an array (REAL, INTEGER, I*4) containing 4 the Radix-50 name of the target taskC ibuf Name of an integer array containing data to be sent A ibfl Name of an integer containing the number of wordsTH (integers) in the array to be sent. On RSX-11M systems,7 this argument must always be 13 or must be defaulted.o ( On RSX-11M-PLUS and Micro/RSX systems,B this argument may be in the range of 1 to 255(10). 2 On any system, if this argument is not specified' a default value of 13(10) is assumed.e? iefn Name of an integer containing the number of the < event flag to be set when this directive is% executed successfully G iflag Name of an integer containing flag bits controlling the - execution of this directive I iparen Name of array containing the Radix-50 name of the parentiJ task whose connection should be passed to the target task.: The name of the parent task was returned in the informa-( tion buffer of the GTCMCI subroutine.I iocbad Name of an integer containing the pool address of the OCB C to pass. Only CLI tasks may specify this parameter. 6 This value was returned in the information buffer of the GTCMCI subroutine.B ids Name of an integer to receive the contents of the % Directive Status Word Macro Call:= SDRP$ task,bufadr,[buflen],[efn],[flag],[parent],[ocbad]e- task Name of task to be chained toC bufadr Address of buffer to be given to the requested taskiB buflen Length of buffer to be given to the requested task! efn Event flag numberrE flag Flag bits controlling the execution of this directiveTF parent Name of issuing task's parent task whose connection isB to be passed. If not specified, all connections or7 no connections are passed, depending on the flag bit.,2 ocbad Address of OCB to pass (CLIs only)2 SET_EVENT_FLAG#SETFr2 SETFG Set Event Flag SETF$f FORTR00T O F &AN Call: CALL SETEF (efn[,ids])n efn Event flag number ids Directive statush Macro Call: SETF$ efn efn Event flag number02 SPECIFY_FLOATING_POINT_PROCESSOR_EXCEPTION_AST#SFPA 2 SFPAG Specify Floating Point Processor Exception AST SFPA$i FORTRAN Call: Not supported Macro Call: SFPA$ [ast]4 ast AST service-routine entry-point address2 SEND_MESSAGE#SMSG 2 SMSGG Send Message SMSG$  FORTRAN Call:/ CALL SMSG (itgt,ibuf,ibufl,iprm,iprml,ids)c> itgt Name of an integer containing the target object+ (currently, only SM.SER is defined)TA ibuf Name of an integer array containing the data to be 8 inserted into the formatted data packet> ibufl Name of an integer containing the length of the ibuf arraysA iprm Name of an integer array containing any additional  parametersE iprml Name of an integer containing the number of parametersp in the iprm arraygC ids Name of an optional integer to receive the directivey status Macro Call:$ SMSG$ tgt,buf,len,( tgt Target identifier9 buf Address of an optional data buffer B len Length in bytes of the optional data buffer= pri,...,prn Target-specific (for the Error Logger)o& parameter list:8 SMSG$ SM.SER,buf,len,3 typ Error Logger packet type code 6 sub Error Logger packet subtype code7 lun Logical unit number of the device' msk Control mask word2 SEND_NEXT_COMMANDA#SNXCo2 SNXC K Send Next Command (RSX-11M-PLUS, Micro/RSX) SNXC$u FORTRAN Call:% CALL SNXC ([dnam][,iunit][,ids])o; dnam Device name (ASCII); if not specified, TI: is used A iunit Unit number of the terminal from which the command is to be sent 5 ids Integer to receive the Directive Status Wordr Macro call: SNXC$ [dnam][,unum]; dnam Device name (ASCII); if not specified, TI: is usedoA unum Unit number of the terminal from which the command is to be sentd2 SPECIFY_PARITY_ERROR_AST#SPEA 2 SPEAG Specify Parity Error AST (RSX-11M-PLUS, Micro/RSX) SPEA$ FORTRAN Call: Not supported Macro Call: SPEA$ [ast]4 ast AST service-routine entry-point address 2 SUSPEND#SPND 2 SPNDG Suspend ($S form recommended) SPND$Sn FORTRAN Call: CALL SUSPND [(ids)] ids Directive statusu Macro Call: SPND$S [err]h" err Error-routine address2 SPECIFY_POWER_RECOVERY_AST#SPRAP2 SPRAG Specify Power Recovery AST SPRA$F FORTRAN Call: To establish an AST: EXTERNAL sub[ CALL PWRUP (sub)TF sub Name of a subroutine to be executed upon powerD recovery. The PWRUP subroutine will effect a+ CALL sub (no arguments)F The subroutine is called as a result of a power? recovery AST, and therefore, may be controlledT; at critical points by using the DSASTR (or 3 INASTR) and ENASTR subroutine calls.o To remove an AST: CALL PWRUP Macro Call: SPRA$ [ast]4 ast AST service-routine entry-point address2 SPAWNN#SPWNr2 SPWNG Spawn SPWN$s FORTRAN Call:C CALL SPAWN (rtname,[iugc],[iumc],[iefn],[iast],[iesb],[iparm],w7 [icmlin],[icmlen],[iunit],[dnam][,ids])cD CALL SPAWNN (rtname,[iugc],[iumc],[iefn],[iast],[iesb],[iparm],8 [icmlin00\TADATADATADATADATADATADATADATADATA],[icmlen],[iunit],[dnam][,ids])C rtname Name (Radix-50) of the offspring task to be spawned[C iugc Group code number for the UIC of the offspring taskND iumc Member code number for the UIC of the offspring taskD iefn Event flag to be set when the offspring task exits or emits status]D iast Name of an AST routine to be called when theB offspring task exits or emits status (ignored for  CALL SPAWNN)mH iesb Name of an eight-word status block to be written when8 the offspring task exits or emits statusD iparm Name of a word to receive the status block address# when the AST occursD icmlin Name of a command line to be queued for the offspring task> icmlen Length of the command line; maximum length is > 79(10) for RSX-11M and 255(10) for RSX-11M-PLUS and for Micro/RSX J iunit Unit number of terminal to be used as the TI: for the off-D spring task. On RSX-11M-PLUS and Micro/RSX systems,' if the optional dnam parametereD is not specified, this parameter must be the unitD number of a virtual terminal created by the issuingC task; if a value of 0 is specified, the TI: of theoH issuing task is propagated. A task must be a privileged5 task or a CLI task in order to specify a TI: other  than the parent task's TI:. D dnam Device name mnemonic (must be the name of a physical2 device). On RSX-11M-PLUS and Micro/RSX systems,/ if not specified, the virtual terminald$ specified by iunit is used as TI:.< ids Integer to receive the Directive Status Word Macro Call:C SPWN$ tname,,,[ugc],[umc],[efn],[east],[esb],[cmdlin],[cmdlen]  ,[unum],[dnam]tC tname Name (Radix-50) of the offspring task to be spawnediC ugc Group code number for the UIC of the offspring taskiD umc Member code number for the UIC of the offspring taskD efn The event flag to be cleared on issuance and set= when the offspring task exits or emits status D east Address of an AST routine to be called when the4 offspring task exits or emits statusH esb Address of an eight-word status block to be written when8 the offspring task exits or emits statusD cmdlin Address of a command line to be queued for the offspring taskD cmdlen Length of the command line; maximum length is 79(10)7 for RSX-11M systems, and 255(10) for RSX-11M-PLUS andt Micro/RSX systemsJ unum Unit number of terminal to be used as the TI: for the off-< spring task. If the optional dnam parameterD is not specified, this parameter must be the unitD number of a virtual terminal created by the issuingD task. If a value of 0 is specified, the TI: of theH issuing task is propagated. A task must be a privileged9 task or a CLI task in order to specify a TI: other thanU the parent task's TI:.D dnam Device name mnemonic (must be the name of a physical< device). If not specified, the virtual terminal specified by unum is used as TI:.s2 SPECIFY_RECEIVE_DATA_AST#SRDAb2 SRDAG Specify Receive Data AST SRDA$g FORTRAN Call:E Neither the FORTRAN language nor the ISA standard permits directuF linking to system-trapping mechanisms. Therefore, this directive' is not available to FORTRAN tasks. Macro Call: SRDA$ [ast]8 ast AST service-routine entry-point address (0)2 SPECIFY_REQUESTED_EXIT_AST#SREAt2 SREX#SREAe2 SREAFSpecify Requested Exit AST SREA$F 00d O F & SREX$ FORTRAN Call: CALL SREA (ast[,ids])4 ast Name of the externally declared AST routine> ids Name of an optional integer to receive the Directive Status Worda/ CALL SREX (ast,ipblk,ipblkl,[dummy][,ids])$4 ast Name of the externally declared AST routine@ ipblk Name of an integer array to receive the trap-dependent parametersA ipblkl Number of parameters to be returned into the ipblk array dummy Reserved for future useE ids Name of an optional integer to receive the Directive Status i Word Macro Call: SREA$ [ast] SREX$ [ast][,dummy]7 ast AST service-routine entry-point address & dummy Reserved for future use2 SEND_BY_REFERENCE#SREF 2 SREFG Send By Reference SREF$a FORTRAN Call:, CALL SREF (tsk,[efn],iwdb,[isrb][,ids])C tsk A single-precision, floating-point variable containing 7 the name of the receiving task in Radix-50 format  efn Event flag numberH iwdb An eight-word integer array containing a Window Definition Block rH isrb An eight-word integer array containing additionalE information (if specified, the address if isrb is placed = in iwdb(8); if isrb is omitted, the contents of iwdb(8)C remain unchanged)[ ids Directive statusn Macro Call: SREF$ task,wdb[,efn]n& task Name of the receiver task, wdb Window Definition Block address efn Event flag number"2 SPECIFY_RECEIVE_BY_REFERENCE_AST#SRRAi2 SRRAG Specify Receive-By-Reference AST SRRA$a FORTRAN Call:E Neither the FORTRAN language nor the ISA standard permits directF linking to system-trapping mechanisms. Therefore, this directive' is not available to FORTRAN tasks.e Macro Call: SRRA$ [ast]4 ast AST service-routine entry-point address2 SET_AFFINITY#STAFo2 STAF BH Set Affinity (RSX-11M-PLUS multiprocessor) STAF$ FORTRAN Call: CALL STAF (iaff[,ids])e iaff Affinity mask word 9 ids Integer to receive the Directive Status Wordl Macro Call: STAF$ [cp!ub!ub...]& cp CPU selected (A through D). ub UNIBUS runs selected (E through T)2 SET_SYSTEM_TIMEe#STIMc2 STIMG Set System Time STIM$e FORTRAN Call:& CALL SETTIM (ibufn[,ibufp][,ids])I ibufn An eight-word integer array--new time specification buffer@ ibufp An eight-word integer array--previous time buffer ids Directive status Macro Call: STIM$ bufn,[bufp] F bufn Address of the new eight-word time-specification bufferJ bufp Address of eight-word buffer to receive the previous system time parameters' See HELP EXECUTIVE GET_TIME_PARAMETERS2 STOPG Stop ($S form recommended) STOP$S- FORTRAN Call: CALL STOP ([ids])9 ids Integer to receive the Directive Status Words Macro Call: STOP$Sr$2 STOP_FOR_LOGICAL_OR_OF_EVENT_FLAGS#STLOu2 STLOG Stop for Logical OR of Event Flags STLO$f FORTRAN Call:$ CALL STLOR (ef1,ef2,ef3,...efn)* CALL STLORS (idsw,ef1,ef2,ef3,...efn), ef1...efn List of event flag numbers> idsw Integer to receive the Directive Status Word Macro Call: STLO$ grp, msk) grp Desired group of event flagsg msk A 16-bit mask wordW2 STOP_FOR_SINGLE_EVENT_FLAG#STSE2 STSEG Stop for Single Event Flag STSE$v FORTRAN Call: CALL STOPFR (iefn[,ids])F iefn Event flag number9 ids Integer to receive the Directive Status Word) Macro Call: 00lTADATADATADATADATADATADATADATADATA STSE$ efn efn Event flag number,2 SPECIFY_SST_VECTOR_TABLE_FOR_DEBUGGING_AID#SVDB2 SVDBG Specify SST Vector Table for Debugging Aid SVDB$g FORTRAN Call:E Neither the FORTRAN language nor the ISA standard permits direct F linking to system-trapping mechanisms. Therefore, this directive' is not available to FORTRAN tasks.d Macro Call: SVDB$ [adr][,len], adr Address of the SST vector tableJ len Length of (that is, number of entries in) table in words#2 SPECIFY_SST_VECTOR_TABLE_FOR_TASKG#SVTKD2 SVTKG Specify SST Vector Table for Task SVTK$  FORTRAN Call:E Neither the FORTRAN language nor the ISA standard permits directsF linking to system-trapping mechanisms. Therefore, this directive' is not available to FORTRAN tasks.N Macro Call: SVTK$ [adr][,len], adr Address of the SST vector tableJ len Length of (that is, number of entries in) table in words2 SWITCH_STATE#SWST_2 SWST  Switch State SWST$i FORTRAN Call: Not supported Macro Call: SWST$ base,addrB base The base virtual address within the task for mapping) the subroutine through APR5eH addr Virtual address of the subroutine to be executed in system$ state by the directive!2 TEST_FOR_SPECIFIED_TASK_FEATURE #TFEAt2 TFEAG Test for Specified Task Feature (RSX-11M-PLUS, Micro/RSX) TFEA$w FORTRAN Call: CALL TFEA (isym,idsw)S5 isym = Symbol for the specified task features< idsw = Integer to receive the Directive Status Word Macro Call: TFEA$ sym5 sym = Symbol for the specified task featureA2 TRANSLAGE_LOGICAL_NAME#TLONs2 TLONG Translate Logical Name (RSX-11M-PLUS, Micro/RSX) TLON$e TLOG$ FORTRAN Calls:E? CALL TRALON (mod,tbmsk,lns,lnssz,ens,ienssz,[rsize],[rtbmod],S [status][,idsw])? CALL TRALOG (mod,tbmsk,lns,lnssz,ens,ienssz,[rsize],[rtbmod],e [status][,idsw])G mod Modifier of the logical name within a table; 1 restricted to LB.LOC or LB.LOGeG tbmsk Inhibit mask to prevent a logical name table fromeG being searched. The following symbol bit G definitions, when set, prevent a particular tables' from being searched: 1 System (IN.SYS) = 10z1 Group (IN.GRP) = 4u1 Session (IN.SES) = 20e1 User (IN.USR) = 1 G If no mask is specified, the tables are searched inpF the following order: user, session, group, system.E lns Character array containing the logical name stringh= lnssz Size (in bytes) of the logical name stringeF ens Character array buffer to contain the returned% equivalence string G ienssz Size (in bytes) of the data area for the returned * equivalence name stringG rsize Word to receive the size of the returned equivalence  namegG rtbmod Word to receive, in the lower byte, the table numberyG and, in the higher byte, the modifier value of the)' located logical namen; status Word to receive the logical status word: < LS.TRM = 1 Terminal status bit: LS.PRV = 2 Privileged status? idsw Integer to receive the Directive Status Worde Macro Calls:rC TLOG$ mod,tbmsk,lns,lnssz,ens,enssz,[rsize],[rtbmod],[status]rC TLON$ mod,tbmsk,lns,lnssz,ens,enssz,[rsize],[rtbmod],[status]aD mod Modifier of the logical name wit00t O F &hin a table;1 restricted to LB.LOC or LB.LOGoG tbmsk Inhibit mask to prevent a table from being searched. G The following symbol bit definitions, when set,eB prevent a particular table from being searched:1 System (IN.SYS) = 10n1 Group (IN.GRP) = 4 1 Session (IN.SES) = 20o1 User (IN.USR) = 1eG If no mask is specified, the tables are searched inrF the following order: user, session, group, system.C lns Character array containg the logical name stringn= lnssz Size (in bytes) of the logical name stringmG ens Character array to contain the returned equivalence  string G enssz Size (in bytes) of the data area for the returned * equivalence name stringG rsize Word to receive the size of the returned equivalenceiG name; this size is always the actual size of the.G equivalence name regardless of the string size' specified with ensszhG rtbmod Word to receive, in the lower byte, the table number G and, in the higher byte, the modifier value of theS' located logical name 6 status Word to receive the logical status:< LS.TRM = 1 Terminal status bit: LS.PRV = 2 Privileged status!2 UNLOCK_GROUP_GLOBAL_EVENT_FLAGS #ULGFu2 ULGFG Unlock Group Global Event Flags ($S form recommended) ULGF$Sw FORTRAN Call: CALL ULGF ([ids]) ids Directive statuse Macro Call: ULGF$S [err] " err Error-routine address2 UNMAP_ADDRESS_WINDOWF Unmap Address Window UMAP$ FORTRAN Call: CALL UNMAP (iwdb[,ids])J iwdb An eight-word integer array containing a Window Definition Block G ids Directive status Macro Call: UMAP$ wdb. wdb Window Definition Block addressG See HELP EXECUTIVE WDB for information on the Window Definition Block.o 2 UNSTOP_TASKG#USTPr2 USTPG Unstop Task USTP$s FORTRAN Call: CALL USTP (rtname[,ids])UC rtname Name of the task to be unstopped (if not specified, 5 CALL USTP will use the issuing task as its default)i? ids Integer to receive directive status information Macro Call: USTP$ [tname]I tname Name of the task to be unstopped (if not specified, USTP$o+ will use the issuing task as its default) 2 VARIABLE_RECEIVE_DATAP#VRCDo2 VRCD J Variable Receive Data (RSX-11M-PLUS, Micro/RSX) VRCD$ FORTRAN Call:+ CALL VRCD ([task],bufadr,buflen,[ids])k task Sender task nameH bufadr Address of the buffer to receive the sender task name; and data (must be word-aligned (INTEGER*2))l$ buflen Length of the buffer< ids Integer to receive the Directive Status Word Macro Call:& VRCD$ [task],bufadr[,buflen],[ti] task Sender task name bufadr Buffer address$ buflen Buffer size in words6 ti TI: indicator (ignored on RSX systems)5 See also HELP EXECUTIVE VRCS and HELP EXECUTIVE VRCXf2 VARIABLE_RECEIVE_DATA_OR_STOPi#VRCS 2 VRCSG Variable Receive Data or Stop (RSX-11M-PLUS, Micro/RSX) VRCS$ FORTRAN Call:- CALL VRCS ([task],bufadr,[buflen][,ids])r task Sender task nameH buf Address of the buffer to receive the sender task name and data$ buflen Length of the buffer< ids Integer to receive the Directive Status Word Macro Call:00|TADATADATADATADATADATADATADATADATA& VRCS$ [task],bufadr[,buflen],[ti] task Sender task name bufadr Buffer address$ buflen Buffer size in words6 ti TI: indicator (ignored on RSX systems)2 VARIABLE_RECEIVE_DATA_OR_EXIT]#VRCXr2 VRCX (RSX-11M-PLUS, Micro/RSX) G Variable Receive Data or Exit VRCX$  FORTRAN Call:- CALL VRCX ([task],bufadr,[buflen][,ids]) task Sender task nameH bufadr Address of the buffer to receive the sender task name and data$ buflen Length of the buffer< ids Integer to receive the Directive Status Word Macro Call:& VRCX$ [task],bufadr[,buflen],[ti] task Sender task name bufadr Buffer address$ buflen Buffer size in words6 ti TI: indicator (ignored on RSX systems)2 VARIABLE_SEND_DATA#VSDAf2 VSDA I Variable Send Data (RSX-11M-PLUS, Micro/RSX) VSDA$  FORTRAN Call:1 CALL VSDA (task,bufadr,[buflen],[efn][,ids])b" task Receiver task nameH bufadr Address of the buffer to receive the sender task name; and data (must be word-aligned (INTEGER*2))r$ buflen Length of the buffer! efn Event flag numbern< ids Integer to receive the Directive Status Word Macro Call:3 VSDA$ [task],bufadr,[buflen][,efn],[spri],[ti]R" task Receiver task name bufadr Buffer address$ buflen Buffer size in words! efn Event flag numberr6 spri Send priority (ignored on RSX systems)6 ti TI: indicator (ignored on RSX systems)2 VSRCNa#VSRC(#2 VARIABLE_SEND_REQUEST_AND_CONNECTh#VSRC 2 VSRCH Variable Send, Request, and Connect (RSX-11M-PLUS, Micro/RSX) VSRC$ FORTRAN Call:J CALL VSRC (rtname,ibuf,[ibuflen],[iefn],[iast],[iesb],[iparm][,ids])J CALL VSRCN (rtname,ibuf,[ibuflen],[iefn],[iast],[iesb],[iparm][,ids])F rtname Target task name of the offspring task to be connectedr% ibuf Name of send buffer & ibuflen Length of the bufferF iefn Event flag to be set when the offspring task exits! or emits statusCF iast Name of an AST routine to be called when theC offspring task exits or emits status (ignored for  CALL VSRCN)mJ iesb Name of an eight-word status block to be written when: the offspring task exits or emits statusF iparm Name of a word to receive the status block address$ when an AST occurs> ids Integer to receive the Directive Status Word Macro Call:0 VSRC$ tname,buf[,buflen],[efn],[east],[esb]F tname Target task name of the offspring task to be connectede* buf Address of a send buffer& buflen Length of the bufferG efn The event flag to be cleared on issuance and set when: the offspring task exits or emits statusF east Address of an AST routine to be called when the6 offspring task exits or emits statusK esb Address of an eight-word status block to be written wheng: the offspring task exits or emits status2 WAIT_FOR_SIGNIFICANT_EVENT#WSIG 2 WSIGG Wait for Significant Event ($S form recommended) WSIG$S  FORTRAN Call: CALL WFSNE Macro Call: WSIG$S [err] " err Error-routine address$2 WAIT_FOR_LOGICAL_OR_OF_EVENT_FLAGS#WTLOo2 WTLOG Wait for Logical OR of Event Flags WTLO$  FORTRAN Call:b# CALL WFLOR (ef1,ef2,ef3...efn) * CALL WFLORS (idsw,ef1,ef2,ef3...,efn)G ef1...efn List of event flag numbers taken as the set of flags to- be specified00 O F & in the directive < idsw Integer to receive the Directive Status Word Macro Call: WTLO$ grp,msk) grp Desired group of event flagsa$ msk A 16-bit flag mask word2 WAIT_FOR_SINGLE_EVENT_FLAG#WTSEa2 WTSEG Wait for Single Event Flag WTSE$  FORTRAN Call: CALL WAITFR (efn[,ids]) efn Event flag number ids Directive statusn Macro Call: WTSE$ efn efn Event flag number2 WINDOW_DEFINITION_BLOCK #WDB2 WDB  Window Definition Block Word 0 W.NID -- Window ID Word 1 W.NAPR -- Base APR/ Word 2 W.NBAS -- Virtual base address (bytes) / Word 3 W.NSIZ -- Window size (32-word blocks)N Word 4 W.NRID -- Region ID 4 Word 5 W.NOFF -- Offset in region (32-word blocks)0 Word 6 W.NLEN -- Length to map (32-word blocks)% Word 7 W.NSTS -- Window status word = Word 8 W.NSRB -- Send/Receive buffer virtual address (bytes)  W.NSTS Bit DefinitionsE8 WS.CRW=100000 ;Address window was created successfully4 WS.UNM=40000 ;One or more windows were unmapped in! ;created address window or mapW6 WS.ELW=20000 ;One or more windows were eliminated in ;create address windoww3 WS.RRF=10000 ;Reference was received successfullyW) WS.BPS=4000 ;Always bypass cache on map* WS.NBP=4000 ;Do not bypass cache on CRAW# WS.RES=2000 ;Map only if residents1 WS.NAT=1000 ;Create att descr only if necessarya0 WS.64B=400 ;Define task's alignment boundaries7 WS.MAP=200 ;Map after Create Window or Receive By Ref. WS.RCX=100 ;Exit if no references to receive0 WS.SIS=40 ;Create window in supervisor I-space* WS.UDS=20 ;Create window in user D-space$ WS.DEL=10 ;Send with delete access# WS.EXT=4 ;Send with extend accesse; WS.WRT=2 ;Send with write access or map with write access=! WS.RED=1 ;Send with read access2 ERRORSG The symbols listed below are associated with the directive statusr8 codes returned by the Executive. They are determinedG (by default) at task-build time. To include these in a MACRO-11i. program, use the following two lines of code: .MCALL DRERR$s DRERR$= ;F ; STANDARD ERROR CODES RETURNED BY DIRECTIVES IN THE DIRECTIVE STATUS ; WORDe ;, IS.CLR +00 Event flag was clear3 IS.SUC +01 Operation complete, Successw* IS.SET +02 Event flag was set ; ; ;4 IE.UPN -01. Insufficient dynamic storage4 IE.INS -02. Specified task not installed4 IE.PTS -03. Partition too small for task6 IE.UNS -04. Insufficient dynamic storage for send& IE.ULN -05. Unassigned LUN2 IE.HWR -06. Device driver not resident' IE.ACT -07. Task not activee> IE.ITS -08. Directive inconsistent with task state2 IE.FIX -09. Task already fixed/unfixed7 IE.CKP -10. Issuing task not checkpointableU. IE.TCH -11. Task is checkpointable3 IE.RBS -15. Receive buffer is too small + IE.PRI -16. Privilege violationk' IE.RSU -17. Resource in uset/ IE.NSW -18. No swap space availabled0 IE.ILV -19. Illegal vector specified% IE.ITN -20. Invalid table numbert+ IE.LNF -21. Logical name not foundn ; ; ;< IE.AST -80. Directive issued/not issued from AST1 IE.MAP -81. Illegal mapping specifiedk2 IE.IOP -83. Window has I/O in progress' IE.ALG -84. Alignment erroru: IE.WOV -85. Address window allocation overflow) IE.NVR -86. Invalid region IDs1 IE.NVW -87. Invalid address window IDd, IE.ITP -88. Invalid TI parameter8 IE.IBS -89. Invalid SEND buffer size (>255.)) IE.LNL -90. LUN locked in use;# IE.IUI -91. Invalid UICs. IE.IDU -92. Invalid device or unit/ IE.ITI -93. Invalid time parameters.6 IE.PNS -94. Partition/region not in system0 IE.IPR -95. 00TADATADATADATADATADATADATADATADATAInvalid priority (>250.)# IE.ILU -96. Invalid LUNE8 IE.IEF -97. Invalid event flag number (>64.)7 IE.ADP -98. Part of DPB out of user's spacei/ IE.SDP -99. DIC or DPB size invalidE 2 DIRECTIVE_IDENTIFICATION_CODES#DIC2 DICUG Directive Identification Codes (DICs) are used to identify each9G directive. The DIC appears in the low byte of the first (or only)tG word in the Directive Parameter Block (DPB). The DPB length (inI; words) appears in the high byte of the first DPB word. G This list can be used as a software debugging aid to quickly identify E directives based on the octal value of the first word in a DPB. 9; Octal Value For Directive Decimal Values ForD; DPB First Word (Macro Call) DIC DPB Lengthr; --------------- ------------ --- ---------- 7 433 CMKT$ 27. 1.i7 443 DECL$ 35. 1.r7 455 SPND$S 45. 1.7 461 WSIG$S 49. 1.u7 463 EXIT$S 51. 1. 7 537 DCSP$ 95. 1.c7 541 ENCP$S 97. 1.M7 543 DSAR$S or IHAR$S 99. 1. 7 545 ENAR$S 101. 1.37 563 ASTX$S 115. 1.37 575 GSSW$S 125. 1.57 603 STOP$S 131. 1. 7 637 ULGF$S 159. 1. 7 643 RMAF$S 163. 1.77 1015 STAF$ 13. 2. 7 1025 SRRA$ 21. 2. 7 1035 EXST$ 29. 2. 7 1037 CLEF$ 31. 2. 7 1041 SETF$ 33. 2. = 1045 RDEF$ 37. 2. 7 1047 RDAF$ 39. 2. 7 1051 WTSE$ 41. 2. 7 1065 EXIF$ 53. 2. 7 1067 CRRG$ 55. 2. 7 1071 ATRG$ 57. 2. 7 1073 DTRG$ 59. 2. 7 1075 GTIM$ 61. 2. 7 1077 GTSK$ 63. 2. 7 1121 RREF$ 81. 2.77 1153 SRDA$ 107. 2.17 1155 SPRA$ 109. 2.57 1157 SFPA$ 111. 2.77 1161 GMCX$ 113. 2.17 1165 CRAW$ 117. 2.37 1171 MAP$ 121. 2.57 1173 UMAP$ 123. 2.77 1207 STSE$ 135. 2.17 1227 ELVT$ 151. 2.37 1235 CRGF$ 157. 2.57 1237 ELGF$ 159. 2.77 1241 STAF$ 161. 2.17 1245 SPEA$ 165. 2.57 1247 SREA$ 167. 2.17 1255 SCAA$ 173. 2.37 1261 FEAT$ 177. 2.27 1311 MSDS$ 201. 2.2# 1321 TFEA$ 209. 2. # 1325 RRST$ 213. 2.$7 1405 GLUN$ 5. 3. 7 1431 CSRQ$ 25. 3. 7 1433 CMKT$ 27. 3. 7 1447 RDXF$ 39. 3. 7 1453 WTLO$ 43. 3. 7 1457 RSUM$ 47. 3. 7 1475 STIM$ 61. 3. 7 1523 A00 O F &BRT$ 83. 3. 7 1531 EXTK$ 89. 3.57 1547 SVDB$ 103. 3.17 1551 SVTK$ 105. 3.37 1577 SNXC$ 127. 3.77 1605 USTP$ 133. 3. 7 1611 STLO$ 137. 3. 7 1617 CNCT$ 143. 3. 7 1633 SCAL$S 155. 3.37 1647 SREX$ 167. 3.17 1657 SWST$ 175. 3.77 1715 CPCR$ 205. 3. 7 2007 ALUN$ 7. 4. 7 2011 ALTP$ 9. 4. 7 2101 GPRT$ or GREG$ 65. 4. 7 2113 RCVD$ 75. 4. 7 2115 RCVX$ 77. 4. 7 2213 RCST$ 139. 4. 7 2223 EMST$ 147. 4. 7 2313 MVTS$ 203. 4. 7 2427 MRKT$ 23. 5. 7 2505 SREF$ 69. 5. 7 2507 SDAT$ 71. 5. 7 2625 CRVT$ 149. 5. 7 2655 SCLI$ 173. 5. 7 2717 ACHN$ 207. 5. / 2717 DLON$ or DLOG$ 207. 5.30 2717 SDIR$ 207. 5.7 3113 VRCD$ 75. 6.7 3115 VRCX$ 77. 6.7 3213 VRCS$ 139. 6.7 3317 GDIR$ 207. 6.7 3413 RQST$ 11. 7. 7 3577 GCCI$ 127. 7. 7 3601 CINT$ 129. 7. 7 3615 SDRC$ 141. 7. 7 3655 GCII$ 173. 7. 4 3717 CLON$ or CLOG$ 207. 7.) 3717 FSS$ 207. 7.7 4107 VSDA$ 71. 8.7 4215 VSRC$ 141. 8.% 4253 SMSG$ 171. 8.17 4615 SDRP$ 141. 9.2 + 5317 RLON$ or RLOG$ 207. 10. 2 5317 TLON$ or TLOG$ 207. 10.7 5421 RUN$ 17. 11. 7 6001 QIO$ 1. 12. 7 6003 QIOW$ 3. 12. 7 6413 SPWN$ 11. 13. # 6717 PFCS$ 207. 13.$# 6717 PRMS$ 207. 13. 7 7013 SPWN$ 11. 14.S7 10013 RPOI$ 11. 16. 7 24577 GMCR$ 127. 41.$ 207. @X 3PmmZ7 6001 QIO$ 1. 12. 7 6003 QIOW$ 3. 12. 7 6413 SPWN$ 11. 13. # 6717 PFCS$ 207. 13.$# 6717 PRMS$ 207. 13. 7 7013 SPWN$ 11. 14.S7 10013 RPOI$ 11. 16. 7 24577 GMCR$ 127. 41.$ 207. @ FCS is a collection of record-management macros and subroutines@ used to maintain and manipulate data files. FCS, in contrast to? RMS-11, supports only sequential and fixed record length file X? organizations. This HELP file contains brief summaries of theaD MACRO-11 assembly language interface to FCS. See also, HELP FCS:H BIGBUFFERS ERRORS ALL FDB INTROH DATA-STRUC ERRORS err FLUSH MACROL DATASET E00TADATADATADATADATADATADATADATADATARRORS nnn FILES-11 USER-TASK: ERRORS EXAMPLE FILE-SPEC' err = three-character error code name n s, nnn = three-digit octal error code number  2 INTROTL The File Control System (FCS) is a Files-11 based, input/output programmingJ system. Your interface to FCS is through macro calls that either generateO non-executable code (data structures) or excutable code (file processing). The M data structures describe a file and define how that file is to be processed.FP The file processing macros perform the action of processing the file by callingO file control routines. These routines execute the necessary executive and filerP processor (F11ACP) routines to perform the I/O requested by your original macro5 call. For help on the macros, type HELP FCS MACROS. o) USER TASK ---> Type HELP FCS USER-TASKa ***************** * NON * 9 * EXECUTABLE *------> Type HELP FCS DATA-STRUC s * CODE * * *$ ***************** *****************$ * * * FCS ROUTINES *A * EXECUTABLE *<----->* LINKED TO *------> FILES-11 SYSTEMe, * CODE * * YOUR TASK * B * * * * Type HELP FCS FILES-11$ ***************** ***************** 2 DATA-STRUCK Before you use the File Control System (FCS) to perform I/O, certain data - structures must be created in your program: -" ************************* FDBDF$# * * FDAT$A FDRC$A FDOP$A FDBF$A*7 * FILE DESCRIPTOR BLOCK * FDBK$A FDAT$A FDRC$A FDOP$AF * * FDBF$A FDBK$AC *************************  * *-" * FILE STORAGE REGION * FSRSZ$ * *R ************************* : * DATASET DESCRIPTOR * Six-word block created by you:, * AND/OR * (See HELP FCS DATASET)" * DEFAULT FILENAME * NMBLK$7 * BLOCK * (See HELP FCS MACROS NMBLK)e *************************gJ For more help see also: HELP FCS FDB and HELP FCS USER-TASK. Help is alsoH available on the macros used to generate the data structures by typing:E HELP FCS MACROS name, where name = letters in macro name, before $. G2 FDB ( FILE DESCRIPTOR BLOCK FDBDF$ % ********************************* o; FILE ATTRIBUTE * Record Type and Size * FDAT$A - SECTION * File Type and Size * # *********************************CA RECORD OR * Buffer Descriptors and * FDRC$A - Record I/OeD BLOCK SECTION * Pointers - Access Mode * FDBK$A - Block I/O# *********************************a5 FILE OPEN * Associated * FDOP$Am+ SECTION * LUN *D# ********************************* 8 BLOCK BUFFER * Multi-Buffering Descriptor * FDBF$A  SECTION * Buffer size *# ********************************* ? FILENAME BLOCK * File Specification * Pointers in FDOP$A.*C SECTION * File ID * Built at OPEN time from /> ********************************* dataset descriptor or name block + data from file.*G See also, HELP FCS USER-TASK, HELP FCS DATASET, HELP FCS MACROS NMBLK.I 2 FILES-11 The File System 2 **************** For help on the FCS user task& * USER * type HELP FCS USER-TASK. * TASK *< **************** For more help on virtual, physical, and; * FCS * logical blocks, type FCS FILES-11 MORE.I **************** | VIRTUAL BLOCKSt( **************** ****************1 * EXECUTIVE * -------------* FILE * ( **************** * PROCESSOR *+ | LOGICAL BLOCKS * (F11ACP) *A% **************** ****************  * DEVICE * * DRIVER * **************** | PHYSICAL BLOCKS **************** * PHYSICAL * * VOLUME * ****************3 MORE' VIRTUAL, LOGICAL, AND PHYSICAL BLOCKSl' Virtual Logical Physical** Get Record Block Block BlockD *********** ************ ************ 00 O F & ************D * . * * . * * . * * *D * . * * . * * . * * *N * . * FCS * . * F11ACP * . * DRIVER * *N * GET$ *--------->*QIO IO.RVB*----------->*QIO IO.RLB*------->* DISK *> * . * * . * * . * * *> * . * * . * * . * * *H *********** ************ ************ ************ 2 USER-TASK D Executable Code |Non-Executable Code - File Descriptor Block& | File Storage Region |& START: . |FDBTAG: FDBDF$  . | FDB 6 FINIT$ | FDAT$A ;File *************- OPEN$ | ; Attribute * File * 1 . | FDRC$A ;Record * Creation * + . | ; Access ************* = READ$/WRITE$ ;Block | FDBK$A ;Block * Block I/O * - I/O | ; Access *************l7 or | FDOP$A ;File * Record *k- | ; Open * * ; GET$/PUT$ ;Record | FDBF$A ;Initialize * I/O *F+ . I/O | ;Blk Buffer ************* $ . | ; Blk Buffer$ CLOSE$ | ; Pool 1 . | FSRSZ$ ;File Store ************* + . | ;Region Size * $$FSR1 **! | ; *************kF FINISH: EXIT$ |URBUF: Other user buffers such as the default  filename block 2 FILE-SPECPL Identifying the file to processed is done through data structures that you L generate in your program. There are two methods for doing this: completely L generate your own which is called a dataset descriptor or generate what is K known as a default filename block by using the NMBLK$ macro. FCS uses the N dataset descriptor or the filename block or both to build the Filename Block P which is part of the FDB. See also, HELP FCS DATASET and HELP FCS MACROS NMBLK. / Dataset Filename Block NMBLK$e Descriptor o *************************- *************** * N.FID * File ID *oG *Word * File *-------->* N.FNAM * File name *<-------------- fnam, aF * 5&6 * Name *-------->* N.FTYP * File type *<-------------- ftyp,G *************** |-->* N.FVER * File version *<-------------- fver,e- *Word * File *--- * N.STAT * Block status *l- * 3&4 * Direct* | * N.NEXT * Next .FIND * 2 *************** ------>* N.DID * Directory ID *G *Word * Device*-------->* N.DVNM * Device name *<-------------- dvnm,*F * 1&2 * Name *-------->* N.UNIT * Unit no. *<-------------- unit+ *************** ************************* + User Program FCS User Program- 2 DATASETYM The dataset descriptor is a 6-word block of storage that you define in your vL program. The information supplied in this area is used by FCS to build the K Filename Block part of the File Descriptor Block (see HELP FCS FILE-SPEC).N Example Dataset* Word-1 Descriptor, Length (bytes) of ASCII device name string. DATSET: .WORD DEVSZ,DEV Word-2 .WORD DIRSZ,DIR8 Address of ASCII device name string. .WORD NAMSZ,NAM Word-3 E Length (bytes) of ASCII file directory string. DEV: .ASCII /DB2:/l DEVSZ=.-DEV o Word-4 A Address of ASCII file directory string. DIR: .ASCII /[303,4]/t DIRSZ=.-DIR Word-5 C Length (bytes) of ASCII file name string. NAM: .ASCII /FCS.HLP/  NAMSZ=.-NAM Word-6-# Address of ASCII file name string.t2 MACROSO Basically, there are two categories of FCS macros: file processing (generates DP executable code) and data structure (non-executable code). All macro call namesM are suffixed with a $ and some with a $ and an additional character. To get DP help on any macro, type HELP FCS MACROS and the macro-name, without the suffix.& FILE PROCESSING DATA STRUCTURE  MACROS MACROS r00TADATADATADATADATADATADATADATADATA" FCSMC$ FINIT$ FDBDF$ FSRSZ$  FDBSZ$ r( OPEN$x READ$ CLOSE$ FDAT$t FDOF$L " OPNS$x WRITE$ FDRC$t NBOF$L ! OFID$x WAIT$ FDBK$t FCSBT$ p" OFNB$x GET$a DELET$ FDOP$t $ OPNT$D PUT$a FDBF$t NMBLK$ OPNT$W  l5 x = R-read,M-modify,W-write, t = A-assembly time, d- U-update,A-append R-run time o a = S-sequential,R-random n3 OPENO The OPEN$x macro calls FCS to do general file processing for an existing file MP or to create a new file. The suffix (x) is used to indicate type of processing. Write (create) a new file:$' OPEN$W fdb,lun,dspt,racc,urba,urbs,err$3 For existing files (the parameters are the same):  OPEN$R - Read an existing file > OPEN$M - Modify an existing file, without changing its lengthE OPEN$U - Update an existing file and extend its length, if nesessary: OPEN$A - Append (add) data to the end of an existing fileP Open a file, but do not supersede an existing file with the same specification:0 OPEN$ fdb,facc,lun,dspt,dfnb,racc,urba,urbs,errP For a description of the open parameters,type: HELP FCS MACROS OPEN PARAMETERS.P For help on other open macros type: HELP FCS MACROS and OPNS,OPID,OPNT, or OPNB PARAMETERS: E FDB Fields Initializedw8 dfnb - address of the default filename block F.DFNB0 dspt - address of dataset descriptor F.DSPT5 err - address of user-coded error-handling routine 9 facc - symbolic value, indicating file access F.FACCc3 fdb - address of the file descriptor block (FDB)r9 lun - logical unit number. Unique for each FDB F.LUNP9 racc - record access byte. Record or block I/O F.RACCs2 urba - address of user record buffer F.URBD+2. urbs - size of user record buffer F.URBD3 OPNS' OPNS$x fdb,lun,dspt,racc,urba,urbs,errFJ The OPNS$x macro is used to open a file for shared access. The suffix (x)" indicates the type of processing. x = R - Read an existing filen W - Write a new file> M - Modify an existing file, without changing its lengthE U - Update an existing file and extend its length, if necessaryc: A - Append (add) data to the end of an existing fileP For a description of the open parameters,type: HELP FCS MACROS OPEN PARAMETERS.3 OPNT ' OPNT$W fdb,lun,dspt,racc,urba,urbs,err? The OPNT$W macro is used to create and open a temporary file. uL The OPNT$D macro is used to open a temporary file and also to mark the file for deletion. ' OPNT$D fdb,lun,dspt,racc,urba,urbs,errlP For a description of the open parameters,type: HELP FCS MACROS OPEN PARAMETERS.3 OFID' OFID$x fdb,lun,dspt,racc,urba,urbs,erreK The OFID$x macro is used to open an existing file using information storedPL in file identification field (N.FID) of the filename block in the FDB. The / suffix (x) indicates the type of processing.  x = R - Read an existing file W - Write a new file = M - Modify an existing file, without changing its lengthD U - Update an existing file and extend its length, if necessary9 A - Append (add) data to the end of an existing file P Open a file, but do not supersede an existing file with the same specification:0 OFID$ fdb,facc,lun,dspt,dfnb,racc,urba,urbs,errP For a description of the open parameters,type: HELP FCS MACROS OPEN PARAMETERS. 3 OFNB macro e' OFNB$x fdb,lun,dspt,racc,urba,urbs,errtO The OFNB$x macro is used either to open an existing file or to create and opennM a new file using file name information in the filename block. The suffix (x)c$ indicates the type of processing.  x = R - Read an existing file W - Write a new filer= M - Modify an existing file, without changing its lengthbD U - Update an existing file and extend its length, if necessary9 A - Append (add) data to the end of an existing fileF mP Open a file, but do not supersede an existing file with the same specification:0 OFNB$ fdb,facc,lun,dspt,dfnb,racc,urba,urbs,errP For a descrip00 O F &tion of the open parameters,type: HELP FCS MACROS OPEN PARAMETERS.3 CLOSEe CLOSE$ fdb,err.G The CLOSE$ macro is used to close a file, after the processing of the M file is completed.e6 fdb - A symbolic address value of the associated FDBF err - The symbolic address of a user-coded, error-handling routine 4 The CLOSE$ performs several housekeeping functions:E 1. Waits for all I/O to complete (multiple-buffered record I/O only)fM 2. Ensures that the FSR block buffer is completely written (record I/O only), 3. Deaccesses the fileP4 4. Releases the FSR block buffers (record I/O only)/ 5. Clears the appropriate FDB offset locationsn f? 6. Calls user error routine, if an error condition is detectedo3 GETo GET$ fdb,urba,urbs,err P The GET$ macro is used to read logical records from a file; known as record I/OK fdb - a symbolic value of the address of the file descriptor block (FDB)fO urba - address of your record buffer to be used for I/O operations in move oreD locate mode. This parameter initializes F.URBD+2 in the FDBL urbs - size (in bytes) of largest record that can be placed in your recordJ buffer in move or locate mode. This initializes F.URBD in the FDB5 err - address of user-coded error-handling routine ; GET$S fdb,urba,urbs,err ;Read records sequentially, onlyOB GET$R fdb,urba,urbs,lrcnm,hrcnm,err ;Read records in random modeG lrcnm - high order record number. This initializes F.RCNM+2 in the FDBrE hrcnm - high order record number. This initializes F.RCNM in the FDBB3 PUTe PUT$ fdb,nrba,nrbs,erryF The PUT$ macro writes logical records to a file; known as record I/O.K fdb - a symbolic value of the address of the file descriptor block (FDB)oJ nrba - the symbolic address of the next record buffer. This initializes F.NRBD+2lJ nrbs - the length of next record buffer to be written. This initializes  F.NRBD5 err - address of user-coded error-handling routine 7 PUT$S fdb,nrba,nrbs,err ;Writes records sequentiallyiD PUT$R fdb,nrba,nrbs,lrcnm,hrcnm,err ;Writes records in random modeG lrcnm - high order record number. This initializes F.RCNM+2 in the FDBaE hrcnm - high order record number. This initializes F.RCNM in the FDBb3 READ, READ$ fdb,bkda,bkds,bkvb,bkef,bkst,bkdn,errO The READ$ macro is used to read a virtual block of data from a block-oriented eP device. See HELP FCS FILES-11 for virtual, logical, and physical relationships.E For a description of parameters type HELP FCS MACROS READ PARAMETERST PARAMETERS:O bkda - address of the block I/O buffer in your program. Need not be specifiedeP if F.BKDS+2 in the FDB is initialized by the FDBK$A or the FDBK$R macro+ bkdn - address of an AST service routine RP bkds - size (bytes) of the virtual block to be read/written. Need not be givenN if F.BKDS in the FDB is initialized by the FDBK$A or the FDBK$R macroO bkef - the event flag number used for synchronizing block I/O operations. CanpP also be specified using FDBK$A or FDBK$R; initializes F.BKEF in the FDBO bkst - address of the I/O status block in your program. Initializes F.BKST inD9 the FDB and can be specified by FDBK$A or FDBK$R O bkvd - address of a 2-word block in your program containing the number of thekL virtual block to be reab/written.Initializes F.BKVB and F.BKVB+2 in the FDB5 err - address of user-coded error-handling routineuK fdb - a symbolic value of the address of the file descriptor block (FDB)i3 WRITEr- WRITE$ fdb,bkad,bksz,bkvb,bkef,bkst,bkdn,err-P The WRITE$ macro is used to write a virtual block of data from a block-orientedP device. See HELP FCS FILES-11 for virtual, logical, and physical relationships.4 The parameters are the same as those in READ$; see: ! HELP FCS MACROS READ PARAMETERSn3 FCSMC.K The FCSMC$ macro is a convenient way to declare commonly used FCS macros. h .MCALL FCSMC$ -; Using this sing00TADATADATADATADATADATADATADATADATAle macro declares the following FCS macros:F i OPEN$x GET$ FDAT$xE OPNS$x PUT$ FDRC$xb CLOSE$ DELET$ FCOP$xT READ$ FINIT$ FDBF$x WRITE$ FSRSZ$ FDBK$xo WAIT$ FDBDF$ NMBLK$: Other macros may then be declared using explicit .MCALLs.3 WAIT WAIT$ fdb,bkef,bkst,errF The WAIT$ macro, which is issued only in connection with READ$/WRITE$K operations, causes a program to be suspended until the requested block I/Oe transfer is completed. L fdb - a symbolic value of the address of the file descriptor block (FDB).P bkef - the event flag number used for synchronizing block I/O operations. ThisJ parameter must agree with the corresponding bkef parameter in the, associated READ$/WRITE$ macro call. MM bkst - address of the I/O status block in your program. This is an optionaleL parameter, and if specified must agree with the corresponding bkst 8 parameter in the associated READ$/WRITE$ macro.6 err - address of user-coded error-handling routine.3 DELETp DELET$ fdb,err J The DELET$ macro causes the directory information for the file associatedK with the specified FDB to be deleted from the appropriate UFD. This causesL file space to be deallocated and returned to the pool of available storage.L fdb - a symbolic value of the address of the file descriptor block (FDB).6 err - address of user-coded error-handling routine.3 FINITiN The FINIT$ macro is used to initialize the file storage region created by the FSRSZ$ macro. label: FINIT$2 Where label is an optional user-specified symbol.C The FINIT$ should be issued in the program's initialization code. e3 FSRSZeM The FSRSZ$ macro is used to establish the size of the file storage region athO assembly time. Block-buffer pool space is allocated in a program section namedi $$FSR1. FSRSZ$ fbufs,bufsiz,psectN fbufs - zero, if no record I/O processing is to be done or if an unspecified = number of files opened simultaneously for block I/O.ZI - the maximum number of files that can be open simultaneously for o record I/O processing.dL - the maximum number of buffers ever in use simultaneously among all 0 files open concurrently for record I/O.K bufsiz- a numeric value defining the total block buffer pool space (bytes)aH needed to support the maximum number of files that can be open ' simultaneously for record I/O.nN psect - the name of the program section to which control returns after FSRSZ$ completes processing. 3 FDBDFoH The FDBDF$ macro is used to allocate space within a program for a file P descriptor block (FDB). It must be specified once for each input or output file5 that is to be opened simultaneously by your program.l label: FDBDF$aJ label - a user specified symbol naming an FDB and defining its beginning L address. The File Control System accesses the fields within an FDB < relative to the address represented by this symbol. Example:$5 FDBOUT: FDBDF$ ;Generate block for output fileBC FDAT$A R.FIX,FD.CR,BUFSIZ ;Fixed length,LF with CR,buffer sizesK FDOP$A OUTLUN,CSIBLK+C.DSDS ;LUN and pointer to file descriptor3 FDRC$A TMPBUF,BUFSIZ ;temp buffer, buffer sizel3 FDATP The FDAT$x macro is used to initialize the file attribute section of the FDB. . FDAT$x rtyp,ratt,rsiz,cntg,aloc ******* * FDBL x - A for assembly time and R for run time initialization or change *Fields *******C rtyp - record type: R.FIX - fixed, R.VAR - variable, or *F.RTYP.& R.SEQ - variable sequenced * *O ratt - record attribute: (! separates multiple fields - FD.FTN!FD.BLK) *F.RATT4 FD.FTN - FORTRAN carriage-control in first byte *8 FD.CR - record preceded by and followed by *3 FD.BLK - records do not cross block boundaries *t: FD.PRN - record preceded by word with carriage control * *J rsiz - size (bytes) of fixed length records; only if rtyp00 O F & = R.FIX *F.RSIZ *K cntg - + value for the number of contiguous blocks allocated, or a *F.CNTG F - value for number (2's complement) of noncontiguous blocks * *J aloc - + value for the number of contiguous blocks FCS can extend *F.ALOC or aRB - value for the number (2's complement) of noncontiguous  blocks3 FDRCP The FDRC$x macro initializes the record access section of the FDB and specifies record or block I/O operations.$ FDRC$x racc,urba,urbs ******* * FDBL x - A for assembly time and R for run time initialization or change *Fields *******I racc - record/block I/O? (! separates multiple fields - FD.RAN!FD.PLC) *u *F.RACC 1 For block I/O (READ$/WRITE$): FD.RWM * * For record I/O: *t= FD.RAN - random access mode; sequential, if omitted * 6 FD.PLC - locate mode; move mode, if omitted *I FD.INS - do not truncate file when PUT$ is issued in body of file* *O urba - address of your record buffer to be used for GET$ operations in *F.URBDnG move and locate modes and for PUT$ operations in locate mode *+2i *L urbs - size (bytes) of your record buffer for move and locate mode *F.URBD3 FDBKL The FDBK$x macro is used to initialize the block access section of the FDB.( Used for block I/O only (READ$/WRITE$).1 FDBK$x bkda,bkds,bkvb,bkef,bkst,bkdn *******. * FDBM x - A for assembly time and R for run time initialization or change *Fieldsf *******8 bkda - address of user buffer for block I/O *F.BKDS *+2> bkds - size (bytes) of block to be read or written *F.BKDS *5 bkvd - virtual block number (FDBK$R only) *F.BKVD. *F.BKVD *+22 bkef - numeric value of an event flag *F.BKEF *E bkst - address of a 2-word I/O status block in your program *F.BKSTb *= bkdn - address of a user coded AST service routine *F.BKDN 3 FDOP? The FDOP$x macro initializes the file-open section of the FDB.d FDOP$x lun,dspt,dfnb,facc,actl  *******J x - A for assembly time and R for run time initialization or change * FDB *Fields2 lun - value for a logical unit number ******* *N dspt - address of 6-words in your program for the dataset descriptor *F.DSPT *H dfnb - address of default filename block (created with NMBLK$) *F.DFNB *5 facc - file access: FA.SHR shared access *F.FACCC existing files - FO.RD read only, FO.APD append,FO.MFY modify, *3 FO.UPD update and, if necessary, extend * x *B new files - FO.WRT write,FO.WRT!FA.NSP file with same name *4 not to be superseded, FO.WRT!FA.TMP temporary * * O actl - control information: FA.ENB!FA.POS - position magnetic tape just*F.ACTLTG after most recently closed file, FA.ENB!FA.RWD - rewind tape, *LI FA.ENB!FA.DLK - disk file is not locked, if not properly closed,*F: FA.LKL!FA.EXL - lock all blocks that are accessed.3 FDBFB The FDBF$x macro initializes the block buffer section of the FDB.' FDBF$x efn,ovbs,mbct,mbfg *******N * FDBN x - A for assembly time and R for run time initialization or change *Fields *******> efn - event flag used by FCS to synchronize I/O operations * *D ovbs - file storage region (FSR) block buffer size (bytes) *F.OVBS *H mbct - value for multiple buffer count; the numbers used by FCS *F.MBCT */ mbfg - type of multiple buffering: *F.MBFGF *n FD.RAH - read ahead * *D FD.WBH - write behind *3 NMBLK*M The NMBLK$ macro is used to define a default filename block in your program. i: label: NMBLK$ fnam,ftyp,fver,dvnm,unit ******* * FileaI label - a user-defined symbol that is the address of the default * Nameb$ filename block. * Blk ******* *O fnam - th00TADATADATADATADATADATADATADATADATAe default filename which is up to nine ASCII characters. The *N.FNAM D character string is stored as six bytes in Radix-50 format * *bM ftyp - the default file type which is up to three ASCII characters. *N.FTYPaH The character string is stored as two bytes in Radix-50 format * **M fver - the default file version number which is a binary value that *N.FVERh8 indentifies a particular version of a file * * O dvnm - the default device name for mounted volume containing the file. *N.DVNM * A two character ASCII string * *O unit - a binary value identifying the unit used in processing the file *N.UNITs ******* 3 FDBSZ  FDBSZ$rC The FDBSZ$ macro is used to define the size of the FDB as a local  symbol (S.FDB).3 FDOF FDOF$LJ The FDOF$L macro defines the File Descriptor Block (FDB) offsets in your program.fO This macro does not generate any code but creates absolute symbol definitions e" in your program at assembly time. See also, HELP FCS MACROS FCSBT3 FCSBT FCSBT$J The FCSBT$ macro defines locally in your program the bit values for File $ Descriptor Block (FDB) parameters. O This macro does not generate any code but creates absolute symbol definitions c" in your program at assembly time. See also, HELP FCS MACROS FDOFe3 NBOF NBOF$L M The NBOF$L macro defines locally in your program the offsets for a filename e block. O This macro does not generate any code but creates absolute symbol definitions HN in your program at assembly time. This macro need not be issued if the FDOF$L is issued.a See also, HELP FCS MACROS FDOFp 2 BIGBUFFERSA Big buffering reduces the number of disk accesses for record I/Os? by allowing multiblock input and output. Normally, get or put? operations are performed by accessing the disk one sector at aO? time. Big buffering allows a specified number of sectors to bea; read or written in a single disk access, which reduces thec number of head seeks.; To use big buffers, you need only pick a reasonable bufferd= size, alter the parameters for each occurrence of the FSRSZ$CC and FDBF$A macros in your program, and link to the proper library:f< 1. The buffer size you choose should be a multiple of? 512. bytes, the size of one disk block. 5 blocks is ac@ good choice, because it is the default amount allocated9 by a file extension. Disks tend to contain manyg5 5-block chunks. Larger amounts may increasek: performance, but you may be trading large amounts of memory for speed.t: 2. In your program, you must reserve adequate buffer9 space and make the buffer size known to the FDB.T@ The FSRSZ$ macro allows you to specify the total bufferC space needed by entering a number as its second parameter.e> This should be 512. bytes for each normal disk file, 9 plus the chosen buffer size for each big buffered file.c? For example, assume a program with 3 files: one normaloC (512. byte buffer), one with 3 blocks as a big buffer, and @ one with 5 blocks as a big buffer. The following would $ reserve the space properly: ! FSRSZ$ 3,<<1+3+5>*512.>y D In the FDB of each file with a big buffer, you must specifyA an override buffer size with the FDBF$A or FDBF$R macro.m@ For a file with 5 blocks as a big buffer, the following) would be the assembly-time macro call:o  FDBF$A <5*512.> E 3. RSX-11M users (Version 3.2 and later) should link to ANSLIB,cB which contains the proper FCS modules to use big buffers.2 ERRORS@ When FCS returns an error code to you in byte location F.ERR inA the FDB, it may be either an I/O error code or a directive error C code. You can determine which type of code it is by examining byte  location F.ERR+1:A F.E00 O F &RR+1 = -1 means that it is a directive error. For a list ofa@ directive error codes type HELP EXECUTIVE ERRORS  3B F.ERR+1 = 0 means that it is an I/O error. A list of I/O error codes follows., For HELP on an individual error code, type: HELP FCS ERRORS xxxeB where xxx is the 3-letter error name or the 3-digit octal numericC value. For example, the following will access the same error text:t HELP FCS ERRORS ONP and  HELP FCS ERRORS 373 c o .F For a list of all FCS error names and code, type HELP FCS ERRORS ALL.3 ALL . Here is a list of all errors returned by FCS.! IE.BAD,-01.,377, ( IE.IFC,-02.,376,# IE.DNR,-03.,375,L) IE.VER,-04.,374,L. IE.ONP,-05.,373,& IE.SPC,-06.,372,& IE.DNA,-07.,371,* IE.DAA,-08.,370, O( IE.DUN,-09.,367,' IE.EOF,-10.,366,a) IE.EOV,-11.,365,1 IE.WLK,-12.,364,I IE.DAO,-13.,363,' IE.SRE,-14.,362,% IE.ABO,-15.,361,I& IE.PRI,-16.,360, I, IE.RSU,-17.,357,* IE.OVR,-18.,356,6 IE.BYT,-19.,355,1 IE.BLK,-20.,354,E, IE.MOD,-21.,353,$ IE.CON,-22.,352,+ IE.NOD,-23.,351,T IE.DFU,-24.,350, 1" IE.IFU,-25.,347, IE.NSF,-26.,346,.0 IE.LCK,-27.,345,# IE.HFU,-28.,344,,% IE.WAC,-29.,343,I/ IE.CKS,-30.,342,,6 IE.WAT,-31.,341,3 IE.RER,-32.,340,2 34 IE.WER,-33.,337,/ IE.ALN,-34.,336,E- IE.SNC,-35.,335,1 IE.SQC,-36.,334,6* IE.NLN,-37.,333,/ IE.CLO,-38.,332,A< IE.NBF,-39.,331,& IE.RBG,-40.,330, .: IE.NBK,-41.,327,= IE.ILL,-42.,326,3" IE.BTP,-43.,325,1 IE.RAC,-44.,324,E5 IE.RAT,-45.,323,Q4 IE.RCN,-46.,322,- IE.ICE,-47.,321,./ IE.2DV,-48.,320,. 18 IE.FEX,-49.,317,% IE.BDR,-50.,316,,/ IE.RNM,-51.,315,>' IE.BDI,-52.,314,F$ IE.FOP,-53.,313, IE.BNM,-54.,312," IE.BDV,-55.,311,& IE.BBE,-56.,310, U7 IE.DUP,-57.,307, 6 IE.STK,-58.,306,1 IE.FHE,-59.,305,., IE.NFI,-60.,304,/ IE.ISQ,-61.,303, ' IE.EOT,-62.,302,D% IE.BVR,-63.,301,I" IE.BHD,-64.,300, E! IO.BCC,-65.,277,A5 IE.BCC,-66.,276,B IE.ONL,-67.,275, IE.NNN,-68.,274,L> IE.DIS,-69.,273, ;THIS CODE MUST BE ODD% IE.BLB,-70.,272,A- IE.NDR,-72.,270,4. IE.URJ,-73.,267,, IE.NRJ,-74.,266,3 IE.EXP,-75.,265,O" IE.BTF,-76.,264,1 IE.NNC,-77.,200TADATADATADATADATADATADATADATADATA63,$ IE.NDA,-78.,262,B IE.NLK,-79.,261,/ IE.NST,-80.,260,P R) IE.FLN,-81.,257,<* IE.IES,-82.,256,* IE.PES,-83.,255,% IE.ALC,-84.,254,, IE.ULK,-85.,253,C& IE.WCK,-86.,252, N% IE.NTR,-87.,251,E5 IE.REJ,-88.,250,U/ IE.FLG,-89.,247,L& IE.DSQ,-90.,246,/ IE.IQU,-91.,245, 1 IE.RES,-92.,244,E) IE.TML,-93.,243,I% IE.NNT,-94.,242,A& IE.TMO,-95.,241,& IE.CNR,-96.,240, IE.UKN,-97.,237,2( IE.SZE,-98.,236,- IE.MII,-99.,235,N$ IE.SPI,-100.,234,! IS.PND,+00. ;I/O REQUEST PENDINGI) IS.SUC,+01. ;OPERATION COMPLETE, SUCCESSE6 IS.RDD,+02. ;(RX11) FLOPPY DISK SUCCESSFUL COMPLETION# ;OF A READ PHYSICAL, AND DELETEDO' ;DATA MARK WAS SEEN IN SECTOR HEADERN ; LAST SECTOR.N. IS.BV,+05. ;(A/D READ) AT LEAST ONE BAD VALUE% ;WAS READ (REMAINDER MAY BE GOOD).2! ;BAD CHANNEL IS INDICATED BY A9! ;NEGATIVE VALUE IN THE BUFFER..? IS.CR,<15*400+1> ;SUCCESSFUL COMPLETION WITH CARRIAGE RETURN C> IS.ESC,<33*400+1> ;SUCCESSFUL COMPLETION ON ESCAPE (ALTMODE) 1 IS.CC,<3*400+1> ;SUCCESSFUL COMPLETION ON CTRL-CP? IS.ESQ,<233*400+1> ;SUCCESSFUL COMPLETION ON ESCAPE SEQUENCE E8 IS.PES,<200*400+1> ;PARTIAL ESCAPE SEQUENCE TERMINATOR9 IS.EOT,<4*400+1> ;EOT WAS TERMINATOR (BLOCK MODE INPUT) 9 IS.TAB,<11*400+1> ;TAB WAS TERMINATOR (FORMS MODE INPUT) . IS.TMO,+2. ;SUCCESSFUL COMPLETION ON TIME OUTB IS.TNC,+2. ;SUCCESSFUL TRANSFER BUT MESSAGE TRUNCATED1 ;RECEIVE BUFFER TOO SMALL03 377U#BAD3 BADL! IE.BAD,-01.,377,<3 376>#IFC3 IFCC( IE.IFC,-02.,376,3 375S#DNR3 DNRO# IE.DNR,-03.,375,43 374;#VER3 VERE) IE.VER,-04.,374,O3 373E#ONP3 ONPC. IE.ONP,-05.,373,3 372(#SPC3 SPCP& IE.SPC,-06.,372,3 371E#DNA3 DNA & IE.DNA,-07.,371,3 370E#DAA3 DAA * IE.DAA,-08.,370,3 367 #DUN3 DUN ( IE.DUN,-09.,367,3 366#EOF3 EOF' IE.EOF,-10.,366,3 365#EOV3 EOV) IE.EOV,-11.,365,;3 364#WLK3 WLKE1 IE.WLK,-12.,364,3 363#DAO3 DAO3 IE.DAO,-13.,363,3 362#SRE3 SRE' IE.SRE,-14.,362, 3 361D#ABO3 ABOI% IE.ABO,-15.,361, 3 360D#PRI3 PRII& IE.PRI,-16.,360,3 357 #RSU3 RSU , IE.RSU,-17.,357,3 356E#OVR3 OVRI* IE.OVR,-18.,356,3 355V#BYT3 BYT.6 IE.BYT,-19.,355,3 354I#BLK3 BLK41 IE.BLK,-20.,354, 3 353I#MOD3 MOD3, IE.MOD,-21.,353,3 3523#CON3 CONI$ IE.CON,-22.,352,3 3511#NOD3 NODS+ IE.NOD,-23.,351,,3 3500#DFU3 DFUI IE.DFU,-24.,350,3 347,#IFU3 IFUR" IE.IFU,-25.,347,3 346I#NSF3 NSF. IE.NSF,-26.,346, 3 345B#LCK3 LCKI0 IE.LCK,-27.,345,3 3445#HFU3 HFUL# IE.HFU,-28.,344,U3 343O#WAC3 WAC5% IE.WAC,-29.,343,A3 342 #CKS3 CKS>/ IE.CKS,-30.,342,N3 341O#WAT3 WATN6 IE.WAT,-31.,341,3 3400#RER3 RERI3 IE.00 O F &RER,-32.,340,R3 337F#WER3 WERN4 IE.WER,-33.,337,3 336C#ALN3 ALN4/ IE.ALN,-34.,336,E3 335E#SNC3 SNC4- IE.SNC,-35.,335, 3 334#SQC3 SQC1 IE.SQC,-36.,334,43 333S#NLN3 NLN.* IE.NLN,-37.,333,3 332O#CLO3 CLON/ IE.CLO,-38.,332, 3 331#NBF3 NBF< IE.NBF,-39.,331,3 330#RBG3 RBG& IE.RBG,-40.,330,3 327R#NBK3 NBK: IE.NBK,-41.,327,3 3263#ILL3 ILLN= IE.ILL,-42.,326,C3 325#BTP3 BTP." IE.BTP,-43.,325,3 3243#RAC3 RACL1 IE.RAC,-44.,324,33 323O#RAT3 RAT.5 IE.RAT,-45.,323,N3 322B#RCN3 RCN34 IE.RCN,-46.,322,3 321R#ICE3 ICEI- IE.ICE,-47.,321,N3 320B#2DV3 2DV4/ IE.2DV,-48.,320,3 317#FEX3 FEX8 IE.FEX,-49.,317,3 316 #BDR3 BDR % IE.BDR,-50.,316,>3 3153#RNM3 RNML/ IE.RNM,-51.,315,T3 3142#BDI3 BDIA' IE.BDI,-52.,314,I3 313I#FOP3 FOP2$ IE.FOP,-53.,313,3 312E#BNM3 BNM IE.BNM,-54.,312,3 311,#BDV3 BDVE" IE.BDV,-55.,311,3 310D#BBE3 BBE4& IE.BBE,-56.,310,3 307#DUP3 DUP7 IE.DUP,-57.,307,3 306#STK3 STK6 IE.STK,-58.,306,3 305I#FHE3 FHE51 IE.FHE,-59.,305,D3 304.#NFI3 NFI<, IE.NFI,-60.,304,3 303,#ISQ3 ISQE/ IE.ISQ,-61.,303,.3 302A#EOT3 EOT' IE.EOT,-62.,302,A3 301E#BVR3 BVRD% IE.BVR,-63.,301,L3 300D#BHD3 BHD" IE.BHD,-64.,300,3 277U#BCC3 BCC ! IO.BCC,-65.,277,3 276T#BCC3 BCCO5 IE.BCC,-66.,276,53 275H#ONL3 ONLA IE.ONL,-67.,275,3 274N#NNN3 NNNI IE.NNN,-68.,274,P3 273>#NFW3 NFWQ> IE.NFW,-69.,273, ;THIS CODE MUST BE ODD3 272T#BLB3 BLB.% IE.BLB,-70.,272, 3 271B#TMM3 TMMI0 IE.TMM,-71.,271,3 270#NDR3 NDR.- IE.NDR,-72.,270,I3 2676#CNR3 CNRE& IE.CNR,-73.,267,3 2662#TMO3 TMOC% IE.TMO,-74.,266,L3 265A#EXP3 EXP.3 IE.EXP,-75.,265,63 264<#BTF3 BTFP" IE.BTF,-76.,264,3 263A#NNC3 NNCR1 IE.NNC,-77.,263,3 262,#NNL3 NNL $ IE.NNL,-78.,262,3 261M#NLK3 NLKOB IE.NLK,-79.,261,3 260N#NST3 NSTA/ IE.NST,-80.,260,<3 260I#AST3 AST. IE.AST,-80.,260,3 257E#FLN3 FLNA IE.FLN,-81.,257,3 256#IES3 IES* IE.IES,-82.,256,3 255 #PES3 PES,* IE.PES,-83.,255,3 254#ALC3 ALC% IE.ALC,-84.,254, 3 253N#ULK3 ULKI IE.ULK,-85.,253,O3 252I#WCK3 WCKT& IE.WCK,-86.,252,3 251<#NTR3 NTRK% IE.NTR,-87.,251,3 2508#REJ3 REJT5 IE.REJ,-88.,250,83 247E#FLG3 FLGW/ IE.FLG,-89.,247, 3 246.#DSQ3 DSQ<00TADATADATADATADATADATADATADATADATA& IE.DSQ,-90.,246,3 245I#IQU3 IQU5/ IE.IQU,-91.,245,3 2448#RES3 RESA1 IE.RES,-92.,244,23 243K#TML3 TML5) IE.TML,-93.,243,H3 242R#NNT3 NNT% IE.NNT,-94.,242,T3 241D#TMO3 TMO& IE.TMO,-95.,241,3 240 #CNR3 CNRC& IE.CNR,-96.,240,3 237V#UKN3 UKNA IE.UKN,-97.,237, 3 236.#SZE3 SZE<( IE.SZE,-98.,236,3 235Q#MII3 MIIN- IE.MII,-99.,235, 3 234.#SPI3 SPI<$ IE.SPI,-100.,234,2 .FLUSH#FLUSH2 FLUSH. 3 .FLUSHYK The FCS .FLUSH entry point is designed to flush the block buffer of a fileTL being written in record mode. This text is written to provide suggestions for its use.. ,- Why would you ever need to use such a thing? KM Consider the way FCS operates when it is doing PUT$s to a disk file. On each" and the commandT! ; input sequence is of the form:  ; ; FLM>outfile=infile S ;-P! .SBTTL Definitions of Directives 5 .MCALL CLOSE$ ;Terminate processing in orderly wayt& .MCALL CSI$ ;Generate the CSI block/ .MCALL CSI$1 ;Check and compressing cmd linet4 .MCALL CSI$2 ;Build file information from command .MCALL EXIT$S ;Try to exit8 .MCALL FDBDF$ ;Allocate a File Descriptor Block (FDB)% .MCALL FDAT$A ;Initialize the FDT f8 .MCALL FSRSZ$ ;Allocate space for a block-buffer pool8 .MCALL FDAT$A ;Initialize the File Attribute Section3 .MCALL FDOP$A ;Initialize the File-Open Section r7 .MCALL FDRC$A ;Initialize the Record-Access Section r- .MCALL GCML$ ;Macro to get the user input o+ .MCALL GCMLB$ ;Generate I/O block for TId& .MCALL GET$ ;Read a buffer of input+ .MCALL OPEN$W ;Open a file or create oneo .MCALL OPEN$R ;++( .MCALL PUT$ ;Write a buffer to output .! .SBTTL QIO buffer control blocksf ;+C ;D ; MACRO: CSI$ generates the control block necessary to compress and= ;- validate the command recieved from the user through GML$i t# CSI$ ;Generate at assembly timeA! .EVEN ;As the manual dictatesc4 CSIBLK: .BLKB C.SIZE ;Allocate depending on C.SIZE . ;+  ;B ; MACRO: FDBDF$ generates the file descriptor block for each file9 ; that is open, allocating space for the FCS to use for  ; processing ;$ ; Disk output File Descriptor block ;-B 2 FDBOUT: FDBDF$ ;Generate block for output file@ FDAT$A R.FIX,FD.CR,BUFSIZ ;F00TADATADATADATADATADATADATADATADATAixed length,LF with CR,buffer sizeA FDOP$A OUTLUN,CSIBLK+C.DSDS ;LUN and pointer to file descriptor;3 FDRC$A ,TMPBUF,BUFSIZ ; temp buffer, buffer sized a ;# ; Disk input File Descriptor Blockp i1 FDB.IN: FDBDF$ ;Generate block for input filet@ FDAT$A R.FIX,FD.CR,BUFSIZ ;Fixed length,LF with CR,buffer size@ FDOP$A INLUN,CSIBLK+C.DSDS ;LUN and pointer to file descriptor3 FDRC$A ,TMPBUF,BUFSIZ ; temp buffer, buffer sizeF  ;( ; Terminal output File Descriptor block F2 FDB.TI: FDBDF$ ;Generate block for output file@ FDAT$A R.FIX,FD.CR,BUFSIZ ;Fixed length,LF with CR,buffer size@ FDOP$A TILUN,CSIBLK+C.DSDS ;LUN and pointer to file descriptor3 FDRC$A ,TMPBUF,BUFSIZ ; temp buffer, buffer size  ; ;N ; MACRO: GCMLB$ generates the database for receiving a command from the user fB GCMBLK: GCMLB$ 0,FLM,CMDBUF,TILUN,,CMDSIZ ;Argument list to macro t % .SBTTL Symbol and Memory definitions  f ; ; SYMBOLS ;2 BUFSIZ =128. ;Size of temporary scratch buffer' CMDSIZ =82. ;Size of command buffere. FSRSZ$ 3 ;No more than three files opened INLUN =2 ;LUN for disk input" OUTLUN =3 ;LUN for disk output" TILUN =5 ;LUN for terminal I/O  ; ; MEMORY  f3 CMDBUF: .BLKW CMDSIZ ;The command receive buffera9 TMPBUF: .BLKW BUFSIZ ;Temporary scratch buffer for I/OM  L M .SBTTL Main calling sequences ;+m ; Enter at FILMOV. $ ; This is the main calling routine.: ; Its purpose is to call all other routines in a top down4 ; environment to copy one file to another emulating( ; the system task PIP in that function. ;-I N7 FILMOV: CALL RCVCMD ;Get command string from the useru& CALL OPNFIL ;Go open the input file* MOV #FDB.IN,R1 ;Set pointer to input FDB+ MOV #FDBOUT,R2 ;Set pointer to output FDB.1 MOV (R1)+,(R2)+ ;Set output attributes the same # MOV (R1),(R2) ; as the input filec. CALL RCVFL1 ;Build the output specification) CALL CREFIL ;Go create the output filec ;+l5 ; Loop through these subroutines copying the recordso ; to the output file.( ; If an I/O error occurs execute an IOT ;- I5 DO.IO: MOV #BUFSIZ,R1 ;Length in words of the recorde# MOV #TMPBUF,R2 ;The record buffern. !5$: CLR (R2)+ ;Zero the buffer word by word# SOB R1,5$ ;B till buffer is emptyo ; ; ;/ !7$: CALL REDFIL ;Go read a block of the filem BCC 10$ ;B if you read a block- CMPB #IE.EOF,F.ERR(R0) ;Hope for end of filei( BEQ LSTREC ;B to write the last record# MOV #0,R0 ;Set for some I/O error  IOT ;Trap on error ) !10$: CALL WRTFIL ;Go write out a blockI BR 7$ ;down on next line& ; BR DO.IO ;B to read another record ; ;, ; Write last record and close out the files d. LSTREC: CALL CLSFIL ;Go close all active I/O JMP EXTPRG ;Exit the programf ; ; ; EXIT ; : .SBTTL Retrieve and validate a command line from the user  ;+ ; ; This routine deals with system directives, using the GMC: ; package to accept a command line and the CSI package to* ; validate and compress the command line. ;-: L R: RCVCMD: GCML$ #GCMBLK ;Get a command line from the user' BCC 10$ ;B if command line accepted" MOV #1,R0 ;Get the error in R0 IOT ;Trap on error:I !10$: CSI$1 #CSIBLK,#CMDBUF,#CMDSIZ ;Compress the received user command;1 BCC 20$ ;B if command successfully compressedt MOV #2,R0 ;Set error  IOT ;Trap on error@ !20$: CSI$2 #CSIBLK,INPUT ;Get the input file spec from CMDBUF- BCC 30$ ;B if command semantically correct MOV #3,R0 ;Set error  IOT ;Trap on error0 !30$: RETURN ;Return with cmd line in CMDBUF f ;+h) ; Second part of receive command routinep1 ; Calls CSI$2 a second time returning the output; ; file specification. ;-  I? RCVFL1: CSI$2 #CSIBLK,OUTPUT ;Go get the output specification0 BCC 10$ ;B if all goes wellm# MOV #4,R0 ;Set a flag for debugI IOT ;Trap on error0* !10$: RETURN ;Return with input spec c" .SBTTL Create the new output file ;+n? ; Routine CREFIL using information from the CLM00 O F & macros createsr; ; the file from CMDBUF and also initializes the FDB with ; the macro FDAT$A. ;-m 1 CREFIL: OPEN$W #FDBOUT ;Create the output filee BCC 10$ ;B if sucessfulo( MOV 15,R0 ;Flag for diagnostic error IOT ;Trap on errorc! !10$: RETURN ;Back to callero w. .SBTTL Open already existing file for reading ;+r5 ; This routine is called if the file already exists.c3 ; If the file cannot be opened, the error is a PMDR ;-e E2 OPNFIL: OPEN$R #FDB.IN ;Open file for read only BCC 10$ ;B if successful* MOV #16,R0 ;Flag for diagnostic errors IOT ;Trap on errorE# !10$: RETURN ;Return to callerp% .SBTTL Read data from the input file  ;+R2 ; This routine reads one data buffer and returns. ; The error checking is in the main routine. ;-  n: REDFIL: GET$ #FDB.IN ;Read a buffer from the input file RETURN ;Return to callerx s % .SBTTL Write data to the output filer ;+ 3 ; This routines writes a data buffer to the outputf7 ; file and returns. The error checking is in the main ; routine.a ;-i rK WRTFIL: PUT$ #FDBOUT,,FDB.IN+F.NRBD ;Write out a buffer to the output fileT RETURN ;Return to caller   R" .SBTTL Close any I/O active files ;+d: ; This routine closes all active channels used by FILMOV." ; The program traps on any error. ;-u r/ CLSFIL: CLOSE$ #FDB.IN ;Close the input filee! BCC 10$ ;B if close a successh MOV #11,R0 ;Flag error i IOT ;Trap on errorb0 !10$: CLOSE$ #FDBOUT ;Close the output file! BCC 20$ ;B if close a successu MOV #12,R0 ;Flag error T IOT ;Trap on error;$ !20$: RETURN ;Return to caller   .SBTTL EXIT from the task ;+R+ ; As the .SBTTL says, "EXIT from the task" ; No error return.s ;-a v& EXTPRG: EXIT$S ;Exit to MCR or DCL t s .END FILMOV ;-u r/ CLSFIL: CLOSE$ #FDB.IN ;Close the input filee! BCC 10$ ;B if close a successh MOV #11,R0 ;Flag error i IOT ;Trap on errorb0 !10$: CLO@X 3F tccessu MOV #12,R0 ;Flag error T IOT ;Trap on error;$ !20$: RETURN ;Return to caller   .SBTTL EXIT from the task ;+R+ ; As the .SBTTL says, "EXIT from the task" ; No error return.s ;-a v& EXTPRG: EXIT$S ;Exit to MCR or DCL t s .END FILMOV ;-u r/ CLSFIL: CLOSE$ #FDB.IN ;Close the input filee! BCC 10$ ;B if close a successh MOV #11,R0 ;Flag error i IOT ;Trap on errorb0 !10$: CLOE FLX, or FILEX, is used as a media format interchange program to move< files among Files-11, DOS-11, and RT-11 structured volumes. 9 FLX performs file transfers and format conversions from: ' FROM: DOS-11 TO: Files-11 $ DOS-11 & Files-11 Files-11A DOS-11 # RT-11 # RT-11 RT-11& Files-11 s- The general form of the FLX command line is:m 7 devicespec/switch=infile/switch,...,infilen/switchu . Where:X r8 devicespec takes the form dev:[ufd] and it is the 8 device specification for the FLX output device.  4 infilen is the input file specification(s). 8 switch is one of three types of FLX switches. ; Volume format, transfer mode, and control 1 are the three types of switches.- C For more information on FLX switches, type HELP FLX VOLUMESWITCH, e0 HELP FLX TRANFERSWITCH, HELP FLX CONTROLSWITCH. e2 VOLUMESWITCH D FLX has three volume format switches that specify the format of the8 volume on which the file is stored. These switches are: @ /DO Identifies the volume as a DOS-11 formatted volume B /RS Identifies the volume as a Files-11 formatted volume m@ /RT Identifies the volume as an RT-11 formatted volume B00 TADATADATADATADATADATADATADATADATA Input volumes default to DOS-11 format and output volumes defaultE to Files-11 format. You can change the default by entering /RS or/DO. on a command line by itself.h tE /RS sets the default for input volumes to Files-11 format and outputw to DOS-11 format. .C /DO sets the default for input volumes to DOS-11 format and outputS volumes to Files-11 format. RE For example, to specify the default transfer direction from Files-11R to DOS-11, type: v a FLX>/RS uD To specify the default transfer direction from DOS-11 to Files-11,  type:   FLX>/DO cB If /RT is specified on one side of the command line, the default ! entry for the other side is /RS.  2 TRANSFERSWITCH s@ FLX has three transfer mode switches, one for each type of file8 format. Format conversions can be in either direction, ? between DOS-11 files and Files-11 files or between RT-11 filestA and Files-11 files. Specifying a transfer mode switch determines 4 the format of the output file after the conversion. c These switches are: -B /FA:n[.] The DOS-11 or RT-11 output file is to be formatted ASCII. B /FB:n[.] The DOS-11 or RT-11 output file is to be formatted binary.a e@ /IM:n[.] The transfer is to be in image mode which forces% fixed length records.t nE If you specify n with any of the above switches, fixed length output C records are generated. If n is specified when the output is not a t Files-11 file, n is ignored.s .2 CONTROLSWITCHc C FLX control switches provide control functions useful during file rD transfers. You can specify for example, the number of blocks to be A allocated to an output file or the UFD for an output file. These  switches are: nC /BL:n[.] Specifies the number of contiguous blocks in octalh? or decimal to be allocated to the output file.  eD /BS:n[.] Specifies the block size in bytes for cassette tape output. iD /CO Specifies that the output file is to be contiguous. d= /DE Deletes files from a DOS-11 DECtape or disk/p f@ /DI Causes a directory listing of cassettes or DOS B volumes to be listed in a specified output file.? If no output file is specified, the listing ish( output on the user's terminal. ? /DNS:n Specifies the density of a magnetic tape wherez0 n can be 800, 1600 or 6250 bpi. .D /FC Indicates that FORTRAN carriage control conventions9 are to be used when using FORTRAN files.a o7 /ID Identifies the current version of FLX.  c- /LI Has the same function as DI.e sB /NU:n[.] Used with the /ZE and /RT switches to specify theB number of directory blocks in octal or decimal toE allocate when initializing an RT-11 disk or DECtape.rA The maximum number of blocks is 37(8) or 31(10).   ID /RW Rewinds the magnetic tape before beginning the file transfer. NF /SP Specifies that the converted file is to be spooled by4 the print spooler or queue manager. D /UI Specifies that the output file is to have the same ' UFD as the input file.n tD /VE Specifies that each record written to a cassette is# read and verified.T mF /ZE Initializes cassettes or DOS-11 volumes. Initializing> erases any files already on the device.  a . NF /SP Specifies that the converted file is to be spooled by4 the print spooler or queue manager. D /UI Specifies that the output file is to have the same ' UFD as the input file.n tD /VE Specifies that each record written to a cassette is# read and verified.T mF /ZE Initializes cas00 O F &@X 3I y files already on the device.  a . NF /SP Specifies that the converted file is to be spooled by4 the print spooler or queue manager. D /UI Specifies that the output file is to have the same ' UFD as the input file.n tD /VE Specifies that each record written to a cassette is# read and verified.T mF /ZE Initializes casG FMT, the disk volume formatter utility, allows DB:-, DK:-, DL:-, DM:-,C DP:-, DR:-, and DY:-type devices to be formatted and/or verified F on an RSX-11M/M-PLUS system that supports diagnostic functions. The I disk volumes may be completely formatted, or formatted on an individual H sector or (for DM: disks) individual track basis by means of the manualD mode option. Last-track bad block information on DL:, DM:, and DR:E disks is also taken into account. On RX02 floppy disks, the densityB can be set to either single or double without diagnostic support. ) The general form of the command line is:t e# MCR>FMT ddn:[/switch1.../switch m]R' DCL>MCR FMT ddn:[/switch1.../switch m]i uF The variable dd is the abbreviation for the volume you are formattingG and n is the unit number of the volume. The possible switches follow:m s: /BAD - After the volume is formatted, runs the Bad Block, Locator Utility (BAD), if it is installed.' /DENS - Sets RX02 floppy disk density. 9 /ERL - Sets maximum number of errors allowed on volume.a /MAN - Enters manual mode.2 /NOVE - Inhibits the default volume verification.2 /OVR - Overrides manufacturer's bad sector file.< /VE - Verifies that the volume was successfully formatted (the default switch).t5 /WLT - Rewrites the manufacturer's bad sector file.s2 /@Y - Uses input from an indirect command file. D If an error is encountered, FMT normally retries the operation once! before issuing an error message.i dE You can use FMT with other utilities and CLI commands to introduce a/E disk (in this case, DK1:) to a system, as shown below. The example c: uses MCR commands, but DCL equivalents will work as well. ALL DK1: t FMT DK1:[/sw] f BAD DK1:[/sw] d INI DK1:[label][/sw] w MOU DK1:[label][/sw] s o=For a description of a particular switch, type the following:  HELP FMT switchname,2 VERIFY#VEe2 VE VERIFY D The /VE switch verifies that the format operation was successful by@ reading back the headers and determining that they were written' correctly. This switch is the default.e a( FMT>DR1:/VE !Formats and verifies DR1:2 MANUAL#MAN2 MAN. MANUAL DR1:/MAN/VE !Manually formats and verifies DR1:e i+ ** WARNING - Data will be lost on DR1: **y r Continue [Y OR N]? Y Entering manual modee Cylinder = 12 Track = 2s Sector = 1d u Operation completeE F6 Note that /MAN cannot be used with DY:-type devices. 2 OVRE The /OVR switch overrides the Manufacturer's Bad Sector File on DM:-cF and DR:-type disk volumes. Usually, when writing the headers on suchE disks, any header marked bad in the MDBSF will have bad sector flagsFC set. Then when the verification process discovers a bad sector, a H message is printed. The /OVR switch inhibits this reporting operation. l. FMT>DR1:/VE/OVR !Overrides the MDBSF on DR1:2 @YI The /@Y switch uses input from an indirect command file. No operationaleG messages or warnings are printed, and no user intervention is possiblet until FMT completes.D t. FMT must be installed before you can use /@Y. sC You are cautioned against using this switch because volumes can bec( destroyed by an incorrect command line. = FMT>DR1:/@Y !Uses command lines from indirect command00TADATADATADATADATADATADATADATADATA fileO0 FMT>@FMTIND !Invokes the indirect command file T2 BADE; The /BAD switch spawns the Bad Block Locator Utility (BAD)sD after the format operation is complete. If BAD is not installed, aH warning message is printed. Note that /BAD can only be used on systems that support spawned tasks. l- FMT>DR1:/BAD !Spawns the BAD utilityn2 WLTnF The /WLT switch rewrites the manufacturer's bad sector file after the@ format operation has completed. The MDBSF will contain entriesE for each new sector that is found to be bad. The header of each bad4 sector is also rewritten to flag the sector as bad. l? The /WLT switch must be specified when using FMT on DL: disks.o n@ The switch takes as an argument a decimal value that is used as the pack serial number. p/ FMT>DR1:/WLT=12345 !Rewrites the MDBSF on DR1:a2 ERL C The /ERL switch sets the maximum error limit for the volume. WhendA this error limit is reached, a message is printed and the format D operation is terminated. The default limit is 256(10) errors. Any= value greater than 0 and less than or equal to 256 is valid.e r9 FMT>DR1:/ERL=150. !Sets the maximum error count for DR1:  !to 150(10)o 2 DENSITYs#DENSa2 DENS DENSITYaA The /DENS switch sets the RX02 floppy disk density to either lowDD (single) or high (double). The default density is low. The switchH can also use SINGLE and DOUBLE as options. The following command lines are acceptable: p0 FMT>DYn:/DENS=LOW !Sets to low (single) density3 FMT>DYn:/DENS=SINGLE !Sets to single (low) densitye2 FMT>DYn:/DENS=HIGH !Sets to high (double) density4 FMT>DYn:/DENS=DOUBLE !Sets to double (high) density 2 -VERIFY #NOVERIFY(2 NOVE #NOVERIFYD2 -VE #NOVERIFYS 2 NOVERIFY -VERIFY  NOVE -VElA The /NOVE switch inhibits the operation performed by the defaultd /VERIFY switch. .4 FMT>DR1:/NOVE !Inhibits verification of DR1: after !it has been formattedines are acceptable: p0 FMT>DYn:/DENS=LOW !Sets to low (single) density3@X 3PNS=HIGH !Sets to high (double) density4 FMT>DYn:/DENS=DOUBLE !Sets to double (high) density 2 -VERIFY #NOVERIFY(2 NOVE #NOVERIFYD2 -VE #NOVERIFYS 2 NOVERIFY -VERIFY  NOVE -VElA The /NOVE switch inhibits the operation performed by the defaultd /VERIFY switch. .4 FMT>DR1:/NOVE !Inhibits verification of DR1: after !it has been formattedines are acceptable: p0 FMT>DYn:/DENS=LOW !Sets to low (single) density3? The Indirect Command Processor allows CLI command lines to be J placed in a file. The file is then executed as though the command lines = were entered from a terminal. Indirect also supports other + numeric and string manipulation commands. E A summary of commands and special symbols can be obtained by typing   HELP INDIRECT SUMMARY ; Individual command descriptions can be obtained by typing   HELP INDIRECT commandname 7 Operators (relational and arithmetic) are described at e HELP INDIRECT OPERATORS l6 Special symbol descriptions can be obtained by typing e HELP INDIRECT symbolname < NOTE: symbolname does not include the angle brackets. uK A list of Indirect error messages, including their severity class numbers,  can be obtained by typing n HELP INDIRECT ERROR 2 OPERATORSNB A numeric symbol or constant can be combined with another numericI symbol or constant by a logical or arithmetic operator to form a numericd3 expression. Arithmetic and logical operators are:E O + Add - Subtract  * Multiplya / Divide ! Logical inclusive OR  & Logical AND # Logical NOT << No embedded blanks or tabs are permitted between operators. l The string operator s + (Concatenation) dI can be used to form longer strings from a collection of shorter strings.c t The substring operatora h [start:end]m I describes a substring range of a given string, for example, STRING[x:y],sJ where x is th00$ O F &e first position of the substring and y is the last. If the2 total length of the string is unknown, the syntax c STRING[5:*]  LC can be used to express "from position 5 to the end of the string."e t% Relational operators are as follows:  r EQ or = Equal to NE or <> Not equal tos# GE or >= Greater than or equal toe LE or <= Less than or equal to GT or > Greater thanh LT or < Less than s 2 SUMMARYb@ Information about the following Indirect commands is available: i. .ASK .ERASE .PAUSE .IFNINS .TESTDEVICE+ .ASKN .EXIT .READ .IFNLOA .TESTFILE 1 .ASKS .FORM .RETURN .IFLOA .TESTPARTITIONn' .BEGIN .GOSUB .IFDF .SETD .WAITh& .CHAIN .GOTO .IFNDF .SETF .XQT% .CLOSE .IF .IFT .SETL .labelr .DATA .INC .IFF .SETN .DEC .OPEN .IFACT .SETOr# .DELAY .OPENA .IFNACT .SETSq' .DISABLE .OPENR .IFENABLED .SETT ' .ENABLE .ONERR .IFDISABLED .STOPn .END .PARSE .IFINS .TEST> Information about the following special symbols is available: E' ACCOUN ERROR LIBUIC PRIVIL SYTYP F% ALPHAN ERRSEV LOCAL RAD50 SYUNITA' ALTMOD ERSEEN LOGDEV SEVERE TICLPPF& BASLIN ESCAPE LOGUIC SPACE TICWID& CLI EXSTAT MAPPED STRLEN TISPED% CONFIG EXSTRI MEMSIZ SUCCES TIME $ DATE FALSE NETUIC SYDISK TIMOUT' DEFAUL FILATR NETNOD SYMTYP TITYPEq% DIRECT FILERR NXTSYM SYSDEV TRUET EOF FILSPC NOSTAT SYSID UIC& ERRCTL FORATT NUMBER SYSTEM VERSN% ERRNUM FMASK OCTAL SYSUIC WARNINg* Reserved symbols created by Indirect are: R0 P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, COMMAN A; Other Indirect operations for which help is available are:I E4 SWITCHES SUBSTITUTION of symbols PARAMETER passing. LIBRARY procedures FORMATTING for readability ADVANCED techniques E2 .ASK#ASK2 ASKDL Defines or redefines a logical symbol and assigns it a true or false value. E Format: O .ASK [def:tmt] sym txt  R where:E SD def - Optional default value to be assigned to the symbol if a line> terminator is typed in response to the question or if a? timeout occurs. The default can be or or another logical variable. SC tmt - Optional decimal timeout count describing the length of timeGE before the default value is used. The format of the parametern9 is the same as that used for the .DELAY directive.a A sym - Logical symbol name consisting of 1 through 6 alphanumericS characters. l7 txt - Text to be displayed on the output display line.r a Example:d # .ASK [:10S] L1 Logical value  t produces. h" >* Logical value [Y/N D:Y T:10S]: 4 See also HELP INDIRECT ASKN and HELP INDIRECT ASKS.2 .ASKNe#ASKNn2 ASKNP Defines or redefines a numeric symbol and assigns it an octal or decimal value.  Format: ! .ASKN [low:high:def:tmt] sym txth D where:c eD low:high - Numeric values that define the range for the response.: The input or default value must be within the range to be valid. e F def - Optional default value to be assigned to the symbol if a> line terminator is typed in response to the question or9 if a timeout occurs. The default can be a numeric , expression or another numeric symbol. aB tmt - Optional decimal timeout count describing the length< of time before the default value is used. The format? of the parameter is the same as that used for the .DELAYt directive.u bH sym - Logical symbol name consisting of 1 through 6 alphanumeric characters. > txt - Text to be displayed on the output display line. t Example:  # .ASKN [1:3:2:10S] N1 Numeric valueu c producesi & >* Numeric value [O R:1-3 D:2 T:10S]:3 See also HELP INDIRECT ASK and HELP INDIRECT ASKS.d r2 .ASKS #ASKS2 ASKSO Defines or redefines a string symbol and assigns it an ASCII text string up tot 80(10) bytes in length. . Format: ! .ASKS [low:high:d00,TADATADATADATADATADATADATADATADATAef:tmt] sym txti  where:m oD low:high - Numeric values that define the range for the response.> The length of the input or default value must be within the range to be valid.] iD def - Optional default value to be assigned to the symbol if= a line terminator is typed in response to the question ; or if a timeout occurs. The default can be a string + expression or another string symbol.8 0E tmt - Optional decimal timeout count describing the length ofi< time before the default value is used. The format of< the parameter is the same as that used for the .DELAY directive.b iH sym - Logical symbol name consisting of 1 through 6 alphanumeric characters. e> txt - Text to be displayed on the output display line. o Example:o  .SETS DEF "abc"$ .ASKS [1:3:DEF:10S] S1 String value producese o) >* String value [S R:1-3 D:"abc" T:10S]: 3 See also HELP INDIRECT ASKN and HELP INDIRECT ASK.h2 .BEGIN#BEGIN2 BEGINd) Delimits the start of a BEGIN-END block.  e Format:  .BEGINa hI Note that the .BEGIN command must appear on a line by itself. It cannotlN be part of an .IFx command line. A BEGIN-END block defines a set of IndirectK commands that must be entered and exited as a unit. Local symbols definedEI outside the block are accessible, but those created within the block are>; deleted when Indirect exits from the block (reaches .END).D C2 .CHAIN#CHAIN2 CHAINKH The .CHAIN command continues execution from a new command file. UnlikeG the @filename construction, the current file context is not preserved.pG All local symbols are erased (unless the /LO switch is specified) and AI execution continues at the first line of the file specified with .CHAIN.a e Examples: . .CHAIN SYSGEN2.CMDe .CHAIN PROCLIB/LB:PART22 .CLOSE#CLOSE2 CLOSEtC Closes a secondary data file. No error is returned if the file is  already closed.  Format: A .CLOSE #n T8 where n is the channel number of the file to be closed. .2 .DATA#DATAi2 DATAA Specifies a single line of data to be output to a secondary filel) previously opened by an .OPEN directive.i p Example:d - .DATA #n This line will go into data file ni sA One or more blanks or tabs can follow the .DATA command. If the.M first character is a blank, it is removed and not placed in the output file.lG If the first character is a tab, it is transferred to the output file. 2 .END#END2 ENDeL Delimits the end of a BEGIN-END block. All local symbols defined since the0 last .BEGIN command are erased by this command. a Format: l .ENDe uE Note that an .END command must appear on a line by itself. It cannot ! be part of an .IFx command line. e2 .EXITb#EXITr2 EXITA Exits a BEGIN-END block or a command file, optionally specifyingiD exit status. The exit status value can be any 16-bit encoded value.C This value will be available in the next outer command file as theDC value of or to the task that spawned Indirect as the exitd" status value (RSX-11M-PLUS only). a Format: t .EXIT [n] 7 where n is the numeric expression for the exit status.  e2 .FORMi#FORMt2 FORMH The .FORM command is an optional feature of Indirect, supported only onA nonprivileged versions running under RSX-11M-PLUS. You must haveiK a license and have installed the FMS-11/RSX V1.0 kit. Familiarize yourself C with the documentation before attempting to use the .FORM command.e J The FMS-11 support included when the nonprivileged Indirect task is built8 incorporates support for the VT100 and VT52 terminals.  eJ The syntax of the .FORM command parallels the format of the MACRO-11 callE interface to FMS-11. You are encouraged to read the FMS-11/RSX V1.0 oG Programmers Guide, particularly the chapters on form driver operation i and the MACRO-11 interface. h 3 COMMANDSI In the following summaries, square brackets enclose optional arguments.  F004 O F &ormal parameters are:e G LINENUM The screen line number where form display is to begin.iL RETTRM The name of a numeric variable to contain the code for the terminator typed by the user.H FILENAME The name of a string variable or string constant naming5 the file in which the form definitions are stored.l= RETNAM The name of the field completed by the user. : RETINX The index of the field completed by the user.= TERMINATOR The code for the terminator to be processed.aG VALUE A string variable or constant to be placed in the indicatedo field. J FLDNAME The name of a field defined in the currently displayed form.C INDEX In an indexed field, the index referencing the specificn field being addressed.nH RETVAL The name of a string variable into which the returned value will be placed. e e> String values supplied TO the .FORM command can be expressed I as a constant enclosed in quotation marks or as the name of a previouslyp' defined string variable. For example:  c .FORM OPN,"FMSDEM.FLB"h anda .SETS LIBR "FMSDEM.FLB" .FORM OPN,LIBR  i are equivalent. rE String and numeric values returned FROM the .FORM command are passedrH as though a .SETS or .SETN command were being executed. This means thatH the name of the variable to receive the value must be supplied and thatI it must either have not been defined previously or is now defined as theo2 appropriate string or numeric type. For example: p .FORM GET,"CHOICE",,,,FLDVALi eI FLDVAL is defined or redefined as required and contains the string typed.F by the user to fill the field named CHOICE on the currently displayed form. e+ The general syntax of the .FORM command isu a .FORM FNC,p1,p2,....pne bF where FNC is a three-letter code indicating which FMS operation is toM be performed. These codes are a subset of the codes used in the MACRO-11/FMSs$ interface and are summarized below. eL A demonstration procedure is included in LB:[1,2]INDSYS.CLB. This procedureD library is packaged on the distribution kit with the privileged MCR task sources. Please refer to e HELP INDIRECT INDSYSc e; for installation information. To execute the demonstrationc, procedure, type the following command line: e# @LB:[1,2]INDSYS.CLB/LB:FMSDEMi wD After the terminal type is verified, a copy of the forms library isF placed in your directory. The procedure is identical to that providedI in MACRO-11 form on the FMS/RSX V1.0 kit. Refer to the FMS documentationo/ for a fuller description of the demonstration.k w Commands: g" CSH -- Clear screen and show form  .FORM CSH,FLDNAME[,LINENUM] f SHO -- Show formo t .FORM SHO,FLDNAME[,LINENUM] c% GET -- Get value for specified fieldd n> .FORM GET,FLDNAME[,INDEX[,RETNAM[,RETINX[,RETVAL[,RETTRM]]]]] a ANY -- Return any field value o. .FORM ANY[,RETNAM[,RETINX[,RETVAL[,RETTRM]]]] e ALL -- Return all fieldsr d .FORM ALL[,RETVAL[,RETTRM]] R DAT -- Get data from form o% .FORM DAT,[FLDNAME],[INDEX],[RETVAL]  t) GSC -- Get current line of scrolled areaH " .FORM GSC,FLDNAME,RETVAL[,RETTRM] C CLS -- Close forms libraryO .FORM CLS  OPN -- Open forms library c .FORM OPN,FILENAMEo p, PSC -- Put to current line of scrolled area T .FORM PSC,FLDNAME,VALUE ] TRM -- Process field terminator e; .FORM TRM,[FLDNAME],[VALUE],TERMINATOR [,RETNAM [,RETINX]]L  PUT -- Put to specified field , .FORM PUT,FLDNAME,[INDEX],VALUE a PAL -- Put all fields [ .FORM PAL [,VALUE]V % LST -- Output to last line of screenl a .FORM LST [,VALUE]F A RAL -- Return all fieldsS  .FORM RAL,VALUE ( RTN -- Return value for specified field y! .FORM RTN,FLDNAME,[INDEX],RETVALC # SPF/SPN -- Supervisor mode control .FORM SPF .FORM SPN ] 3 SUMMARYr .FORM CSH,FLDNAME[,LINENUM] .FORM SHO,FLDNAME[,LINENUM]> .FORM GET,FLDNAME[,INDEX[,RETNAM[,RETINX[,RETVAL[,RETTRM]]]]]. .FORM ANY[,RETNAM[,RETINX[,RETVAL[,RE00<TADATADATADATADATADATADATADATADATATTRM]]]] .FORM ALL[,RETVAL[,RETTRM]]% .FORM DAT,[FLDNAME],[INDEX],[RETVAL]a" .FORM GSC,FLDNAME,RETVAL[,RETTRM] .FORM CLS .FORM OPN,FILENAMEf .FORM PSC,FLDNAME,VALUE; .FORM TRM,[FLDNAME],[VALUE],TERMINATOR [,RETNAM [,RETINX]]R .FORM PUT,FLDNAME,[INDEX],VALUE .FORM PAL [,VALUE]m .FORM LST [,VALUE]O .FORM RAL,VALUE! .FORM RTN,FLDNAME,[INDEX],RETVALE .FORM SPF .FORM SPN A 2 .DISABLE#ENABLEG 2 DISABLE,#ENABLET 2 .ENABLE[#ENABLER2 ENABLEI With the .ENABLE and .DISABLE commands, several Indirect operating modesM% can be controlled. These modes are:L  Default[/ Mode Setting Scope Default EffectM; ---- ------- ----- ------- ------, RG ATTACH Enabled G Indirect attaches to TI: for comment lines.LF CLI Enabled L Commands not processed by Indirect ) are passed to the default CLI for G$ the terminal. Synonym of MCR.I CONTROL-Z Disabled G CTRL/Z in response to .ASKx exits Indirect. A DECIMAL Disabled G Numeric symbols are created as OCTAL. ; DELETE Disabled L The current command file is notE deleted at end.I DETACH Enabled G Indirect detaches from TI: for command lines. E DISPLAY Enabled G Indirect displays the current fields for n .ASKx and "@ ". A ESCAPE Disabled G ESCAPE or ALTMODE is legal for .ASKx  response.G ESCAPE-SEQ Disabled G When Indirect attaches, escape-sequence A" recognition is not enabled.D FMS Read-only G If enabled, the .FORM command is supported  (RSX-11M-PLUS only).nE FULL-DUPLEX Read-only G If enabled, the full-duplex terminal i driver is available.mE GLOBAL Enabled L Symbols of the form $xxxx are placed in a  global symbol table.dF LOWERCASE Enabled L Indirect is not sensitive to the case of commands or strings.E@ MCR Enabled L Commands not processed by Indirect are 2 passed to the default CLI for the terminal. Synonym for CLI.,F QUIET Disabled L Comments and CLI commands are displayed on  the terminal.L SUBSTITUTION Disabled L String substitution is not performed before command line evaluation.tF TIMEOUT Enabled G The timeout parameter of .ASKx commands is processed. B TRACE Disabled G Commands processed by Indirect are not ! displayed on the terminal.dD TRUNCATE Disabled G Truncate errors on a .READ command are  not ignored. G DATA Disabled L Input lines are written to an open data file.a= OVERFLOW Disabled L Allows signed numeric operations * that would normally cause under- or overflow errors.l 2 .DEC#DEC2 DECT0 Decrement the value of a numeric symbol by one. m Format example: e .DEC JT E2 .DELAY#DELAY2 DELAYd@ Delay the execution of an indirect command file for a specifiedH period of time. The argument is a decimal number of time units followedF by the character H, M, S, or T (for hours, minutes, seconds, or ticks respectively).i a Format example:  .DELAY 10S ! Delay 10 secondse i2 .ERASE#ERASE2 ERASEm .ERASE GLOBAL  2 Deletes all global symbols from the symbol table. c .ERASE LOCAL  7 Deletes all local symbols defined in the current block  from the symbol table. E .ERASE SYMBOL global-name n< Erases the single symbol global-name from the global symbol table.s d2 .GOTOm#GOTOt2 GOTO Branches to a label.r e Format example: h .GOTO ERRORs .EXIT 1t& .ERROR: ; Warning, error encountered. :> The target label of a .GOTO command inside a BEGIN-END block 6 must be on the same block level as the .GOTO command.2 .GOSUB#GOSUB2 GOSUBH Saves the location of the next Indirect command and branches to a labelA identifying a subroutine. Upon execution of a .RETURN command, EG control returns to the next command line following the .GOSUB command00D O F &.G Any parameters to the right of the label and to the left of a comment hJ are transferred to the local symbol COMMAN. The value of COMMAN can then , be parsed to obtain formal call parameters. - Format examples:e .GOSUB DCBk4 .GOSUB BLDTBL DB,2,176450,210 !Build device table J For the second example, the following command line will separate the call parameters: b- .PARSE COMMAN "," DEVICE COUNT CSRADR VECADRE c2 .IFr#IFs2 IFJ .IF - Determines whether or not a symbol satisfies A one of several possible conditions.t hH .IFACT/.IFNACT - Determines whether or not a task is active. rK .IFDF/.IFNDF - Determines whether or not a symbol is defined.L ,J .IFINS/.IFNINS - Determines whether or not a task is installed+ in the system.m rJ .IFLOA/.IFNLOA - Determines whether or not a device driver is  loaded.  I .IFT/.IFF - Determines whether a logical symbol is true  or false.e aJ .IFENABLED/.IFDISABLED - Determines whether an Indirect operating mode; is enabled or disabled, or whether an environmentalDB condition is met. Legal options are: * MCR, TRACE, DELETE, CONTROL-Z, GLOBAL,+ SUBSTITUTION, LOWERCASE, ESCAPE, QUIET,h/ TIMEOUT, FULL-DUPLEX, ESCAPE-SEQ, TRUNCATE,rJ POTASK, DISPLAY, ATTACH, DETACH, OVERFLOW,. DECIMAL, LOCAL l Examples: ' .IF ADDRES = "14 GARBLE ROAD" .GOTO 10E .IFNACT PIP pip /li .IFDF DLG ; Long dialog+ .IFNINS PIP ins $pip/inc=20000/task=...piph .IFNLOA MM: loa mm: .IFT START .GOTO START  .IFDISABLED QUIET PRI *.LST2 .INC#INC2 INC,0 Increment the value of a numeric symbol by one.  Format example: I .INC J  E 2 .LABEL:U#LABEL:A2 LABEL: labelname: = Assigns a six-character name to a line in the command file O2 so that the line can be referenced. For example: ) .GOTO CLNUP ! Jump to clean-up routineA .O .E( .CLNUP: ! Beginning of clean-up code lH Labels that are placed alone on command lines are called Direct Access.L Indirect remembers the exact location of these labels, and they can be used9 to decrease search time for .GOTO and .GOSUB directives.a x2 .ONERR#ONERR2 ONERR @ Defines a label to branch to upon detecting an error condition.F The scope of the label is limited to the currently open command file.@ If an error condition occurs inside a BEGIN-END block, the last .ONERR label specified is used. i Format example: e5 .ONERR ERRSRV ! Define the label for a .GOTO ERRSRVe# ! ...operation in case of errore rK Once an error condition has occurred, another .ONERR label must be definedc to reenable error processing. v2 .OPEN#OPENR2 OPEN! .OPEN [#channel_number] filenamen t6 Creates an output file on the indicated channel.O .OPEN, .OPENA, and .OPENR return the FCS-11 status code for the operationr% in the special symbol ..2 .OPENA#OPENA2 OPENA.# .OPENA [#channel_number] filenameR VE If the indicated file exists, opens it for an append operation. J If the file does not exist, a new file is created in the same manner as for .OPEN.n2 .OPENR#OPENR2 OPENR " .OPENR [#channel_number] filename nI Opens the indicated file for a read operation by means of the .READ. command. N Format examples:n e .OPEN DATA.DAT .OPENR #3 DB4:DATALOG.LST t 2 .PARSE#PARSE2 PARSE? Strings can be parsed into substrings with the .PARSE command.! The command line is in the form:s : .PARSE ...  e= The string is decomposed into substrings as specified by thePG control string. The substrings are stored in the specified variables.= The first character of the control string delimits the firstsC substring, the second character of the control stri00LTADATADATADATADATADATADATADATADATAng delimits theAG second substring, and so on. The last character of the control stringS? is repeated if the number of destination variables exceeds theT length of the control string. P If there are more variables specified than substrings, the additional variablesH are set to be null strings. If there are fewer variables than parsableJ substrings, the last variable contains the unparsed fragment of .G The symbol contains the actual number of substrings processedh& (including explicit null substrings). s1 For an example, type HELP INDIRECT PARSE EXAMPLEl 3 EXAMPLE  e0 An example of the use of the .PARSE command is: h' .PARSE COMMAN " ," FILE A1 A2 A3 A4 A5I hF Given that COMMAN contains "TESTFILE IND,MCR,,LOA", the results would be: s FILE= TESTFILEi A1= IND A2= MCR A3= Nulll A4= LOA A5= Nullb i would contain a 5. h> Note that the explicit null substring is counted in . 2 .PAUSE#PAUSE2 PAUSE H Stops Indirect from processing to allow user action. Indirect displays> the command line you must enter to resume Indirect operation. t Format:  .PAUSEm2 .READh#READS2 READ> Files can be opened and read by using the following commands: L5 .OPENR [#file] Open a file for reading.S LB .READ [#file] Read next record into specified string variable.i - After a .READ, true if end-of-filei encountered, false if not. E2 Contains the FCS-11 error code if an) error ocurred on the .READ operation.t c a6 For more information, type HELP INDIRECT READ DETAILS0 For an example, type HELP INDIRECT READ EXAMPLE 3 DETAILSbF To read from a data file, the file must first be opened successfully,D using the .OPENR command. Records can then be read using the .READG command until either is set to true or returns an errorAE code. When processing is complete, the file should be closed, using a .CLOSE command. tI The .OPENR command has the same format as the .OPEN and .OPENA commands,F and also sets the special variables , , and . ,= The .READ command is similar in format to the .DATA command, F except that, instead of having as its argument the text to be writtenE out to a file, the argument is a string variable. The entire recorde? is written into the string variable. If an error occurs while C reading a file, the variable is unchanged from its previous state.L < The variable is set by the .READ command. This means; specifically that its state is unknown following an .OPENRlB command. If an end-of-file has occurred, both and % are set to indicate the end-of-file.e p 3 EXAMPLEt< The following indirect command file routine lists a file on the terminal: t .OPENR FILEr .IF NE 1 .GOTO ERRORr e .LOOP: .READ A  .IFT .GOTO DONEu .IF NE 1 .GOTO ERRORv ; 'A' .GOTO LOOP  .DONE: .CLOSE L 2 .RETURN<#RETURNa2 RETURN= Effects an exit from a subroutine and returns to the commandeE line immediately following the corresponding .GOSUB subroutine call.r , Format: n .RETURN a2 .STOP #STOPe2 STOP@ Immediately stops command file execution, optionally specifying' the exit status for the Indirect task.t J The .STOP command is synonymous with the logical end-of-file command (/). O Format example:  .STOP 1 2 .SET#SET2 SET" .SETN variable numeric-expression .SETD variableT .SETO variableE c@ Define or redefine a numeric symbol and assign it a specific< numeric value. The .SETO and .SETD directives change theF default radix of the variable to be octal or decimal respectively. o! .SETS variable string-expressionl pA Defines or redefines a string symbol and assigns the symbol ac* specific ASCII-character string value. l .SETT variableO .SETF variable:" .SETL variable logical-expression ? Define or redefine a logical symbol and assign the symbol ar00T O F & true or false value. e Examples: s .SETN NUM COUNT*2  .SETS ADDRES "14 GARBLE ROAD" .SETT MALEE .SETL FLAG FLAG!NEWERR2 .TEST #TESTf2 TESTD The .TEST command is used to determine the symbol type and return aE type code in . If the symbol is a string, the command testst1 the length of the string or locates a substring.a . Format examples:l .TEST ADDRES:@ .IF GT 20. GOTO TOO BIG ; Length of response too long gE .TEST ADDRES "STREET" ! Look for the string "STREET" in the stringa ! ...contained in ADDRESS.C .IF = 0 .GOTO NOTFND ! = the character positionR# ! where "STREET" begins.. TE If the variable being tested is a string, then the following symbolsi5 are set to reflect characteristics about the string:t % , , , s tM If the variable being tested is numeric and octal, then the following symbolO$ is set to reflect the symbol radix:   " See also HELP INDIRECT TESTDEVICE TESTPARTITION TESTFILEc 2 .TESTDEVICES #TESTDEVICEL 2 TESTDEVICE- Allows a command file to acquire information D about any device in the system. The returned data, including error ; indication, is found as a string in . For example:  r .TESTDEVICE MP: @ This command obtains information about the indicated device andH returns a string in the string symbol . The various fields canG be isolated with the .PARSE or .TEST substring directives. The stringR is in the following format: - DB3:,140210,4405,31276,1000,atr,atr,...,atr,  T where:A+ DB3: is the translated device name for MP: o= The next four parameters are the four device-characteristics  words in octal notationa rD The characters atr are various device attributes from the following list:m o3 NSD "No such device" is configured in this systemn! LOD The device driver is loadeda% UNL The device driver is not loaded  ONL The device is on-linee OFL The device is off-line5 MTD The device is a mountable volume and is mounteda3 NMT The device is not mountable or is not mountede1 FOR The device is mountable and mounted foreignr8 NFO The device is not mountable or not mounted foreign# PUB The device is a public device ' NPU The device is not a public devicei, ATT The device is attached to another task5 ATU The device is attached to this copy of Indirect NAT The device is not attached1 ALO The device is allocated to another terminalF. ALU The device is allocated to this terminal! NAL The device is not allocated   See also HELP INDIRECT TEST TESTPARTITION TESTFILEi2 .TESTPARTITION#TESTPARTITION2 TESTPARTITIONeC Allows a command procedure to obtain information about the currentcD partition or any other partition in the system. It can be used to H verify that a partition is of sufficient size before an INSTALL commandH is issued or that it is present before special systems are loaded. The  syntax of the directive is: e .TESTPARTITION partition-name H where partition-name is any one- to six-character legal partition name.F If the character "*" is found, then it is assumed the reference is toG the same partition in which this version of Indirect is executing. Ther returned data is in the form: tA partition-name,base in 32-word units,size in 32-word units,type,  s) If the partition is not found, the errori s ,,,NSP, i/ (No such partition) is returned. For example:h  .TESTPARTITION GENi ;'' T might show: o ;GEN,1500,2303,SYS, iJ The partition type is SYS for system-controlled, USR for user-controlled,! or NSP for an unknown partition.t r r See also HELP INDIRECT TEST TESTDEVICE TESTFILEd 2 .TESTFILEi #TESTFILEr 2 TESTFILEN Determines if a specific file exists, or performs the translation of assigned- devices. The format of the command line is:h r .TESTFILE filespeci (D The output of the command is contained in the and J special s00\TADATADATADATADATADATADATADATADATAymbols. returns the fully qualified file specificationF and returns the FCS status code from the look-up. (For more@ information on these special symbols, type HELP INDIRECT FILE.) C If no file name is included in the file specification, only deviceD; translation is performed. If a file name is included, theiJ specified file is searched for and the fully qualified file specification is returned in .u f; For several examples, type HELP INDIRECT TESTFILE EXAMPLESi s See also HELP INDIRECT TEST TESTPARTITION TESTDEVICEn 3 EXAMPLESB An example of the use of the .TESTFILE command for logical device translation:p a .TESTFILE TI: P Returns: = 1  = TT10:.DAT;0  E An example of the use of the .TESTFILE command for file information:  e .TESTFILE MP:IND.MAPe i! If the file exists: = 1l$ = DR1:[101,300]IND.MAP;6 n& If not: = 346 (230 decimal)$ = DR1:[101,300]IND.MAP;0 i2 FILEF After a .TESTFILE, .OPEN, .OPENA, .OPENR, or .DATA operation, the two4 special symbols and are returned. o> is a string symbol that contains the fully qualified file specification. 7 is a decimal numeric symbol that contains theF= status code resulting from the previous operation. The code will be one of the following:  1. Operation was successful.D PJ negative word Operation failed; code is an operating-system error code. ME postitive word Operation failed; code is a file-system error code.p but negativeo lower bytem sF For example, the error code -1. means "Insufficient dynamic storage,"0 while 230(-26. as a byte) means "No such file." .8 For a complete listing of all error codes, see the I/O Operations manual.s i2 .WAITh#WAITo2 WAITL Waits for a specified task to finish executing or to get exit status from aD previously completed task that was started with the .XQT directive. t Format examples: s .WAIT PAYROLp. .WAIT PIP ! Wait for the copy of PIP running% ! ...on this terminal to completeF2 .XQT#XQT2 XQToK Initiates a task, passes a command line to it, and then continues indirects command file processing.a m Format example: e .XQT MAC TEST,TEST=TEST eI In this case, use the .WAIT MAC command line to verify that the MAC task  has completed and exited.2 ACCOUNI is a string symbol that contains certain accounting informationvL from the user's RSX-11M-PLUS accounting block. On RSX-11M (or if accountingM is not running on M-PLUS), this symbol returns a series of commas with null o: entries. The string returned is in the following format: iG User_name,Session_id,Account_number,CPU,DIR,QIO,TAS,Active_tasks,Q AK User_name The first 14. characters of the user name as it appears = in the system account file followed by the first initialCJ Session_id The three-letter session-ID code followed by the unique login numberI Account_number The user's account number as it appears in the system  account fileo- CPU CPU ticks used since logind= DIR Total system directives issued since loginc: QIO Total QIO directives issued since login. TAS Total tasks run since login0 Active_tasks Current count of active tasks l? The individual fields can be isolated with the .PARSE command:e o; .PARSE "," NAME SID ACNT CPU DIR QIO TAS ACT JUNKA uJ Note that since double precision arithmetic is not available in Indirect,G these count values cannot be converted to numeric form and manipulatedd in arithemetic expressions. 2 ALPHANL is a logical symbol set to TRUE if last response to an .ASKS queryH was an alphanumeric string; else FALSE. is also set by a .TEST command.o c2 ALTMODG is a logical symbol set to TRUE if last question was answeredo' with an ALTmode or ESCape; else FALSE.D Q2 BASLINI is a logical symbol set to TRUE if the current operating systemnC is a baseline configuration. This option is used by DIGITAL systemnD generation procedures to determine what resources are available for the SYSGEN process.2 CLI A is a string symbol set to MCR, DCL, or another 1- through sH 6-character CLI name, depending on the current command line interpreter for the terminal. 2 CONFIGH is a string symbol that contains the build-time parameters and4 values for the current running version of Indirect. 2 DATEH is a string symbol set to the current date. The date is in the  format dd-mmm-yy. g2 DEFAULL is a logical symbol set to TRUE if the answer to the last question was defaulted; else FALSE.g m2 DIRECT? is a string symbol set to the null directory ([]) on iA RSX-11M systems. On systems with named directory support, this 6 symbol contains the current default directory string.2 EOFmI is a logical symbol set to TRUE if the last .READ command resultedJ in reading past the end of the file. If you type a CTRL/Z in response toH an .ASKx command and Control-Z mode is .ENABLEd, then is also set to TRUE.t a Format example: s .READ #3 nxtlin .IFT .GOTO END  E2 ERRCTLD is a numeric symbol that controls Indirect processing uponF encountering an error. It is treated as an 8-bit mask with the firstB 7 bits set to indicate that the user's .ONERR target routine willC process that class of error. If the class of error is higher thann; the value of the first 7 bits, Indirect exits immediately.  F The eighth bit (the sign bit or 200 octal) is used to control whetherD Indirect will print any indication of an error. If the bit is set,# no error information is printed. s nE The initial default value for is 1, which implies that onlyeM class 1 errors can be handled with an .ONERR address and that error messagesh will be printed.R rJ You are cautioned about indiscriminate use of this mask because debuggingF a command file becomes very difficult. Refer to HELP INDIRECT ERRORS> for a list of error messages and their assigned class values. lE If you attempt to trap errors other than default class 1, note that iH processing cannot continue in most cases. The error service routine isL limited to a fatal error message and .EXIT. The internal state of Indirect+ is unknown in all but class 1 error cases.e 2 ERRNUMH After processing an error, Indirect places in the error numberJ associated with the error. This value can be used for error-type-specificE processing in an .ONERR routine. See HELP INDIRECT ERRORS for a liste. of error messages and their assigned numbers. e2 SEVERE#ERROR 2 SUCCES#ERROR2 WARNIN#ERROR2 ERRORaH The five symbols below are defined for determining the exit status of a command. Their values are: i = 0w = 1a = 2s = 4M = 17 K Note that a user or program can encode more than just the low-order 3 bitseH of the exit status. If this is the case, a comparison in the following form will not always succeed: O% .IF = .GOTO CONTINt rJ In this case, the appropriate bits must be masked in order to isolate theI reserved success/fail status field of the exit status. A general form iss u' .IF = &7 .GOTO CONTIN A2 ERRSEVJ After processing an error, Indirect places in the error severityH mask associated with the error. This bit mask corresponds with the bits@ of the mask used to control Indirect error processing. g2 ERSEENA is a logical symbol set to TRUE if any of the following conditions are true:a o8 1. < 0 if a negative error code was returned B 2. (&7) .GT. 1. if an exit status value more severe than was returned. O 3. is TRUES  4. is nonzeror n2 5. If you have specifically used the command line o .00lTADATADATADATADATADATADATADATADATASETT o T K If you use the command line .SETF , the following symbols are alsoi set:r p 1. is set to 0 2. is set to 0 3. is set to  4. is set to 0 r2 ESCAPEK is a logical symbol set to TRUE if the last question was answered)' with an ESCape or ALTmode; else FALSE.v 2 EXSTATH is a numeric symbol that contains the exit status value as set2 by the last exiting task or by the .EXIT command.  warning = 0 = o success = 1 =  error = 2 = E severe error = 4 =  no status = 17 = i e See also . 2 EXSTRIA is a string symbol used to return string results from aE= more deeply nested command file to the calling command file.n= To allow controlled return of values from a nested file, the E symbol can be set with a string value. In a fashion similaruF to , the string value is propagated back to the CALLING file. Examples: o$ ! @deeperfile param1 param2 param3 ! .sets result   S OR> n ! .gosub maktab= ! .sets switch E R* For an extended example, please refer to: u HELP INDIRECT ADVANCEDl fI Note that is set to null when Indirect waits for the completion of a task.l r2 FALSEvK is a logical literal symbol used in comparisons with other logicalu1 symbols to determine if they have a false value.v e2 FILERRE After a .TESTFILE, .OPENx, or .READ statement, contains theaE FCS-11 or I/O driver status code resulting from the operation. ThesesA codes are documented in the RSX-11M/M-PLUS I/O Drivers Referencee Manual. rD For an extended example of code translation to message strings, see HELP INDIRECT ADVANCED. t2 FILER2E contains the FMS error code that was returned from the lastu .FORM directive issued.  o2 FILATRB The special symbol returns the 7 words of file-attributeD information contained in the FCS-11 File Descriptor Block. The dataC is from the FDB used in the last preceding .OPENx operation. ReferM to the IAS/RSX-11 I/O Operations Manual for a description of file attributesr and the values of each field. t2 FILSPCF The string symbol contains the fully qualified specificationE for the file referred to with the last .OPENx or .TESTFILE directiveMC operation, or in the last specification for a nested command file.r t Examples: i= .SETS CMDSPC ! Save the name of "this" command filet B .TESTFILE TI:8 .SETS TERMIN ! Get the name of "this" terminal 2 FORATTH is a numeric symbol that contains the octal value of the file K attributes used in opening all data files. This symbol can be reset with D the .SETN directive to allow foreign-attribute files to be written. h2 FMASK F is a string symbol that contains the octal value of the threeH system feature mask words, separated by commas to allow easy parsing by the .PARSE directive. m2 LIBUICD is a string symbol set to the UIC containing nonprivileged utility tasks; format is [g,m].2 LOCALcC is a logical symbol set to TRUE if the terminal from whichi> Indirect is executing (TI:) is flagged by the terminal driver as a local terminal.o o2 LOGDEVH is a string symbol equal to the device name and unit number ofM the user's login account. This value is available only on systems supportingyB the multiuser SYSGEN option; otherwise, is set with SY0. 2 LOGUICL is assigned the login UIC for the current user. In systems withoutD multiuser protection, is assigned the current default UIC. h2 MAPPEDH is a logical symbol set to TRUE if the current system supports memory management; else FALSE.  D2 MEMSIZD is a numeric symbol assigned the size of memory in K words (1K = 1024.). o2 NETUICI is a string symbol that contains the value of the UIC/DIRECTORYnJ string used on 00t O F &the system volume to hold the DECnet tasks. This symbol isH used with the and symbols to separate and manage the  components of your system. 2 NETNODE is a string symbol that contains the name of this system ine a DECnet network. r2 NOSTATD is a numeric literal symbol that is used in comparisons toD determine if a value returned from a task was an actual valid exit  status. a2 NUMBERI is a logical symbol used to verify that the last string enteredtH in response to an .ASKS directive or tested in the last .TEST directiveH contains only numeric characters. An empty string also sets to TRUE. 2 NXTSYMI is a unique string/operation symbol used in the utility libraryCI procedure INDDMP to display the current contents of the local and globals symbol tables.  2 OCTALeE is a logical symbol set to TRUE if the numeric answer to theaA last .ASKN command or the value of the symbol tested in the lastaB .TEST command is octal. If the .TEST command referenced a stringF and only the numeric characters 0 through 7 were found in the string, is set to TRUE.2 PRIVIL@ is a logical symbol set to TRUE if the current user is privileged. r2 RAD50eB is a logical symbol set to TRUE if the last string testedF or typed in response to an .ASK question contained only characters in( the Radix-50 character set; else FALSE.2 RSX11DI and are logical symbols set to TRUE if the current systemf is RSX-11D or IAS; else FALSE.t g2 SPACElH is a numeric symbol set to the number of free bytes left in theI symbol table. This value does not include symbol table space that coulde? be gained by a later automatic extension of the Indirect task.a y2 STRLENG is a numeric symbol set by the .TEST command to the length inoG bytes of the tested string. Upon initial entry into Indirect, D contains the count of valid parameters passed in the command line.  r2 SYDISKG is a string symbol set to the system disk mnemonic. There is * no associated unit number (see ). t2 SYMTYPA As a result of a .TEST command, contains a numeric codee? indicating the type of symbol tested. The values returned are:a y Logical = 0 Numeric = 2 String = 4 2 SYSDEVM is a string symbol that contains the physical device specification n of the system boot device.a 2 SYSID E is a string symbol that contains the 1- through 6-character K# operating system baselevel number.m s2 SYSTEMC is a numeric symbol set with the value 1 if the system isP RSX-11M or 6 for RSX-11M-PLUS., Y2 SYSUICE is a string symbol set to the current system UIC; format is  [g,m].a a2 SYTYPg@ is a string symbol set to the current operating system. r2 SYUNITJ is a numeric symbol set to the unit number of the system device. See . 2 TIMEG