IMD 1.18: 15/11/2012 22:00:24 wicat systems mcs 4.0 162-290-126 a vol 3 of 4 #/9?.?e/<(N9B9O?<?</</<*NN-| 9_g0 |/<Q/</<?<N1"|QpPW?<?</</<<*NN-|ByLRyL yLn/(/(/./NTdjpv 2@V$:@FLRX^n|*06<JP^dr*8>DRX^drx~@  &,<BHNFz!>!F!L!"" "#L#b$ $$ $8$H$N$X$b$$$$%%b%l%&2&:&@&&' '('.'''')))*~***rNV- H/?. N=|=|0nJ(g& nl0n2niRnRn`L*^N^/_TNuNV- H瀀=|'=||Jn l0n|-Dn Rn nmR0. H=@JnfJ.f(0n0.@0@0.n B.Rn0.H =@`J.g0n|0Rn0nB(L*^N^/_TNuNVHE/ N@AB60|@fR(CBBr 0BoBXQ nabp HCC0BCHCQZra:Q n|-| |:|:|.B(-nLN^XNu 00H@RNuJAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC-HhN@ (Wg Wg`$ (Rh^C $I .NuHzN"H/N!N"RRR020 -- MBVALID -- READ FAILED NV | P/(BHnN@ | P/(BHnN@BBBHnN@`(OB  nD / n8 ln*Jo& fS`B(So fS`SHhR`?HoBBB,O/,/,/,NVH/. Bg?<?<N%/. HzBgN$( | /.Bg?<?<N%/.Hz^BgN$ |  |!H!| (!@B -n L?N^PNuSYS$OUTPUTSYS$INPUTNVH nHz:N"H"|"Q/ /(?/(/(/./ NV- H=|Bn=| 0n ( fRn`0n ($f =|Rn0n J(g 0n (0e0n (9c( nf`0n (AeP0n (Fb@0.0n BA(@A0=A0n B@( @Am_nRn`l=nL*^N^.NuNVH.. . . /0.H@0./N@-nL?N^ NuNVH0.S@ n"n -nJf JgD`JfD` VLN^ NuNVH n| ||/N-nLN^XNuNVH瀀 nJ(fJ(f/N(/NFJg-nLN^XNuNVH n"nJn g$IJf S@`0. 2.l2Ao0HJhg$(I :(HŰhlD6(HÖ*@m*JEg$I&LԅSEQCm,&L8aDC@gCSC&LQ`&L8a&I8a@ob$L`$LJAoV0(B@o@`0BA@S@ Qhf2&L8aP`&I8a@o&0S@@NU/< Q&O8a`N]`Ԩ!BB(B(-nL?N^Nu/(/(/</DLT\blv~ "*2:@JT\bjrx $6<BNV`hrz$2<BHR\bhn$*06<LRXhntz6<B\bhz:@FL".FVl ` J R X !F!V!\!t!!!!!""""R""#:#r$ $>$$$%%h%%%&&&&NVHE/ N@AB60|@fR(CBBr 0BoBXQ nabp HCC0BCHCQZra:Q n|-| |:|:|.B(-nLN^XNu 00H@RNuJAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC-|/NS`-nLN^ NuNVH nJ( g/N&"1nB(JhV"n JfDS/. //<?(BgB//(/(/./ `0SYS$DISK/SYSLIB/ERROR.TXTSYS$ERROR, Status = NVHHzHx Hx #HxHxHxHxHnHnN@Jn\B n "HJgRR`Jf   T/.HxHxHx//HnHnN@..g/.HxHxHxHz`Hx HnHnN@A//N'BB"HJgR`  V/.HxHxHx//HnHnN@HzHxHxHxHnHnN@JnAP/./BHx/HxPHoHnN@JnX"HBJgRR`JGgF  T/.HxHxHx//HnHnN@/.BHnN@/.BHnN@LN^/WPNuNV/0.n =@ -n N^XNuNV/0.n =@ -n N^XNuNVH .rA Q LN^N@NuNVH .rA Q LN^N@NuNVH .rA Q LN^N@NuNVH .rA N/</<(N"h?<?</<_/<N*NNfY0<H/N!d#J/<Np |NrPR@JWH//</</</<*NN$JgN |#/9/<fBg?<? `2SYS$DISK/SYSLIB/ERROR.TXTERROR -- WARNING -- NVH n ..lD"GHzHxHxHxPHnHnN@..fp/./ BHxHnHxHoHnN@..fJ/.BHnN@..lC`Cp<<PgSFfCSFf<LN^/WPNuB`NVH .rA Q LN^N@NuNVH .rA Q LN^N@NuNVH .r A Q LN^N@ENuNVH .rA Q LN^N@FNuNVH .rA Q LN^N@NuNVH n| ||/N-nLN^XNuNVH瀀 nJ(fJ(f/N(/N(Jg-nLN^XNuNVH np"N< SfBB$. jD<-"Nz }$0RJfJgR2.Hj"j "N <*SnJg(j| `Y ||/NS`-nL?N^ NuNVH n"nJn g$IJf S@`0. 2.l2Ao0HJhg$(I :(HŰhlD6(HÖ*@m*JEg$I&LԅSEQCm,&L8aDC@gCSC&LQ`&L8a&I8a@ob$L`$LJAoV0(B@o@`0BA@S@ Qhf2&L8aP`&I8a@o&0S@@NU/< Q&O8a`N]`Ԩ!BB(B(-n?< ?e/<(N9B9O?<?</</<*NN-| 9_g0 |/<Q/</<?<N1"|QpPW?<?</</<<*NN-|ByLRyL yLn/(/(/./J9]f6V][`" 9Vg 9Vf[B9]J9[f8JyRo0/9N?FLZ`fl~ $*0BHNT^dj":Bbjp!,!4!:!z!"."D""###*#0#:#D#####$D$N$%%%&Z&b&h&''H'P'V(j(((C $I .NuHzN"/N!N"fRRR020 -- MBVALID -- READ FAILED NV |b P/(BHnN@ |^ P/(BHnN@BBBHnN@`(OB  nD / n8 ln*Jo& fS`B(So fS`SHhR`?HoBBB,O/,/,/,NVH/. Bg?<?<N%/. HzBgN# |^ /.Bg?<?<N%/.Hz^BgN$ |b  |n!H!|~ (!@B -n L?N^PNuSYS$OUTPUTSYS$INPUTNVH nHz:N""|^"Q/ /(?/(/(/./ NV/0.n =@ -n N^XNuNVH瀀/.0.H/0.H/0.H//.0.H/HnHnN@ n0 n 0-nLN^NuNVH瀀 nBJgR`/.//.0. H/HnN@ n0-nL?N^NuNVH瀀/.,2:@HNTZjpv$6<DJRX^dtz ,6<DJT^hpz *4>FNRZdnv~ "(2BHNT\pv 28>PV\blrx"NZ"8Nr,LTZ   $ T j!!"!(!@!P!V!`!j!!!!""j"t##>#$ $$$$%4%n%v%|&&&&J( g/N%1nB(JhV"n JfDS/. //<?(BgB//(/(/./ NVHAB". p x0Jf"nfLN^/WPNu`0SYS$DISK/SYSLIB/ERROR.TXTSYS$ERROR, Status = NVHHzHx Hx #HxHxHxHxHnHnN@Jn`B n E"JgRR`Jf AUD 600BAUD 1200BAUD 1800BAUD 2000BAUD 2400BAUD 3600BAUD 4800BAUD 7200BAUD 9600BAUD 19200BAUD MASK8BIT NOMASK8BIT @CONTROLC NOCONTROLC XONXOFF NOXONXOFF CONTROLX NOCONTROLX CONTROLZ NOCONTROLZ CONTROLO NOCONTROLO NOTABS TABS BROADCAST NOBROADCAST NOHOSTSYNC HOSTSYNC VISUAL200 TVI912 MG8000 T7000 FT0 FT1 FT2 FT3 FT4 FT5 FT6 FT7 FT8 FT9 W/9/69xCm"3v0yv3 RyvQ0yx4B` |4"|(B@W09VH//<*NND |4/</<4/<)/</<?<N""|pPW/9/S`-nLN^ NuNV/ nJ(gaRB(B(-n _N^XNuHz`HzLN' /N&N'^RRR022 -- PUT -- FILE COMPONENT DATA IS NOT VALID RRR022 -- PUT -- WRITE FAILED H`BJ( g-|JhgBn=hBn=h (R\C $I .`QJ.g>/(/(/./- H/Bg?<BgN4l/C/< N(/C?<?<?FR\jp|$8>FLZ`fpz $*4:HRZ`flrx~ (\P*06< `##*###$$$$ $*$%>%F%L%%&,&4&:&&&&''b'l("(x(()))*+++,,,, "npOQ n 0 n 0PJ(g4 |#/9 n 0PB@(?? NV- H=|Bn=| 0n ( fRn`0n ($f =|Rn0n J(g 0n (0e0n (9c( nf\0n (AeL0n (Fb<0.0n BA(@A0=A0n (Am_nRn`p=nL*^N^.NuNVH瀀/.0.H/0.H/0.H//.0.H/HnHnN@ n0 n 0-nLN^NuNVH瀀B n JgR`/. /HnN@ n0-n LN^PNuNVH瀀/.0.H/0.H/0.H//.0.H/HnHnN@ n0 n 0-nLN^NuNVH瀀 nBJgR`/./?.Bg?.Bg/. HnN@ ne.0nf (zb0nf2nfB@)@ @Rnf` n B/N0RBg/N) J_fX/N0 ng./N0 ng=|f/N00nfJ6g, n fn$0nf/N02nfvgRnf`=nfd0nd|.gRnd=|f/N00nfJ6g0 nfn(0nd/N02nfvgRnfRnd`6.d0DCCPm=@f0nfB(gRnfQBg/h/.*VNJ_g( n -P BJ g( Nh"n pO Vc-n n -hX ` Nh"n pO Ve4J g./N00. n hPo-n n -hX `Yp\H/N66-_` n`"NhpOQ n`/N01nP n`R/N0"NB@ Q n`/N01nV n`!n XJg n!n`X` n `/N0R` nJf n -P BBB.hJ g Nh"n pO Vg, Nh"n pOQ-n-n n -hX `Jg n!n X` n -n n -hX ``r n *gh n -P BBg/.*VN%=_fJ gD n 0(Pnfg$Jg n"n !iXX` n "n "X`-n n -hX `/N2L *^N^/_ NuROOTDIR.DIRNV- H N0nB(=| nm.0nJ(g 0n 2niRnRn`0n B(L *^N^/_ NuNV- H/./NJnf/./././. Nn`& nB n* nB( n * n B(L*^N^/_ NuNV- H瀀Rm0m J(f|`B*V0m (=g00m B@(0m(g0mJ(gRm`0mJ(fB@`p@L*^N^NuNV- HRmRm0m J(gB@`p0mJ(gBA`rA@J-f20m J(gB@`p0mJ(gBA`rAD@R@@L*^N^NuNV- H*V0m J(gT0m (*gD0m (=g40m B@(0m(f0mJ(g RmRm`0m J(gB@`p0mJ(gBA`rA@J-f20m (*gB@`p0m (=gBA`rA@L*^N^NuNV- H瀀B.|=|=|BnJ.fJ.g0n (*f**NNRn0.@0@=0.@0@=`0n (=f *NN``*NNJ.fJno|0.@0@06R@=@0.@0@06S@=@Sn`T`PnL*^N^/_XNuNV- H/Bg?< BgN4l//.BgN3=|f0nfJ(gD0nf (aB(L*^N^/_XNuNVV- H?<P/^//\N(0n^B6=|^0n^J(gRn^`0n^ (/g n^mSn^`6.^Cm"=|\0n\2n\i_Rn\QRn^0n^B(_/`/. *VN'. n JPf?<P/\/`/ZN(Rn\//ZN'.0n^J(g0n\2n^i_Rn^Rn\`0n\B(_ n"N`pOQL *^N^/_XNuNV- H=|=|0nJ(g0n (/gRn`0.R@=@0nJ(g0n (/gRn`0.S@=@Jno&0n (.g0n (/gSn`0n (.fSn6.Cm(=|0n2niRnRnQ0n (/fH0nB(//<#N(//.*VN0nJ(gRn`6.0.R@@JCm&=@0n2niRnRnQ0n|/Rn0.R@=@0n (.fRn0.S@60.@JCm&=@0n2niRnRnQ0nB(//<#N(//.*VN=|0.R@=@Bn0nJ(g< nl40n2ni0n (.fRnRnRn` nfSn nf0n|*Rn 0R-nLN^ Nu fB( PPB(`HzN8/N8`N9RRR010 -- RESET -- OPEN FAILED NV/ nBBBBBBBB n1n 1n PJnV V-n _N^ NuNVH | "h$)&)()*) ( g."(SB/HnN@$,.g Ff"Sf!B!C!D!E LN^NuHzN8N9RRR007 -- RELEASE -- ERR RETURNING MEMORY TO SYSTEM NVH | BB d2r$< (SЂB/BBHnN@"&. g@"h#h!I#h#h#h ըӨ LN^NuHzN8N9RRR006 -- MARK -- NO SPACE ON HEAP NVH@ .R"| ")e #A-i ѩ-nLN^XNu$)B/BBHnN@"&. gR ")e`B Hz N8`RRR004 -- NEW -- NO MORE HEAP SPACE NV | P/(BHnN@ | P/(BHnN@BBBHnN@`(OB  nD / n8 ln*Jo& fS`B(So fS`SHhR`?HoBBB,O/,/,/,NVH/. Bg?<?<N4l/. HzBgN9 | /.Bg?<?<N4l/.Hz^BgN3HhN@Jf .ѨLNu/(/(/.//(/(/./HR\djtz "HX&BJ\lNf|"(` <x~^dx~BL H X l !!&!v!""8"V"x"#p#$&$,$2$L$p$v$|$%% %&%>%J%P%V%\%l%z%%%%%%%)):)z))*V,,",(,,,...///0l0002V2^2d303J3R3X33484@4F45.545z66 6L6777777788 88r8x88899 9::~::NV- H/?. N=|=|0nJ(g& nl0n2niRnRn`L*^N^/_TNuNV- H=|0.@0@0.H H@1@Rn0.H =@Jnn0.S@60|m2=@ n 0P0.@2@0)@0@ n RPSnQL *^N^/_\NuNV- H瀀=|'=||Jn l0n|-Dn Rn nmR0. H=@JnfJ.f(0n0.@0@0.n B.Rn0.H =@`J.g0n|0Rn0nB(L*^N^/_TNu |  | !H!| (!@B -n L?N^PNuSYS$OUTPUTSYS$INPUTNVH nHz:N8"|"Q/ /(?>AA~@08888@  @>A@0"AAA?BB>BB?>AA>?BBBBB?>AqA~AAAAAA>>p ""A!!AAcUIAAAACEIQaA>AAAAA>?AA?>AAAAQ>?AA?!AA>A>@A>AAAAAA>AAAA"AAAIIU"A""AA"  @|@@@@@|"A\bb\ @@@XdD8XddX@8#!!@@@H0  5KII#!!!!  XddX@ >>@? !!1.!! ! !B$8 > >   @ I0NVH n| ||/N-nLN^XNuNVH n . 2.HjrJg @ ||/N< S`-n LN^PNuNV/ nJ(gaRB(B(-n _N^XNuHz`HzLN/NNTRRR022 -- PUT -- FILE COMPONENT DATA IS NOT VALID RRR022 -- PUT -- WRITE FAILED H`BJ( g-|JhgBn=hBn=h (R\C $I .`QJ.g>/(/(/./ >H>G'rq  Q!^  @@@ **88@ "QIE">>A@0  8@A>0($~ ?@@A>>AA> >AA>  ?"0BLRbhn| $.8>DNX^BX.>DNX XbJtHhpv2:@ & . 4Bgh N-nLN^XNuHzN/NNTRRR019 -- CLOSE -- WRITE FAILED  N:/9N9Ry ` |#/9/<%/Bg?< ? f| .  f|Ry J.gDJ.g> |#/9/<%Bg?<?<MRn0y >2yRy >Ry09yo/. *NN``0nMB0y >BRy09yo /. *NN=|*NN\0y  gH n JPf@0n2yRnRy09yo/. *NN``0nBRy09yo /. *NN=|*NN\0y  gH n JPf@0n2y ?RnRy09yo/. *NN``0n ?BSn=|Y/< @/?.*VN&# Ry09yo /. *NN=|*NN\0y  gH n JPf@0n2y RnRy09yo/. *NN``0n BSn=|Y/< /?.*VN&# 0yJg60y  g$Ry09yo/. *NN``L*^N^.NuNV- H琀Bn n BJnfj/.?09yn n JPf*NN\0y /gl n JPfd0n2yRn0y >2yRy >Ry09yo/. *NN``0nB0y >/Ry >Ry09yo /. *NN=|0y  gl n JPfd0n2y RnRnQ0n (/fH0nB(//<5N8//.*VN)N0nJ(gRn`6.0.R@@JCm&=@0n2niRnRnQ0n|/Rn0.R@=@0n (.fRn0.S@60.@JCm&=@0n2niRnRnQ0nB(//<5N8//.*VN)N=|0.R@=@Bn0nJ(g< nl40n2ni0n (.fRnRnRn` nfSn nf0n|*Rn0nB(=| nm.0nJ(g 0n 2niRnRn`0n B(L *^N^/_ NuNV- H/./N)Jnf/./././. N+(`& nB n* nB( n * n B(L*^N^/_ NuNV- H瀀Rm0m J(f|`B*V0m (=g00m B@(0m(g0mJ(gRm`0mJ(fB@`p@L*^N^NuNV- HRmRm0m J(gB@`p0mJ(gBA`rA@J-f20m J(gB@`p0mJ(gBA`rAD@R@@L*^N^NuNV- H*V0m J(gT0m (*gD0m (=g40m B@(0m(f0mJ(g  J(g``p NrPR@JWJ@o |#/9/?<?<Q? NV- H N"npOQ=|=|0n J(gRn`0nJ6g0n 2nvRnRn`0n B(L*^N^/_XNuNVV- H?<P/^//\N70n^B6=|^0n^J(gRn^`0n^ (/g n^mSn^`6.^Cm"=|\0n\2n\i_Rn\QRn^0n^B(_/`/. *VN6 n JPf?<P/\/`/ZN7Rn\//ZN60n^J(g0n\2n^i_Rn^Rn\`0n\B(_ n"N`pOQL *^N^/_XNuNV- H=|=|0nJ(g0n (/gRn`0.R@=@0nJ(g0n (/gRn`0.S@=@Jno&0n (.g0n (/gSn`0n (.fSn6.Cm(=|0n2ni9 |#/9?9 ?<N9/9/<&Bg?<???` n //j?<?.hNG2"NpPWL*^N^/_XNuNVH n . 2.HjrJg @ ||/N=h< S`-n LN^PNuNV/ nJ(gaRB(B(-n _N^XNuHz`HzLNF/NF8NFRRR022 -- PUT -- FILE COMPONENT DATA IS NOT VALID RRR022 -- PUT -- WRITE FAILED H`BJ( g-|JhgBn=hBn=h (R\C $I .`QJ.g>/(/(/./Jg-nLN^XNuNVH n p"N< SfBB4. jDB<-"NB2 4HA0RJBfJgR2.Hj"j "N <*SnJg(j| `Y ||/N=hS`-n LN^PNuNVH n"nJn g$IJf S@`0. 2.l2Ao0HJhg$(I :(HŰhlD6(HÖ*@m*JEg$I&LԅSEQCm,&L8aDC@gCSC&LQ`&L8a&I8a@ob$L`$LJAoV0(B@o@`0BA@S@ Qhf2&L8aP`&I8a@o&0S@@NU/< Q&O8a`N]`Ԩ!BB(B(-nL?N^Nu/(/(/</` nJf n -P BBB.hJ g Nh"n pO Vg, Nh"n pOQ-n-n n -hX `Jg n!n X` n -n n -hX ``r n *gh n -P BBg/.*VN5=_fJ gD n 0(Pnfg$Jg n"n !iXX` n "n "X`-n n -hX `/NA L *^N^/_ NuROOTDIR.DIRNV- H=|Bn=| 0n ( fRn`0n ($f =|Rn0n J(g 0n (0e0n (9c( nf`0n (AeP0n (Fb@0.0n BA(@A0=A0n B@( @Am_nRn`l=nL*^N^.NuNVH瀀B n JgR`/. /HnN@ n0-n LN^PNuNVH瀀/.0.H/0.H/0.H//.0.H/HnHnN@ n0 n 0-nLN^NuNVH瀀 nBJgR`/./?.Bg?.Bg/. HnN@ n0-nLN^NuNV//. ?.BgHnHnN@ n0 n0-n _N^NuNVH/.?.Bg/. ?.BgHnN@ . n0-nL?N^RmRm`0m J(gB@`p0mJ(gBA`rA@J-f20m (*gB@`p0m (=gBA`rA@L*^N^NuNV- H瀀B.|=|=|BnJ.fJ.g0n (*f**NN.Rn0.@0@=0.@0@=`0n (=f *NN/`*NN/J.fJno|0.@0@06R@=@0.@0@06S@=@Sn`T`PnL*^N^/_XNuNV- H/Bg?< BgNC//.BgNB=|f0nfJ(gD0nf (ae.0nf (zb0nf2nfB@)@ @Rnf` n B/N>Bg/N9HJ_fX/N?` ng./N?` ng=|f/N?`0nfJ6g, n fn$0nf/N?`2nfvgRnf`=nfd0nd|.gRnd=|f/N?`0nfJ6g0 nfn(0nd/N?`2nfvgRnfRnd`6.d0DCCPm=@f0nfB(gRnfQBg/h/.*VN0zJ_g( n -P BJ g( Nh"n pO Vc-n n -hX ` Nh"n pO Ve4J g./N?`0. n hPo-n n -hX `Yp\H/ND-_` n`"NhpOQ n`/N?`1nP n` Jg(j| `Y ||/N=hS`-nLN^ Nu _N^ NuNVH@ .R"| V")e #A-i ѩ-nLN^XNu$)B/BBHnN@"&. gR ")e`B Hz NF`RRR004 -- NEW -- NO MORE HEAP SPACE NV | J P/(BHnN@ | F P/(BHnN@BBBHnN@`(OB  nD / n8 ln*Jo& fS`B(So fS`SHhR`?HoBBB,O/,/,/,NVH/. Bg?<?<NC/. HzBgNB | F /.Bg?<?<NC/.Hz^BgNB | J  | V!H!| f (!@B -n L?N^PNuSYS$OUTPUTSYS$INPUTNVH nHz:NF"| F"Q/ /(?-nLN^ Nu fB( PPB(`HzNF/NF8NFRRR010 -- RESET -- OPEN FAILED NV/ nBBBBBBBB n1n 1n PJnV V-n 0<=L===>??&?,@@@AAAAB*BBBBCTCCCD$DDDEEEEEEEEFJFPFbFlFFFGH$tz$,2BHPV\fntz     & , < B N T Z ` f l r !! !!!$!2!8!@!L!\!b!j!p!x!~!!!!!!!!!!!!!!!!!" """"$"*"4":"@"F"N"\"b"j"p""""""""""""""""#####"#,#2#8#>#H#Z#b#h#p#v#|################$$ $$$ $&$,$<$B$H$N$T$Z'V'(0(6(<(V(\(b(t(z((((()4):)@)F)***,2,8,L---2.8.T00111222&2>2\222303334424j5*59b999:~L^fltz"06<TZ`lrx ,28FTh| flrx.DZp $<BHVf$*0@LRX^nv| &,<BHNTZ`nt| $,28>PV\nLRnQL *^N^/_TNuNV- H=m0.yf=y[n&y Hv=|0n2nRnRnQ*V/ 6?< ?<*UN *V|:<=|Jno00n0.H H@@0*V@5Sn0.H =@`L *^N^NuNV2- H瀘&y H(y=|B.=n Jy *oB@`p@ n fJ.g*NN=| 3 *J.f0.yf=y3 ,3  .0.yoR|J,3g0n5//<?<*VN B/?<?<N@ :`|`x0nB@(=@ n l*0.`|`B0n|^5/?<?<*VN@0n0.@@@5/?<?<N@Tn `/6// *VN`|0n5/0.@0@/?<*VN B/?<?<N@`|bx@H0{N",,,,,,,,",,,,,,,,,,,,,,,,,,`*0n0.@5/?<?<*VN@Rn Rn`0.y *m@=|0.y *R@=@J.g no^n0.yo"=y``09 *nR@=@=|?.?./6?.0.n?*VNL0.Z@3 DJ9 :gJ9g/6?.*NN&J.gBy *L*^N^/_ToL*^N^/_PNuNV- H ;6. Cm=|0n RnQ?<?9/?<?. *VNLL*^N^/WTNuNV- H ;&|JJgt=|6. Cm>=|x=|0nJ(g0n2nRnRnQRnQ?<?</?<0.S@?*VNL`609S@=@/?<N~?.?<?<?9 6N L *^N^/WTNuNV- H瀐&y H09S@=@0n (gSn`3 .Rn0.yl*Bg?9 .0nB@(?*VN3 .Rn`L *^N^NuNV- H&y H=| n0yn@Bg n2PB@)?*VN@J_f" nRP n0yf n0`` n\PRn n0yn 0.n o n0yo n0L *^N^/_TNuNV- H&y H=| n0ym0 n2P )g n0yf n0 nSP` n[PRn n0ym 0.n o n\P n0yl09Z@ n0L *^N^/_TNuNV- H ;&|F=|Jg\v=|0nJ(g0n2niRnRnQ?<0. R@?/.?<0.S@?*V*UNL`f69Cm=|0n| RnQ69 60. R@@JCm,=@?<?./.?<?9*V*UNRnRnQJ9g:0n0.y>S@YRn0n0.y@S@YRn`80n0.y@S@YRn0n0.y>S@YRnJn lBn 0. 29nRAAo09nR@=@ 0nY/0n/?. *VN B0. n0. 29nRAAlJ9g&|BJg6v=|0nJ(g0n2nYRnRnQ`L09n nR@=@0.nS@60.@JCm=@0nY RnQ0.n/9 ?=|/</?.N0n//<?<N BL *^N^NuNV- H瀀Jn fB@`p 9y 9J9 9g4 |#/9/<Bg?<*?//?<N B//<?<N B?<?9/?<?<-NLB9N*//NL*^N^.NuNV- H瀀//<?< N >=|//?.N0n//<?< N Bn //?. N?<?9/?<0.S@?NLB9N*//NL*^N^.NuNV- HJn fB@`p 9y 9J9 9g?.?. N)BL*^N^.NuNV- 3VByX3TByZByRBy\*^N^NuNV- 3d3fByh*^N^NuNV- HBnv=|0nJgRnRnQ/9 ?/9/<DBg?<?0n ( eb0n (~bT |#/9/<RBg?<?J9 =g /<r/<?<N B3`/<r/<?<N B3J9 >g(0yi//<?<N By`&0yi//<?<N By0yi//<%?<N BVy/<j/<?9 *N0yi//<(?< N By /<j/<?9 2NSy ;L*^N^NuNV- H琐N*//<6?<*VN >?<?9 4/?<?<NL//?<?9 4N=|Bg///NF=_//<?<?9 4/?<?<NL//?<?9 4N=|Bg///NF=_/<N&y H6.0.@wg?< Bg*VN)BB.w n/ n/?<*VN |=|J.xg00n2niy0n (yf6B.x=|`*`(0n2niySnJnnB@`p@ySnSn`` no\0.S@@zRk8B+2/9 ?+8Bg? n 0J+4f n RP09yo n 2P| `b n 2P0yP n 2PJ)f n 2P| RyBg n 2PB@)?*VN@J_grL *^N^/_XNuNVx- H&y0. nPR@=@JnoJ9 9f nm=|n` =nBn0.@|/} n2P/ ?.*VN BRk8B+2/9 ?+8Bg?0. nP`0L *^N^/_\NuNVt- H&y n0n R@=@JnoJ9 9f nm=|n` =nBn0.@x n=P0.R@60Cm$=@0n2niwSnSnQRk:B+3/9 ?+:Bg?//<>?<N B/?<Bg?v3 *09 *R0@ BPRy *Q09 R@3 333 3 3ByBy (B9 <3 23 *3 0ByBy3 409S@3 6*VN**NN3R*UN!x 9 8L *^N^NuNV- H&yJ+4g n BP`"09yo@/9 /</<9??<*UN0//<*N//<?Bg///NF3@v=|J9 9fb/9 ///< *V*UNpBg?9 *VN-hJ_f(0.@0@>///*UNRnQBg?9 *VN-hJ_fv=|J9 9fb/9 ///< *V*UNpBg?9 *VN-hJ_f(0.@0@J///*UNRnQBg?9 *VN-hJ_f0/9 ///< *UNpBg?9 *VN-hJ_f/<//*UNX/9 ///< NpBg?9 *VN-hJ_f/<&//*UNX/9 ///< NpJy gBn=|0n2nRn n(l0n ( b0nBB@9 99 9f/9 Bg/< *V*UNL *^N^NuNV- HY0<@H/N# H3@ J HgB@`p 9L*^N^NuNVX- H&y K"|6p Q|2Bk8Bk:7|6B+3B+4B0y/0y/?<N B\y\yRy`.0y2yiRyRy` 3RyBgN@J_f09yoHNZL *^N^NuNV- H瀐&y HBy3Bg*VNWJ_gpSySy0yh .f>[y[y0y/0y/?<N BRy`0yn` 3RyBgN@J_f09yoXN[L *^N^NuNV- H瀐&y H309y @n*VNB609y @oFSy0y|[y0y/Bg?<*VN 0y| RyBg*VN3*VNg6BgNWJ_g80y/0y/?<N B\y\y`=yRnBgN@J_f 0.yoN L *^N^NuNV- H瀐&y H09Hy ,R@=@09 23*VNfBgNWJ_g8]y]y0y/0y/?<N B`=yRnBgN@J_f 0.yoNfN L *^N^NuNV- H瀐&y HBy3*VNg6BgNWJ_g>0y/0y/?<N B\y\yRy` 3RyBgN@J_f09yoNfJ. g ?9 0NXTNZL *^N^/WTNuNV- H瀐&y HBy3*VNfBgNWJ_g>]y]y0y/0y/?<N BRy` 3RyBgN@J_f09yoNfJ. g ?9 0NXTN[L *^N^/WTNuNV- H&y H0y (g$SySy0y2yi`3 .L *^N^NuNV- H&y H09ynBBg0yB@(?*VN@J_f$0y2yiRyRy`L *^N^NuNV- HBy3&y HB.Bg*VNWJ_gBg0yB@(?/NJ_gBg0yf/9 ?,8Bg?Sy0y|[y0y/Bg?<N n RP`Sy0y2nQSnQL *^N^.NuNV- HNR n JPn(?9?9 ,?9 .NB9`,?9?9 ,?9 .?9 6N B9L*^N^.NuNV- HJy^o3J. g/<^/*VNsr`/<^/*VNxNB6J.gr/N|J. g209y ,09 ,y 6n/N}`4N `,09y , y ,m/N}`N Ry09yn J.g`2L*^N^/WTNuNV\- HJy^o=yv3=|xB. Na"|pQ?<?9 4/a?<?<*VNLB9B@. ?/N{J.gJ.fl/z/< ?<7N >?<?9 4/z?<?<7NLB9N//0m/?-*UN |3 09*VmR@30-y30-m/ /<*UN@PJ9 @gN%B@9 9D@R@@ L*^N^NuNV- H n SP n 2P H )f Ry n [PL*^N^.NuNV- H-y H&y(n6Cm2=|0nBg2nB@)?*VNq0@RnQ09y=@0y/0y/?.N |309n3 n BBnBy=T=y=| n JfBg*NNvJ_gBg0nB@(?*UNq0@B@.0n̰(f(SnJnn n `/*NNx`=T/*NNxSnJnnnBg*UN@0 n =|`R`N n Jff N"|p&Q?<?9 4/?<?<'*VNLB9Jno(/./<?9N9=k:/9 ?.Bg?/ /<?9*UN:0,:R@*V;@Sy/ /<?-*UN:`/ /<?-*UN:*V0-y;@09 mR@;@0y gSy`RyBgN@J_f09yoN\L *^N^NuNV- H瀐&y HJyn 3By3Bg*VNWJ_g2Bg0yB@(?N@J_g\yRy`Ry` 3RyBgN@J_f09yoN[L *^N^NuNV- H瀐&y HJyn 3By3Bg*VNWJ_g&Sy0y (f[yRy` ` 3RyBgN@J_f09yoN\L *^N^NuNV- HJ9 >g .a e .z bB@. @ @ n L*^N^/WTNuNV- H瀘0-yoB. `0&y H(y0-yfJ,3f0-S@;@*V0m (gSm`[mJmnH09ml*NNh`2*NNi`&*NNj`*NNkj`*NNl@`*NNm`*NNnb`*NNn`*NNoNpJngBn?<?./lBgBg*VNL?<?./l?<?.NLRnQ/l/<P?< N >?.?9 4/l?<?< NL/l/NJng3T3V3X/<T/ ?<N >NB9N /9 Bg/< NL *^N^NuNVx- H瀀0. nR@=@JnoJ9 9f nm=|n` =nBn0.@|/}0n/?.*V*UN BRy (/9 ?9 (Bg?/9 ///< *VNpJy fD/9 ?/9 /./< NLNB@9 99 9f/9 Bg/< *VNJ9 9g//< NL *^N^NuNV- H//<B?< N >=| /N=|0nJ6g0n2nRnRn`0n//<K?<*VN BVn?<?9/?<?.NLB9?<?9/BgBgNLNRB@9 9D@R@ 8B9 9L*^N^NuNV`- H/<?<?<?ByX3TByVBnBn?<?9 4/lBgBg*VNL69 6Cm=|Jnf0/9 /l//*Vz/t?<9?9 4NJnto .Yzg .yzf/rN|/rN} .Azg .azf"/rN|/rN}| .QzgB@`p .qzgBA`rAD@R@@RnxJ.g0.xnvn`L*^N^/WTNuNV- H y&H/. Bg?<(N =||0nJ(gl0n (.fJ.gXJ.g0n (.fB@`p@J.f0n (/gB@`p@0n 2niRn`L *^N^.NuNV- HJ9 9f0.n n*VJmo0m2niBg0mB@(?*UN@J_gT/9 ? UNKNOWN COMMANDCmd>Cmd> Moving to Top of File...Cmd> Moving to End of File...Cmd> Searching...Do You want to change this?Exiting ""...** Press Any Key to Continue **Cmd> Please enter Character: Output killed, Exiting...SYS$OUTPUTRES_LINE_NUMB VEW$MEMORYSYS$OUTPUTSYS$INPUTSYS$OUTPUTSYS$ERRORSYS$DISK/SYSEXE/CIP.EXEVEW_CIP SYS$DISK/SYSEXE/CIP.EXE_SYS$OUTPUTNV- HBn n0 n Pn, n2P )0e n2P )9c nRP` n0 n PnN n2P )0e< n2P )9b*0. n2PBA)@A0=A nRP`=nL*^N^/_PNuNV- H琀=|v=|0nBg/.//. *VNF0@RnQL *^N^/_PNuNV- H琀=|v=|0nBg/.//. *VNF0@RnQL *^N^/_PNuNV- H=|0.@0@0. H H@=Rn0. H =@ Jn n0.S@60Cm0Line...  Deleting to Front of Line...  Undoing previous command...  Enter new Output File Name:  Refreshing screen...  Deleting Character...  Moving to new Line...  Moving to new Page...  Moving to new Word... MTMEMP(ML)PL 2FL 0EL 1MW 'MC4OLSR1eFSfDL0DE/DF.DWDC*DSlfEX AB!!HE""PA##CU$$RE%%IC&&SA''3HV((IR))UL**PS++RS+DB,,UD---SS..FN//CP22Command Aborted...Status> Insert Mode; Replace Mode; U/L Distinct; U/L Not Distinct; HV=; Page Size=FROM: TO: NUM= BINARY CHAR= CHAR=TI= TC= EC= EI= HY= HP= TOB= EOB= TRC= ERC= not implemented yetProcedure STATUS=ERROR NUMBER=VEW$MEMORYVEW$MEMORY.SYSSYS$OUTPUTSYS$DISK/SYSLIB/SETUP`rA y FlBA`r y FoBB`tBA y! FgBA`rA y" FgBA`rA y$ FgBA`rA y% FgBA`rA y' FlBA`r y, FoBB`tBA y. FgBA`rA y/ FgBA`rA < y Fm y  Fo 3 . 0 y Fn y Ff y Fm y& Fn ByByJ9 8f `(``BBB/< "*NN String not found... Returning... Find: "  To:  Search for: " " Switch to: "  Pasting text...  Cutting text... Moving to new Page: Moving to new Line: Moving to new Word: D & S Find: "  Opening line...  Deleting line...  Deleting word... " Searching...  Enter new horizontal view:  Enter new paging size:  Abort edit: Are you sure:  Moving to new Character...  Saving a copy of the file...  Moving Line Position...  Moving to End of Line...  Moving to Front of Line...  Deleting to End of `*NNp@`*NNp`*NN ```Bg/< B*NN{`?<*NN~`Bg*NN~`t?<*NN`dBg*NN`V*NN`J*NN`>*NN`2*NN`&*NN`/<*NN(`*NN.`*NNR`*NN:`D9 =R9 =*NN!x`D9 >R9 >*NN!x`*NNz`D9 @R9 @`Jyo 3Jyo 3*NN `hD9 ?R9 ?`X&yJy^o>/  /<`?<(*NN >09^R@7@ k(o7|(0kB( /</< /  0+H//<B/< "*NN`*NNm:`?</< B*NN{`*NN+ /< T/<N/< T/<?/(/(/./.NuNVH瀀/.0.H/0.H/0.H//.0.H/HnHnN@ n``NVH0.o n "nS@n-nLN^ Nu``NVH0.o n "nRR S@n-nLN^ Nu`NVH@0.o"n  S@n-n LN^PNu/N:NRRR021 -- GET -- EOF WAS TRUE PRIOR TO GET NV/ nJ(fHJ(f@aJJ( g4B( ( g$ ( g ( g ( g J( f | P-n _N^XNuH`BJ( g-|JhgBn=hBn=h (kmN!h/(/(/./DLDXD^DjDzDDDDDDDDDDEE&E.E8EFELEdEjE|EEEEEEEEEEFFF8FLFTF^FlFrFxF~FFFFFFFG(GDGRG\G~GGGGH(H6H^HnHI II:I@IJIhIrIxIIJLJJJJKKKK.K>KJKPKhKKKKKKKKKLLLL,LFLVLbLjLpLxL~LLLLLLLMM*MDMNMdMjMrMxMMMMMMMMMMMMMNN$N.N4N:NDNJNRNXNfNlNrNzNNNNNNNNNNNNOO OO8O>OHONOXO^OdOlOrO~OOOOOOOOOOOOOPPP*P2P<PBPJPPPVP\PhPpPvP|PPPPPPPPPPPQQQQ0Q:QBQHQNQVQ\QbQjQ|QQQQQQQQQQQQQQQQ1111111222,222:2B2N2f2l22222222223"3(30363D3^3f333333333344444"4>4D4J4P4j4p444444444455 55"5(5N5T5Z5f5l5t5z555555555666"6(666<6V6\6b6h6n6v6666666666666666677777&7,70767:7B7H7N7T7\7d7l7r7x7~7777777777777788888*8>8d88888899:9999999::<::::::;>;x;;;;;;;<<6<<<<====>=^=======>6>X>?*?8?T?Z?`?l?r?z????@@@6@\@b@@@A&A,ARAABBBHBNBhBzBBBBBBBBBC CCC"C(C4CPChCtC"x""""""""""""""##.#4#Z#l#v########$ $$$$.$4$B$H$N$^$d$|$$$$$$$$$$$$%%%&%,%<%X%^%f%~%%%%%& &&$&.&H&N&b&l&&&&&&&&''''&'@'F'L'`'j''''(((&(D(L(V(p(v((((((())))2)V)`)))))))))* *4*:*B*R*l*r*z*********++ ++<+R+b+l+r+z+,,B,J,b,,,,,,,,---- -,->-H-P-Z-------------....".8.@.H.P.~.........// ///(/@/F/\/b/j/r//////////0000&0,0:0L0l0r0000000001 11"161>1T1^1f1n111"(0:TZdjp|&.FLR\|$*N"6`jr~&:BX`t|.Fx  2Lv4V$Ph&8>^d*D^j 4:08D,>FPXb.V|4Fhp|   0 @ R ^ p ~ !! !! !(!<!F!R!Z!d!j!!!!!!!!!!!!!!!!""""""("0"6"<"D"N"T"Z"`"f"l"ruuuuuuuvvvv$v@vFvLvXv^vfvvvvvvvvvwwwwFw`w~wwwwwwwwwwwx x&x*x0x>xHxNxRxhxpxvx~xxxxxyy0y6y@yRyhynyryxyyyyyzz,zBzpzzzzzzzzzzz{{{{${@{F{L{X{^{f{{{{{{{{{||||&|2|8|B|H|N|T|f|v||||||||}} },}6}<}J}P}f}t}z}}}}}}}}}}}}}~~ ~&~2~>~N~V~f~l~~~~~~~~~~~~~~~",6N^h<Jhv (^fv (FTbht~.NT\jzj j&j,j4j<jJjPjXj\jbjjjtjzjjjjjjjjjjjjkkk k0k4k:kBkLkRk\kvk~kkkkkkkkkkkkll lll l&l,l2lLlTlXl^lfljlplxl~llllllllllllmm mmm m&m,mFmNmRmXm`mdmjmpmxmmmmmmmmmmmmmmnnn n*n4n:n@nFnNnTnnnvnznnnnnnnnnnnnnnoooo2o>oNoXo`ohoroxooooooooooopppp"p(p2pLpRpZp^pdplpvppppppppppppppqqqqq q*q0q@qFqPqTqZqbqlqrqzqqqqqr:rHrNrZrnrzrrrrrrrrrrrrsss0sJsTs~sssssstt ttt t0t@tHtTtjtttuu"uBupuuuu^l^z^^^^^^^^^^^^^^^^__*_:_D_Z_`_f_l_r_x_____________``"`(`0`<`B`T`p`v`|````aaa"a8a>aDaJaPaVabaraaaaaaaaaabb bbb$b6bRbXb^bjbpbbbbbccc*c4c<cBcFcLchcrc|ccccccccccddddd"d2dFdLdRdZdhdvd~dddddddddddde ee"e0e8e>eXe^efeneveeeeeeeeeeeeeeeff"f(f0f8f@fJfPfVfffzfffffffffffffggggg(gBgHgNgXgjgtg|gggggggggh hh&h:h@hFhLhVh^hlhrh|hhhhhhhhhhii ii i&i,i<iPiVi`ihiziiiiiiiiiiijjQRR&R0R:R@RJRPR\RdRhRnRtRzRRRRRRRRRRRRRRRRRSS SSS$S,SFSPS\SdSjS~SSSSSSSSSTTT(T8TBTXTTTTTTTTU UU2U@ULUbUzUUUUUUUUVVVV*VBVNVXVpVxVVVVVVVVVVVVVVWWWW"WWWWWWWWWWXX XX6X>X`XfXtXzXXXXXXXXXXXXYYYBYXYYZ(Z8ZBZZZ`ZpZzZZZZZZZ[[[[[[*[2[8[>[R[X[b[h[t[z[[[[[[[[[[[[[[[\\ \\\"\(\.\>\F\L\R\j\|\\\\\\\\\\\\\\\\]] ]]]0]@]L]R]^]d]j]x]]]]]]]]]]]]]]]^ ^^^$^*^0^:^B^H^R^bN/NV- H/9J/9j/</<N9Jf&y 9Xd< f/9J/9j/</<N:r7| |n"|)pWJ9CgX/9R/</9j/<n/<]/</</</<N;VJ9nf |n"|)pW |#/9?< ??<?<?DNV\bhntz"(.4>FNV .@Rdv,4:6$*PX^T&LRdnX`f FNT"(.:@JRZ`rxNZfp $:J`fn~(F\fp(z ,2<HT^hx"(2:@PZv| BR\r ,JX^djp  &.4@FNX^jpz(6DTdp| 4<LZjx &/<6vBg?<?"|8pW?<?</<8/<N=nBg/<8/<NAJ_f4 |//<8/<?<NB "NpPWp |rPR@JWH#^?<?</<8/<N=n 9_g6 |//<9/<?<NB "Np WB p |r R@JW30y 0e0y 9bSy`Ry0yB |//</<9?<NB "Np WB |//</<9?<NB "Np WB |//</<9?<NB "NpPW |//</<9*?<NB "NpPW |T//</<9;?<NB "NpPW |//</<9O?<NB "NpPWBBBBBB |prQ |#prQL*^N^Nu/</<(NLt*NN,NJ/</<N@JfN/</9Z/</<N@Jf8 |#/9/<7Bg?<?RHSB`f2RHSB` Bl$ ffSHRB`gSHRB`֑=H-nLN^ NuNVH n"n pg$H&Igg gR@R`B@=@-n LN^PONuNVH0.o$4BA "PrOS@$`fSQ`QB- \B=BLN^NuNVH n| ||/NF:-nLN^XNuNVH瀀 nJ(fJ(f/NH2(/NGJg-nLN^XNuNVH np"N< SfBB$. jD<-"Nz }$0RJfJgR2.Hj"j "N <*SnJg(j| `Y ||/NF:S`-nL?N^ NuNVH n"nJn g$IJf S@`0. 2.l2Ao0HJhg$(I :(HŰhlD6(HÖ*@m*JEg$I&LԅSEQCm,&L8aDC@gCSC&L""nBY2"n "Hx/&.g/af"(//af"( f/SCgnafh f|/xCg SgLQR|.Sg< fxCg Sg&QR|.Sg C e?(Bg/ N?$`B f n LN^/W$O$NuNVH np~BXQFAPg~LN^.JGNuNVHLSAkB4&bւcRGQLN^/_PNuNV//.BHx/HxHoHnN@..N^.JGNuNV- H N"npPQ n "|? B@W0-noBBnRn0n 0.r`2@*V 4nj0n J(g``p NrPR@JWJ@o |#/9/?<?<Q? NVHAB". l-Dp x0Jf"nfLN^/WPNu`2SYS$DISK/SYSLIB/ERROR.TXTERROR -- WARNING -- NVH n ..lD"GHzHxHxHxPHnHnN@..fp/./ BHxHnHxHoHnN@..fJ/.BHnN@T SYSTEM DISK IN DRIVE # 0 PRESS RETURN WHEN READY DUMXFER -- Warning mounting Status=.LABEL > IN MOUNTING IN DISMOUNTING ERROR - HAS BAD DATA IS BAD SECTOR BAD SEC IN USAGE UNKNOWN NOT ALLOCATED Driver Name/SYS$DISK/SYSDSR/Drive Name (DF, DX, etc.)_01/ROOTDIR/BITMAP.SYS/ROOTDIR/FCB.SYS/ROOTDIR/BITMAP.SYS/ROOTDIR/FCB.SYS _DMNT DUMMYXFER -- Warning mounting Status=.RE-MOUNT > _DMNT IN _READ IN OPENING NVHBLA/B/HxHnN@ ..fvB4($&(b><`b&*{Br&ڃx̄X O//BHx//HoHnN@..fB& g&0 g n n LN^/WONuNVHBLA/B/HxHnN@ ..fB4($&(b><`&*{Br&ڃx̄X O//BHx//HoHnN@..fF . &g ` &0 g ` ! //BHx//HoHnN@.. n LN^/WONuNVH$nBL ABB/ag GgH`d/aVf\B( gT ( fL=hHhJ//a\GBG&(g0/af&/af ( fHhB( //a&܇`BGJFf `|&"n/<9Bg?<?/(/(/./#X#^#d#j################$$$$$,$2$8$>$H$R$X$^$d$v$|$$$$$$$$$$$$$$$%%% %%$%*%0%6%<%B%H%`%f%l%r%|%%%%%%%%%%%%%%&&&& &&&<&B&X&^&d&~&&&&&&&&&&&&&&&&&' ''' '&','<'B'H'Z'`'f'p'v'|'''''''''''''''((((($(*(6(<(B(J(P(V(\(l(r(x((((((((((((((())))))*)0)6)<)B)H)N)^)d)j)p)v)|)))))))))))))) &,6<BHZ`fpv| (2:@HNRXblt~$(BHNTZrx~"(.4FLRdjp &,DJRXbhntz "(.4<LR`jv|(<BHZ`flt    & 0 8 > D L R X ^ p v | !! !!! !0!6!<!V!\!b!h$*0:@PX^jp| &,2>DRX^pv| "(28>LRXjpv(.6<DJRZ`jrx~",28FLRbhnz&,28>DPX^pv~ "(.>FJPX^fjpx~ &6<BHNV^fn  &,<BPV\lrxNxNV- H n BPBg/.NVJ_f< n Pl2 n RP n "n 4Q/.N^"ni /.N`/.NL*^N^/_XNuNV- H/Bg?<BgN /Bg?<BgN /Bg?<?<N |#/9/<Bg?< ?4H4N4T4Z4l4r4x44444444444444445 555(5.545:5@<=>> >>,>2>8>J>P>V>\>f>l>r? ???BtBBCLEEE"EhExEEEFFtF|FGGGGIIIIJhJnJK>KDKLL:LPLMMM&M6M<MFMPMMMMNNPNZNO$OOPfPnPtPQQTQ\QbRvRRR)))** ***$***0*6*H*N*T*f*l*r*************+++"+(+.+4+:+@+P+V+\+n+t+z+++++++++++++++,,,,, ,2,8,>,H,N,T,d,j,p,,,,,,,,,,,,,----.-4-:-B-H-N-X-f-l-v----------.....*.0.<.D.J.P.X.f.l.v.........// //,/:/@/J/`/n/t/~/////////////0 000 0&0,0>0D0L0R0\0l0x0~000000000000011 111&1,181@1F1R1\1f1l1r1x1111111111111111222"2*202:2@2F2L2^2d2j2|222222222222222233333,32383>3D3J3P3`3fJfDS/. //<?(BgHhHhN@Jf/(/(/./ UNKNOWN COMMANDNV- H瀀/./Bg/?=|SnBg//?.*VN m0 mJPf m0J.g mDP6+|m=|Rn0.kn0n (fRn`0.R0@(HBT0.knN0n (f@ n0n l4RT0T2ni nRP n0P2niRn` nRP n0PB(RnQV0+ r`0@(H*V mJPm n0` nn0kB(Rk` 0k|Rk kf/././. N=`0+S@?/./.N9ZL *^N^/_NuNV- H&nB. nBP?</."/.N9Z0+Z@=@ n"(H0.lo=l/."?.?/ BgBgBgBg*V/- N2n/."//N;0.H0{AN4Z8DddhB@.?/."/././N?Z` kf/-"/././N=`| n00+R@7@`~`z7|7|`j0+R@7@?+/."/.N9Z`J`F0+kn:Bg?+/.N9J_g$Rk0+kn0k (f Rk``Rk?+/."/.*VN9Z`` koSkBg?+/.N9J_g ko0k (fSk`?+/."/.*VN9Z```/.N7?+/."/.N9Z`d0+kmlBg?+/.*VN9J_g*SkJkfBkBk 0k (fSk`Sk0+kmBg?+/.*VN9J_fSk``?+/."/.*VN9Z`/.N7?+/."/.N9Z``0+knBg?+/.N9J_gBg?+/.N9J_gz=k0.ko0n (fSn`0.kfJ0+S@7@SkJkfBkBk ?+/."/. -- RANDOM -- CREATE FAILED NV/ nBBBBBBBB n1n 1n PJnV V-n _N^ NuNV | P/(BHnN@ | P/(BHnN@BBBHnN@`(OB  nD / n8 ln*Jo& fS`B(So fS`SHhR`?HoBBB,O/,/,/,NVH/. Bg?<?<N\ /. HzBgNb | /.Bg?<?<N\ /.Hz^BgNc |  |!H!| (!@B -n L?N^PNuSYS$OUTPUTSYS$INPUTNVH nHz:N^2"|"Q/ /(?/(/(/./>>>???@??@8@P@@@AZAAAB4BZBBBBC CDCRCdCCDDRDrDDEEPEpEEFFHHIIIJ J.JDJZJKK K,KBKLKL:LdLLLMMTMMMN&NnNOOFOOOP"PQQ^QQQQRRRWWWYYYZZZZ[[[[[\r\]0]@]F]^]n]t]~]]]]^^<^^_H`aa aaabc\cdcjcddJdRdXdddd(6<Tbrx:~*Np:BHNTt2RFdj *0Nlr28Vtz:@^|$BHf$.4JPV\jpv| *2:JPV^flr|    " . : B H N V \ b j p v !!!!!!"!(!0!8!B!J!R!X!`!f!n!t!z!!!!!!!!!!!!!!!!!"""""""("0"8"@"F"L"R"Z"b"j"t"z"""""""""""""""""## ###"#* ----------------------------------------------------------------------------- | Parameters CREATE ARCHIVE COPY OF FILES -- ARCH COMMAND | | Archive file designation -- Required. Default: none. | | File designation -- Required. Default: none. | | Function -- Required. Default: none. Only one function can be specified. | | :i Insert :d Delete :r Replace :l List :e Extract copy | | Options -- Any number of these options can appear on a command line. | | :exclude= Exclude the specified files | | :since= Type date in this form: DD/MM/YY_HH:MM. If a file is | | specified instead of a date, the file's creation date is used | | :before= Same format, etc., as :SINCE | | :mod Uses the modification date as basis for :SINCE and :BEFORE | | :arc Uses the archive date as the basis for :SINCESTIMHLP--+9)+9L&STTYHLP--+:+:!&SWAPHLP--+:P+:c&TALKTHLPD--+;a,&TIMEHLP q--,N,&TTYHLP--,>,O&TYPEHLP--,,/&TYPEBHLP"--,a,&VERIFYHLP*%--,Y,&VERSIONHLP1R--,4,H&VEWHLP8--,,6&XFERHLP?--,X,&XMITHLPF--,6,Y&ZAPHLPN--,,-&PROTHLP~=--+-`+.&PUHLPj--+.I+.`&RECOVERHLP--+//+/P&RENHLP--+0+0'&RESTOREHLP--+0W+1&SCANHLP--+1F+1Y&SENDHLPK--+2!+2<&SERIALHLPx--+3+3&SETHLP--+3C+3^&SETUPEDHLP--+4%+45&SHLOGHLP--+4c+5&SHUTDOWNHLP,--+5L+6&SORTHLPY+6D+6\&SPHLP6--+7+78&SSCOPYHLPc--+8+8$&STATHLP--+8I+8\&HELPHLP"", , F&INCLHLP--+$+$:&KILLHLP--+$]+% &LINKHLP --+%;+&&LOGHLP(--+&4+&D&LOGFLUSHHLP/3--+'+'/&LOGONHLP6`+'T+(&MNTHLP==--+(3+(]&MXFERHLPDjNN+)#+)6&NAMESHLPK--, , &OPTIONHLPR--+)a+*&PATCHHLPZ--+*@+*R&PRELINKHLPa?--++++6&PRINTHLPhlww++b+,&PROFHLPo--+,=+,V&PROMPTHLPw--+-+-.& 17 7 055 37 W 087 57 w 119 77 | | [CTRL]x CAN 024 18 8 056 38 X 088 58 x 120 78 | | [CTRL]y EM 025 19 9 057 39 Y 089 59 y 121 79 | | [CTRL]z SUB 026 1A : 058 3A Z 090 5A z 122 7A | | [CTRL][ ESC 027 1B ; 059 3B [ 091 5B { 123 7B | | [CTRL]\ FS 028 1C < 060 3C \ 092 5C | 124 7C | | [CTRL]] GS 029 1D = 061 3D ] 093 5D } 125 7D | | [CTRL]^ RS 030 1E > 062 3E ^ 094 5E ~ 126 7E | | [CTRL]_ US 031 1F ? 063 3F _ 095 5F DEL 127 7F | ----------------------------------------------------------------------------- ---------------------------------------------------------------------------- | Parameters LOGICAL NAME ASSIGNMENT -- ASSIGN COMMAND | | Name -- Required. Default: none. The question mark and spaces are | | dis 2A J 074 4A j 106 6A | | [CTRL]k VT 011 0B + 043 2B K 075 4B k 107 6B | | [CTRL]l FF 012 0C , 044 2C L 076 4C l 108 6C | | [CTRL]m CR 013 0D - 045 2D M 077 4D m 109 6D | | [CTRL]n SO 014 0E . 046 2E N 078 4E n 110 6E | | [CTRL]o SI 015 0F / 047 2F O 079 4F o 111 6F | | [CTRL]p DLE 016 10 0 048 30 P 080 50 p 112 70 | | [CTRL]q DC1 017 11 1 049 31 Q 081 51 q 113 71 | | [CTRL]r DC2 018 12 2 050 32 R 082 52 r 114 72 | | [CTRL]s DC3 019 13 3 051 33 S 083 53 s 115 73 | | [CTRL]t DC4 020 14 4 052 34 T 084 54 t 116 74 | | [CTRL]u NAK 021 15 5 053 35 U 085 55 u 117 75 | | [CTRL]v SYN 022 16 6 054 36 V 086 56 v 118 76 | | [CTRL]w ETB 023  | | Character Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex | | | | [CTRL]@ NUL 000 00 SP 032 20 @ 064 40 ` 096 60 | | [CTRL]a SOH 001 01 ! 033 21 A 065 41 a 097 61 | | [CTRL]b STX 002 02 " 034 22 B 066 42 b 098 62 | | [CTRL]c ETX 003 03 # 035 23 C 067 43 c 099 63 | | [CTRL]d EOT 004 04 $ 036 24 D 068 44 d 100 64 | | [CTRL]e ENQ 005 05 % 037 25 E 069 45 e 101 65 | | [CTRL]f ACK 006 06 & 038 26 F 070 46 f 102 66 | | [CTRL]g BEL 007 07 ' 039 27 G 071 47 g 103 67 | | [CTRL]h BS 008 08 ( 040 28 H 072 48 h 104 68 | | [CTRL]i HT 009 09 ) 041 29 I 073 49 i 105 69 | | [CTRL]j LF 010 0A * 042 and :BEFORE | | :owner= Specify user ID numbers. Files not having the UID excluded | | :group= Specify group ID numbers of files to be included | | :space= Specify number of files for which you want space reserved | | :verify Checks archived files to verify that the copy is correct | | :confirm Allows manual selection or rejection of files | | :log Send log output to specified file | | :dsr DSR of dest. device--if archive file fills more than one vol. | |-----------------------------------------------------------------------------| | arch Archive_file_desig. {:i :d :r :e :l} Options (see list above) | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | ASCII CHARACTER TABLE | |  is 3 tries. | | :log= Allows you to change file designation for backup log file | |-----------------------------------------------------------------------------| | backup Backup_directory File_desig. DSR Options (see list above) | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters UPDATE THE BOOTBLOCK -- BTUP COMMAND | | Devicename -- Required. Default: none. This is the device whose | | bootblock you wish to update. See the NAMES help file for | | devicenames. | | Device driver -- Required. Default: none. See the NAMES help file for | | the file designation of the appropriate device driver. | | Options -- Any number of these can appear on the command line: | | :label= The label can be 16 characters DSR for backup device -- Required. Default: none. | | Options -- Optional. Default: see each option. Any number of these | | options can appear on a command line: | | :exclude= Exclude the specified files | | :before= Type date in this form: DD/MM/YY_HH:MM. If a file is | | specified instead, its creation date is used. | | :since= Same format, etc., as :BEFORE | | :mod Uses modification date as basis for :SINCE and :BEFORE | | :owner= Specify user ID number(s). Files with other UIDs excluded | | :group= Specify group ID number(s) of files to be included | | :verify Checks files in backup file to verify that copy is correct | | :retries= Specify number of tries to be made at backing up files | | that don't back up on the first try. Defaultw:=vew Type V, VE, or VEW to execute the VEW Command | | | | | | | |----------------------------------------------------------------------------| | Name := Equivalence (local) or Name :== Equivalence (global) | ---------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters INCREMENTAL SYSTEM BACKUP -- BACKUP COMMAND | | Backup directory -- Required. Default: none. Directory must already | | exist, and the device it is on must already be mounted. | | File designation -- Required. Default: none. Specify the files to be | | backed up. | |allowed. Use the asterisk to make it possible to abbreviate | | the Name you must type on the command line in order to execute the | | Equivalence (the equal sign cannot be used in the Name as a | | wildcard symbol). The Name can contain 80 characters. | | Equivalence -- Optional. Default: none. Use any string of printable | | ASCII characters except the question mark. If the Equivalence | | includes spaces, put a single quotation mark, ', at the beginning of | | the Equivalence. Use the asterisk or the equal sign as wild card | | symbols, just as you would in any CIP command line character | | string. The Equivalence can be up to 80 characters long. | | Examples | | al:='cd _dc0a0/usrs.al/ Make _dc0a0/usrs.al/ the default directory | | tmp:='del *.tmp.* Delete all temporary files from default dir. | | v*ers CHANGE DEFAULT DIRECTORY -- CD COMMAND | | Directory name -- Optional. Default: the directory you are in. Wild | | card symbols cannot be used. To "move to" another device, you | | must specify a directory on that device, e.g., CD _DX0/ROOTDIR, or | | CD _DX0/ACCOUNTS.MEMO. A devicename must be followed by a slash, /. | | Furthermore, CD ROOTDIR assigns /ROOTDIR/ as the default no matter | | what directory you are in. You can also move to any first-level | | subdirectory simply by typing CD and the name of the directory, | | e.g., CD SYSLIB, CD SYSHLP, etc. Use the dash, -, to move up the | | directory structure (you must put a space between the CD and the | | dash(es). To move to a subdirectory of the default, type a period | | followed by the directory name, e.g., CD .LETTERS, or | | CD .LETTERS.JUNE, etc.  | | | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | catalog Devicename | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameteptions (see list above) | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters LIST ALL FILES ON A DISK -- CATALOG COMMAND | | Devicename -- Optional. Default: the default disk. Specify the name | | of the disk for which you want a CATALOG listing. See the NAMES | | help file for devicenames. | | Examples | | catalog [RETURN] Gives you a catalog of the default disk | | catalog dx0a0 Gives you a catalog of DX0A0 | | catalog dc0a0 >dc0a0.cat Gives you a catalog of DC0A0, and puts | | the catalog in a file named DC0A0.CAT in | | your default directory | |  long. Use any printable | | alphanumeric ASCII character. | | :ialloc= Initial sector allocation | | :alloc= Subsequent sector allocation | | :flush= Type Y to automatically flush disk buffers each time data | | is written to the disk | | :cache= Amount of memory reserved as a cache for specified device | | :dname= Specify a name for the device in which volume is mounted | | :usercache= Maximum cache allocated to a process at a given time | | :readahead= Type Y or N (default depends upon device) to execute this | | parameter. | | :list List the current values. Supersedes other options. | |-----------------------------------------------------------------------------| | btup Devicename Device_driver Od. | | End -- Optional. Default: the last sector on the disk. This value | | indicates the last sector to be checked. To specify End, Start must | | also be specified. | | :FULL - Optional. Default: Run 'very extensive test' on only bad unalloc- | | ated sectors. If specified, will test all unallocated sectors. | | :LOG=filename - Optional. Default: Screen output only. If specified, it | | will send all output to a log file in addition to the terminal screen. | | Note that the Log file CANNOT reside on the disk being checked. | | Example | | chkd _dc0a0 100 3000 :full Checks sectors 100 through 3000 on disk | | _DC0A0, runs a very extensive test on all | | unallocated sectors, updates the bitmap with any | | each file in each subdirectory | | of /TOM/ is written to SYS$OUTPUT | | checksum *.*.* A checksum for each version of each file in the | | default directory is written to SYS$OUTPUT | |-----------------------------------------------------------------------------| | checksum File_desig. Output_file_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters CHECK DISK SECTORS -- CHKD COMMAND | | Devicename -- Required. Default: none. The name of a mounted disk that | | you wish to check. Use the DEV command to get mounted disk names. | | DO NOT use CHKD on a disk on which other programs are running. | | Start -- Optional. Default: sector 0. The value you enter indicates the | | first sector to be checkepecify the files | | for which you want checksums computed. | | Output file designation -- Optional parameter. Default: SYS$OUTPUT | | (which is usually your terminal screen; use the SHLOG Command to | | determine the value assigned to SYS$OUTPUT). You must specify a | | file other than your terminal screen for VERIFY to use the checksums. | | For convenience in identifying the output file, assign it a .CKS | | file extension. CHECKSUM writes its report to this file. | | Examples | | checksum _dc0a0/*/ A checksum for each file on _DC0A0 is written | | to SYS$OUTPUT (usually the terminal screen) | | checksum _dc0a0/*/ check.cks A checksum for each file on _DC0A0 is | | written to CHECK.CKS, in the default directory | | checksum tom.*/ A checksum for  | | Examples | | cd .elan Gets you to /ELAN/, a subdirectory of the directory you are in | | cd - Gets you to the "parent" directory of the directory you are in | | cd -.tom Gets you to /TOM/, a subdirectory of the parent directory of | | the directory you are in | | cd dx0a0/rootdir Gets you to the root directory for _DX0A0 | |-----------------------------------------------------------------------------| | cd Directory_name | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters COMPUTE FILE CHECKSUMS -- CHECKSUM COMMAND | | File designation -- Required. Default: None. See the NAMES help file | | for devicenames. Wild card symbols are accepted. Sm xfer | | chkd dinit help patch send stty xmit | | cip dir incl prelink serial swap zap | | ? dmnt kill print set talkt | | | | No matter how many parameter values you have typed for a command, you can | | type a question mark, and the help display for that command appears on the | | screen, and your command line reappears below the help display. Thus you | | can finish typing the command while you refer to the help display for that | | command. You can also delete, or use [CTRL] c to abort, the command line | | at the bottom of the screen. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY THE PREVIOUS | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Type any mnemonic from this list, then type a question CIP HELP | | mark, ?, to call a help display to the screen. DISPLAYS | | | | arch cmdst dump link prof setuped time | | ascii copy dupdat3 log prompt shlog tty | | assign count dwnld logflush prot shutdown type | | backup crd dymem logon pu sort typeb | | btup create err mxfer recover sp verify | | catalog def fixstack mnt ren sscopy version | | cd del functions names restore stat vew | | checksum dev gprint option scan sti executes the commands contained in the designated file. | | Use the third syntax to initiate a "foreground" version of CIP that | | executes the commands contained in the designated file. | | | | See the CIP User Reference Manual for a complete description of CIP. | | | | Examples | | > cip copy report.txt _dx0/hold/ Creates a CIP, and copies | | REPORT.TXT to _DX0/HOLD/ | | > @cdi.com Creates a CIP, and executes the | | commands in CDI.COM in default dir. | |-----------------------------------------------------------------------------| | cip or &@File_desig. or @File_desig.  changes, and writes the report to SYS$OUTPUT. | |-----------------------------------------------------------------------------| | chkd Devicename Start End :full :log= | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters CREATE A CIP -- CIP COMMAND | | Type CIP onto the command line and strike [RETURN] to execute an | | interactive version of CIP.EXE. You can follow CIP with a string of | | CIP command mnemonics. | | | | Command files, designated by a .COM extension, are executed by the | | second or third syntax descriptions. | | Use the second syntax to initiate a "background" version of CIP that | | t | | the copying of each specified file. To confirm, type :confirm | | Examples | | copy report.txt _dx0/misc/job.rpt Copies REPORT.TXT to /MISC/ on _DX0 | |-----------------------------------------------------------------------------| | copy Source Destination :version :concat :confirm | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters COUNT WORDS, LINES, CHARACTERS IN FILES -- COUNT COMMAND | | File designation -- Required. Default: none. Wild card symbols | | are permitted in the filename, file extension, and version number | | fields of the file designation. Specify a list by separating | | the file designations with commas. Spaces are disallowed. Use this | | parameter to specify the files COUNT will report on. s of the file designation. A list of file designations (each sep- | | arated by a comma) is permitted; no spaces are permitted in the list. | | Destination -- Required. Default: the default directory. | | A single asterisk in this parameter represents the default directory. | | To change only the directory name, filename, or file extension | | portion of the copy(ies), enter only the value for that change as the | | value for this parameter. | | Version banner -- Optional. Default: no banner. To call for a banner, | | type :version as part of the command line character string. | | Concatenate -- Optional. Default: no concatenation. To concatenate, type | | :concat in the command line character string. You must specify (in | | the Destination) a filename for the concatenated file, or copy. | | Confirm -- Optional. Default: no opportunity to confirm, or rejec | | | | | | | | | | | |-----------------------------------------------------------------------------| | cmdst | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters COPY FILES -- COPY COMMAND | | Source -- Required. Default: none. The asterisk is accepted as a | | wildcard symbol in the directory name, filename, and file extension | | field EIGHT CIP COMMANDS -- CMDST COMMAND | | None. | | Examples | | cmdst Displays a list of the previous eight CIP command line | | character strings. | | | | | | Use [CTRL] r to recall any of the character strings, beginning with the | | first on the list. | | | | Use [CTRL] p to recall any of the character strings, beginning with the | | last on the list. | | | |  ------------------------------------------------------------ ----------------------------------------------------------------------------- | Parameters CREATE FILES -- CREATE COMMAND | | File designation -- Required. Default: none. Specify the file to be | | created. The device on which it will be located must already be | | mounted, and the directory to which it will be assigned must already | | exist. Wild card symbols are disallowed. | | Raw input -- Optional. Default: formatted input. Type :RI if the input | | for CREATE will come from another file. | | Formatted output -- Optional. Default: raw output. Type :FO if the | | output will go to a terminal screen rather than a file. | | Examples | | create report.txt Creates REPORT.TXT, assigns it to the default | | cify an extension or a version number for | | the new directory. Wild card symbols are disallowed. | | Examples | | crd .reports Creates /REPORTS/ as a subdirectory of the | | default directory | | crd .reports.june Creates /JUNE/ as a subdirectory of | | /REPORTS/, provided /REPORTS/ already exists | | as a subdirectory of the default directory | | crd inventory Creates /INVENTORY/ as a first-level sub- | | directory of /ROOTDIR/, no matter what the | | default directory is | |-----------------------------------------------------------------------------| | crd Directory_name | -----------------in the default directory | |-----------------------------------------------------------------------------| | count File_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters CREATE A DIRECTORY -- CRD COMMAND | | Directory name -- Required. Default: none. To create a subdirectory | | of the default directory, type a period and the name of the | | subdirectory. If you do not put a period before the name of the | | new directory, the directory will be created as a first-level sub- | | directory of /ROOTDIR/, no matter where you are in your system's | | directory structure. The directory name can consist of up to nine | | alphanumeric characters (a - z, 0 - 9), the dollar sign, $, and the | | tilde, ~. You cannot spe | | Examples | | count report.txt Count the characters, words, and lines | | in REPORT.TXT | | count *.*.* Count all versions of all files in the | | default directory | | count _dx0a0/reports/*.*.*,*.*.* Count all versions of all files in | | /REPORTS/, on _DX0A0, as well as all | | versions of all files in the default | | directory | | count *.txt.* >txt.cnt Count all versions of all files that | | have extension .TXT in the default | | directory, and write the report to | | TXT.CNT  a list by separating the file | | designations with commas. Spaces are disallowed. If you do not | | specify a version number, the most recent version of the file is | | deleted. Use this parameter to specify the files to be deleted. | | Confirmation -- Optional. Default: the files will be presented in groups | | (according to how you specify them in the first parameter), and you | | will only be allowed to decide whether to delete the group of files. | | If you type :y as part of the command line character string, all | | specified files will be deleted. If you type :c, you will be allowed | | to decide whether to delete each specified file, i.e., a prompt | | appears for each file so you can decide whether to delete that file. | | Examples | | del *.*.* Deletes all versions of all files in default dir. | | del manual.dir D | | | | | | | | | | | |-----------------------------------------------------------------------------| | def | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DELETE FILES -- DEL COMMAND | | File designation -- Required. Default: none. Wild card symbols are | | permitted in the filename, file extension, and version number fields | | of the file designation. Specify MMAND | | None. | | Examples | | def After you strike [RETURN], a report of this kind appears on | | the screen: | | | | _DC0A0/ROOTDIR/ | | | | This particular report tells you that you are in /ROOTDIR/ on | | device _DC0A0. Were you in a subdirectory, the report would | | look like this: | | | | _DC0A0/USRS.AL/ | |  directory, and places in it all characters typed | | up to, but not including, [CTRL] z | | create _tt1 :fo After you strike [RETURN], the cursor jumps to the | | line below this character string. Were you to type | | PLEASE TELEPHONE OSCAR onto your keyboard, and then | | type [CTRL] z, what you just typed would appear on | | the screen of the terminal connected to _TT1. | | Type [CTRL] z to terminate CREATE. | |-----------------------------------------------------------------------------| | create File_desig. :ri :fo | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters LIST DEFAULT DEVICE AND DIRECTORY -- DEF CO! is entered | | positionally. | | Format -- Optional. Default: n. Type y for formatting. | | Autoflush -- Optional. Default: n. Same syntax as Format. | | Cache size -- Optional. Default: depends on the device. | | FCB size -- Optional. Default: depends on the device. | | User cache -- Optional. Default: depends on the device. | | Readahead -- Optional. Default: depends on device. Same syntax as Format. | | Ialloc -- Optional. Default: depends on the device. | | Alloc -- Optional. Default: depends on the device. | | Device driver -- Required. Default: none. See the NAMES help file. | |-----------------------------------------------------------------------------| | dinit Device Drive_type {y n} {y n} Cache_size, etc. (see list above) | ------------------------------------------------| |-----------------------------------------------------------------------------| | dev | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters INITIALIZE A DISK -- DINIT COMMAND | | Devicename -- Required. Default: none. The NAMES help file gives you | | the devicenames for your system. Specify the disk to be initialized. | | Drive type -- Required. Default: none. Enter one of these values: | | cmi10 floppy mfloppy fuj76 pri32 cdc29 nec76 | | cmi13 imi20 mrksman fuj152 pri132 cdc152 | | cmi15 imi40 rms10 fuj421 amp302 nec40 | | Label -- Required. Default: none. Any character is permitted. Character | | limit is 16. Spaces are disallowed if the parameter value _DC0A0 DISK | | _TT0A0 TTY | | _NULL TTYSPC | | _TT1 TTYSPC | | _TT2 TTY | | _TT3 TTYSPC | | _TT4 TTY | | _TT5 TTY | | | | This is a list of all currently mounted devices. The kind, | | or class, of each device appears in the righthand column. | | | | eletes MANUAL.DIR (a directory file) only if | | MANUAL.DIR is empty | | del report.txt Deletes the most recent version of REPORT.TXT | |-----------------------------------------------------------------------------| | del File_desig. {:y :c} | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters LIST MOUNTED DEVICES -- DEV COMMAND | | None. | | Examples | | dev After you strike [RETURN], a list of this kind appears on your | | terminal screen: | | | | ! | | | | | | | | | |-----------------------------------------------------------------------------| | dmnt Devicename | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY FILE CONTENTS IN HEXADECIMAL -- DUMP COMMAND | | File designation -- Required. Default: none. Wild card symbols are | | permitted in the filename, file extension, and version number fields | | of the file designation. A list of file designations is permitred. Default: none. The NAMES help file gives you | | the devicenames for your system. Use DEV to find out what devices | | are currently mounted. | | Examples | | dmnt dc0a0 Dismounts _DC0A0, e.g., all modified disk buffers are | | written to _DC0A0, and all modified FCBs are updated | | dmnt dx0 Dismounts the floppy-disk drive so that you can remove the | | diskette in that drive without losing data | | | | | | | | | | | | es a listing of the most recent version | | of all files in the default directory, as well | | as in any subdirectories of the default | | dir Produces a listing of the most recent version | | of each file in the default directory | | dir report.txt.* Produces a directory listing of all versions | | of REPORT.TXT in the default directory | | dir dc0a0/*/report.txt.1 Searches _DC0A0 for REPORT.TXT.1 | |-----------------------------------------------------------------------------| | dir File_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISMOUNT A DEVICE -- DMNT COMMAND | | Devicename -- Requi----------------------------- ----------------------------------------------------------------------------- | Parameters LIST CONTENTS OF DIRECTORY -- DIR COMMAND | | File designation -- Optional. Default: the most recent version | | of each file in the default directory. Wild card symbols are | | permitted in the directory name, filename, file extension, and | | version number fields of the file designation. A list of file | | designations is permitted; separate the designations with commas (no | | spaces). | | Examples | | dir dc0a0/*/ Produces a directory listing of the most recent | | version of each file on _DC0A0, no matter what | | your default is | | dir */ Produc"-------------------------------------------------| | dupdat3 Devicename Device_driver | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DOWNLOAD ASCII FILES FROM A FOREIGN SYSTEM -- DWNLD COMMAND | | Port -- Required. Default: none. The NAMES help file gives you the | | devicenames for your system. | | File designation -- Required. Default: none. Use the standard syntax | | for file designations. Unless you specify otherwise, the file will be | | assigned to your default directory. This is the file to which the | | transferred material will be written. | | Procedure for executing this command | | STEP 1: Make sure an RS232 cable connects you to the host system (see | | the disk drive. | | STEP 2: Close the door to the disk drive. | | STEP 3: Type the mnemonic and parameter values onto the CIP command line. | | STEP 4: Strike [RETURN] | | STEP 5: Type yes and strike [RETURN] to initiate DUPDAT3, or type any | | other character and strike [RETURN] to abort the update. | | STEP 6: Use the DEL Command to delete any specified files. To save these | | files, you must copy them. If any of them is a directory file, | | its contents must be renamed to another directory before it can | | be deleted. All this must be done before any deletions are | | performed. | | STEP 7: Once the deletions are complete, type LOG onto the command line. | | STEP 8: Strike [RETURN]. | |---------------------------- | | | | | |-----------------------------------------------------------------------------| | dump File_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters UPDATE DISK TO MCS VERSION 3.0 AND HIGHER -- DUPDAT3 COMMAND | | Devicename -- Required. Default: none. The NAMES help file gives you | | the devicenames for your system. | | Device driver -- Required. Default: none. The NAMES help file also | | gives the file designation for the driver of a particular device. | | Procedure for executing this command | | STEP 1: Put the diskette into the floppy-ted | | if the designations are separated only by commas (no spaces). If you | | omit the version number, only the most recent version of the specified | | file is displayed. | | Examples | | dump cip.exe Displays (in pages of 256 bytes) the contents of the | | most recent version of CIP.EXE | | dump *.*.* Displays all versions of all files in the default | | directory | | dump .manual/ Displays the most recent version of each file in | | /MANUAL/, a subdirectory of the default directory | | dump _dc0a0/syslib/ Displays the contents of the most recent version | | of each file in /SYSLIB/ on _DC0A0 | | "You can use decimal or | | hexadecimal. Put at least one space between the mnemonic and the | | message number. The number you specify is the number appearing | | next to "Status=" in a diagnostic message. | | Examples | | err 133 Produces this message: File was not found | | err $85 Produces the same message | | | | | | | | | | | | | | version of | | each file, with extension .EXE, in the default | | directory | | dymem cdi.exe 6 Assigns 6 Kb of dynamic memory to CDI.EXE | | dymem research.exe,sysexe/*.exe.* Allows you to reallocate dynamic | | memory to RESEARCH.EXE in the default directory, | | and to each version of an image file in /SYSEXE/ | | | |-----------------------------------------------------------------------------| | dymem File_desig. Amount | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY DIAGNOSTIC MESSAGE -- ERR COMMAND | | Message number -- Required. Default: none. ---------------------------------------------------------------------------- | Parameters ADJUST DYNAMIC MEMORY -- DYMEM COMMAND | | File designation -- Required. Default: none. Wild card symbols can | | be used in the filename, file extension, and version number fields | | of the file designation. Specify a list of file designations by | | separating the designations with commas. Spaces are disallowed. | | Amount -- Optional. Default: the amount of memory space already | | allocated to the image. Strike [RETURN] to leave the amount | | unchanged. To change the amount, type the new decimal or hexadecimal | | value. The amount you specify is interpreted as the number of | | Kilobytes to be allocated. | | Examples | | dymem *.exe.* Allows you to specify an Amount for each DWNLD Command description in the CIP manual), and that the | | port to which the cable is connected is mounted as a TTYSPC | | (see the MNT Command). | | STEP 2: Type command mnemonic and parameter values on command line. | | STEP 3: Strike [RETURN]. | | STEP 4: Log onto the foreign system. | | STEP 5: Type a foreign-system command, i.e., a command recognized by the | | foreign system, that would display on the screen the contents of | | the file you want to transfer, and (instead of striking | | [RETURN]) strike [CTRL] z. | |-----------------------------------------------------------------------------| | dwnld Port File_desig. | ----------------------------------------------------------------------------- -# line | | [CTRL] h Moves cursor one character position to the left | | [CTRL] l Moves cursor one character position to the right | | [CTRL] o Temporarily stops output to SYS$OUTPUT, but allows the process | | to continue (typing [CTRL] o a second time causes the | | display of output to resume) | | [CTRL] p Recall one of the last eight command line character strings, | | beginning with the eighth most recently typed command | | [CTRL] q Allow a process to resume after it has been halted by [CTRL] s | | [CTRL] r Recall one of the last eight command line character strings, | | beginning with the most recently typed command | | [CTRL] s Temporarily stop a process | | [CTRL] v Delete the character or space in which the cursor is locat | |-----------------------------------------------------------------------------| | fixstack Filelist | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | CONTROL KEY FUNCTIONS AVAILABLE IN CIP | | [CTRL] a Moves the cursor to the first character position on the | | command line | | [CTRL] c Aborts the command line, or the process (after the command | | line character string has been executed) | | [CTRL] d Deletes all characters from cursor to end of command line | | [CTRL] g Moves the cursor to the character position immediately to the | | right of the last occupied character position on the command | | | | | Logs each filename on the screen with a message indicating | | what action was taken. If the file is an image file and it is | | using any of the top 4K page of user space for its stack, the | | stack is moved down out of that page. | | | | | | | | | | | | | | | | | |  | | | | | | | | | |-----------------------------------------------------------------------------| | err Message_number | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters MOVE STACK DOWN OUT OF TOP PAGE -- FIXSTACK COMMAND | | Filelist - Required. Wildcards allowed. No default. | | | | Examples | | fixstack /sysexe/*.*,_df0/test.*/*.exe,/work.files/prog.exe | # | | vew Edit a text file | | | | FILE COMMANDS | | | | arch Archive | | copy Copy files | | count Count words, lines, characters in files | | create Create files | | del Delete files | | dump Display file contents in hexadecimal | | print Print files | | prot Protect files | | pu  CIP COMMANDS | | ACCESSING THE SYSTEM | | | | log Log off | | logflush Initiate logon, write disk buffers to disk | | prof Edit user authorization file(s) | | | | LOGICAL NAME ASSIGNMENT | | | | := and :== Logical name assignment (the ASSIGN Command) | | shlog Display logical name assignments | | | | TEXT EDITING | |  printer buffers, | | and (3) internal buffers for the program. | | First horizontal coordinate -- Optional. Default: 0. If you specify a | | value for this, or any of the remaining parameters, you must type a | | value for the Scale. The values must be typed in the order given here. | | Second horizontal coordinate -- Optional. Default 0. | | First vertical coordinate -- Optional. Default: 399. | | Second vertical coordinate -- Optional. Default: 299. | | :Axiom -- Optional. Default: Prism. Indicates printer type. | |-----------------------------------------------------------------------------| | gprint Scale First_hor. Second_hor. First_vert. Second_vert. :axiom | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | ed | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DUMP GRAPHICS ON SCREEN TO PRINTER -- GPRINT COMMAND | | Scale -- Optional. Default: 0. These are the possible values: | | 0 Dumps screen as is, i.e., writes screen's contents to printer | | without changing the display's dimensions or axial orientation | | 1 Dumps screen as is, but turns horizontal axis 90 degrees | | 2 Turns the display's horizontal axis 90 degrees, and doubles | | the size of the display | | 3 Turns the display's horizontal axis 90 degrees, and triples | | the size of the display | | The size to which the display can be enlarged is limited by: | | (1) printable spaces allowed by your printer, (2) $ device | | stat List current processes | | stim Set time on system clock | | time Display system-clock time | | version Display the MCS version number and CIP version date | | | | RUNNING PROGRAMS | | | | cip Create a CIP | | kill Kill an active process | | option Specify CIP run mode options | | set Set process priority | | | | PROGRAM DEVELOPMENT  | | swap Exchange the system disk | | tty Display terminal characteristics | | xfer Copy a diskette | | | | STATUS COMMANDS | | | | cmdst Display the previous eight command character strings | | def List default device and directory | | dev List mounted devices | | err Display error message | | serial Display hardware serial number | | shutdown Prepare system for power shutdown | | sp List space allocation on a | DEVICE COMMANDS | | | | btup Update the bootblock | | chkd Check disk sectors | | dinit Initialize disk | | dmnt Dismount a device | | dupdat3 Update disk to MCS version 3.0 and higher | | mnt Mount a device | | mxfer Copy a diskette on a single-floppy system | | patch Inspect and modify disk sectors | | recover Rebuild system files | | setuped Edit terminal setup files | | stty Set terminal characteristics  Purge directory of files | | ren Rename files | | scan Search file for a pattern | | sort Sort and Merge files | | type Display contents of text file | | zap Inspect and change file contents | | | | DIRECTORY COMMANDS | | | | cd Change default directory and/or device | | crd Create a directory | | dir List contents of directory | | |$tatement(s) | | for the file(s) whose text is to be merged with the Source File. | | Otherwise the Destination File will be a duplicate of the Source File. | | The required statement(s) included within the Source File must be | | typed along the left margin of the file and consist of two percent | | signs and a file designation (spaces are permitted between the | | percent signs and the file designation) e.g., %%_dc0a0/al/summary.txt. | | Destination -- Required. Default: none. No wildcard symbols are | | permitted in any field of the file designation. Only one file | | designation is permitted. This file designation may be identical | | to the Source File. The Destination File is created by INCL, and will | | contain the merged text. | | Examples | | incl report.txt _dx0a0/annual.rpt REPORT.T | MISCELLANEA | | | | gprint Print screen graphics on printer | | send Display message on other terminals | | typeb Display line in block letters | | prompt Prompt user for input | | | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters MERGE TEXT FILES -- INCL COMMAND | | Source -- Required. Default: none. No wild card symbols are permitted | | in any field of this file designation. Only one file designation is | | permitted. The file you specify must contain the require sTION | | | | dwnld Download ASCII files from a foreign system | | sscopy System-to-system file transfer | | talkt Talk through a specified port | | xmit Transmit a file | | | | CONFIGURATION CONTROL | | | | catalog List all files on a disk | | checksum Compute file checksums | | verify Verify file checksums | | | | | | | dymem Adjust dynamic memory | | fixstack Adjust the stack on an image file | | incl Merge text files | | link Linkage editor | | prelink Prepare libraries for linking | | | | BACKUP AND RESTORE | | | | backup Incremental system backup | | restore Selective file restoration | | | | COMMUNICA%sp Stack size :nx No cross reference | | :np Not pure code :sy Symbol name/value | | :nm No link map :bi Impure base address | | :nr No relocation information :ex Exit with undefined | | :lb Library name :ul Uppercase/lowercase flag | | :bp Pure base address | | Example | | link test Links TEST.MRL into an executable image file named TEST.EXE | | | | | |-----------------------------------------------------------------------------| | link File_desig. Functions (see list) or link @Command_file | --------------------------------------------------------------------------------------------------------------------------------| | kill PID [PID] [PID]...[PID] | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters LINKAGE EDITING PROGRAM -- LINK COMMAND | | File designations -- Required. Default: none. Specify files to be | | linked into an executable image. A .MRL extension for this parameter | | value is assumed. Otherwise, the file extension must be specified. | | Wild card symbols are disallowed. Specify a list of designations by | | separating the designations with space or commas (the executable image | | is given the name of the first file in the list). | | Functions -- Optional. Default: depends upon the function. | | :im Image name :ni Noninteractive | | :the process with a PID of FFFF0012 | | kill ffff0045 ffff0102 Kills both processes | | | | | | | | | | | | | | | | | | | | | | | |--------------------XT contains the required | | statement, INCL creates ANNUAL.RPT | | | |-----------------------------------------------------------------------------| | incl Source Destination | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters KILL AN ACTIVE PROCESS -- KILL COMMAND | | Process identification -- Required. Default: none. Use the STAT | | Command to obtain the PID, the value you enter for this parameter. | | Process identification -- Optional. More than one process may be kill | | at a time. | | Examples | | kill ffff0012 Kills % | | | | | | You can use LOGFLUSH for a one-time flush by spawning it instead of forking | | it with parameters. | |-----------------------------------------------------------------------------| | logflush Startlog_interval Flush_interval | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters LOG ONTO THE SYSTEM -- LOGON COMMAND | | Username -- Required. Default: none. This parameter can consist of | | up to 30 alphanumeric and symbol characters. Spaces are disallowed. | | Password -- Required, if specified in the User Authorization | | File (UAF)five seconds. LOGFLUSH polls | | all mounted devices on which no one has logged in. If a key is | | pressed on any such device, LOGFLUSH initiates a logon program for | | that device. What you type for this parameter determines the | | frequency with which LOGFLUSH polls unmounted devices, e.g., if | | you type 10, LOGFLUSH polls all mounted devices every 10 seconds. | | Flush interval -- Optional. Default: 30 seconds. Specify the number of | | seconds in the interval between flushings of the disk cache buffers. | | This parameter value cannot be specified unless a value is typed for | | the Startlog Interval. | | | | | | | |  | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | log | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters INITIATE LOGON, WRITE DISK BUFFERS TO DISK -- LOGFLUSH COMMAND | | Startlog interval -- Optional. Default: ------ ----------------------------------------------------------------------------- | Parameters LOG OFF -- LOG COMMAND | | None. | | Example | | log Logs you off the system | | | | | | | | | | | | | | | | &FCBSYS$$3ROOTDIRDIR $$0.2FCBBITMAPSYS$$2 BITMAPSYS$$1hw-DIRFCBSYSROOTDIRDIRFCBBITMAPSYSBITMAPSYSMCS0400DIR& 04JAN0006BAK6*68btr\   MCS0400DIR ,U, =I 04JAN0003BAK,- ctt"J 04JAN0004BAK2 L35JXU3NH8h04JAN0005BAK4.V5/$ '_driver | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters COPY A DISKETTE ON A SINGLE-FLOPPY SYSTEM --MXFER COMMAND | | Source -- Required. Default: none. Type a devicename for a full oper- | | ation (source-intermediate-destination), or a file designation for | | output only. | | Destination -- Required. Default: none. Specify either the inter- | | mediate file designation (full operation) or a devicename (output only)| | Device driver -- Required. Default: none. Type the file designation | | for the file that contains the driver for the floppy-disk drive. | | Options -- Optional. Default: see the default for each option. | | :delete Deletes file designation when MXFER is done. Default is | |  | | TAPE NETWORK SYNC | | Device driver -- Required. Default: none. See the NAMES help file. | | Example | | mnt _tt1 tty tty$156.dsr Mounts device (attached to port _TT1) as a | | TTY-class device. TTY$156.DSR is its driver. | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | mnt Devicename Class (see options above) Device | |-----------------------------------------------------------------------------| | No command line syntax | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters MOUNT A DEVICE -- MNT COMMAND | | Devicename -- Required. Default: none. The NAMES help file gives you | | the devicenames for your system. | | Class -- Required. Default: none. These are the accepted values for | | this parameter: | | TTYSPC DISKSPC PIPESPC | | TTY DISK PIPE | | TAPESPC NETWORKSPC SYNCSPC --see the PROF Command. Default: none. | | Examples | | LOGON is initiated by the LOGFLUSH Program, i.e., you cannot type logon | | onto the CIP command line, type in the parameter values, and strike | | [RETURN]. When you strike any key at a terminal on which no one is | | logged on, you "catch the attention" of LOGFLUSH, which initiates LOGON, | | and the prompt for a username appears on that terminal screen. After | | you type your username and strike [RETURN], either you are given access | | to the system (if no password was specified in your UAF), or the prompt | | for a password appears. When you type your password (which does not | | echo on the screen) and strike [RETURN], you are given access to the | | system. | | | |'ing executed. | | | | :NOVERIFY -- Optional. Default: none. Command lines from command files | | are not displayed. | | | | | | | | | | | | | | | | Examples | | option :verify Command lines from command files will be displayed | | option :noverify Comman | | _PP0A0 SYS$DISK/SYSDSR/CENT$150.DSR | | Null device _NULL SYS$DISK/SYSDSR/NULL.DSR | | Pipe device(s) _PIPE0 SYS$DISK/SYSDSR/PIP02$150.DSR | | SYS$DISK/SYSDSR/PIP05$150.DSR | | SYS$DISK/SYSDSR/PIP10$150.DSR | | Random access video disk _RAVD SYS$DISK/SYSDSR/RAVD$150.DSR | | | | | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SPECIFY CIP MODE OPTION -- OPTION COMMAND | | :VERIFY -- Optional. Default: none. Will cause CIP to display commands | | found in command files as they are be------ | DEVICENAMES AND DEVICE DRIVERS FOR MCS 4.0 ON A SYSTEM 150WS | | Device Devicename Device driver | | Original MSC disk controller: | | CMI hard disk (Win.) all _DC0A0 SYS$DISK/SYSDSR/MSC$150.DSR | | Floppy-disk drive _DX0A0 SYS$DISK/SYSDSR/MFLOP$150.DSR | | | | WD2 piggyback disk controller: | | CMI hard disk (Win.) all _DC0A0 SYS$DISK/SYSDSR/WD2$150.DSR | | | | Either disk controller: | | CPU screen and keyboard _TT0A0 SYS$DISK/SYSDSR/TTY$150.DSR | | Serial port 1 _TT1A0 SYS$DISK/SYSDSR/TTY$150.DSR | | Parallel port (Centronics-compatible printers)  no-delete | | :format Formats the destination diskette(s). | | :copies= Type number of copies. Default is one. | | :verify Verifies that copies are correct. Default is no-verify. | | Example | | mxfer _dx0 _dc0/temp/summary.img mflop$150.dsr :format | | Creates an image of _DX0, places it in SUMMARY.IMG, prompts | | you to place diskette in _DX0, then writes contents of | | SUMMARY.IMG to the diskette in _DX0 | |-----------------------------------------------------------------------------| | mxfer Source Destination Device_driver :delete :format :copies= :verify | ----------------------------------------------------------------------------- -----------------------------------------------------------------------( | | prelink linklib Prelinks the contents of LINKLIB.DEF in | | the default directory | | prelink pascal.prt/prtlib Prelinks the contents of PRTLIB.DEF in | | /PASCAL.PRT/ | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | prelink File_desig.  | | |-----------------------------------------------------------------------------| | patch Devicename Sector_size | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters PREPARE LIBRARIES FOR LINKING -- PRELINK COMMAND | | File designation -- Required. Default: none. Wild card symbols are | | disallowed. This is a library definition file containing procedure | | reference names as well as the name and location of the file that | | reconciles the reference. It is assumed that this file has a .DEF | | extension. If the file has any other extension, specify that | | extension as part of this designation. | | Examples  | | Examples | | patch _dx0a0 1024 Initiates PATCH on _DX0A0 | | patch _dc0a0 512 Initiates PATCH on _DC0A0 | | | | | | Use this command to change disk contents, by sector number, from the | | keyboard. | | | | See the CIP manual for details on how to use PATCH. | | | | | | |d lines from command files are not displayed | | | | | | | |-----------------------------------------------------------------------------| | option {:verify :noverify} | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters INSPECT AND MODIFY DISK SECTORS -- PATCH COMMAND | | Devicename -- Required. Default: none. The device must already be | | mounted. The DEV Command tells you what devices are mounted. | | Sector size -- Required. Default: none. Sector size for a hard disk is | | 512. The size for a diskette is 1024. SMD disks use 1024-byte | | sectors.( | | The description of the PROF Command (in the CIP manual) tells | | you how to create and edit UAFs, i.e., after you type PROF | | onto the command line, strike [RETURN]. Then refer to the | | CIP manual for information on how to use PROF. | | | | | |-----------------------------------------------------------------------------| | prof | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters PROMPT USER FOR INPUT -- PROMPT COMMAND | | Text -- Required. Default: none. Put at least one space between the | |------------------------------------------------- | Parameters EDIT USER AUTHORIZATION FILES -- PROF COMMAND | | None. | | Examples | | prof Gives you access to /SYSLIB/UAF.DAT so that you can edit any | | of the User Authorization Files (UAFs) in that file. In other | | words, PROF is an editing program that allows you to edit UAFs. | | | | To use PROF, your default device must be the same as the | | device on which /SYSLIB/UAF.DAT is located. | | | | NOTE: Do not use the VEW Command to access UAF.DAT. Doing | | so destroys UAF.DAT. | |  you type. Abbreviations are permitted, | | e.g., :hal, :ha, :h, but not :hlt, :ht, etc. These are the options: | | :print Assigns the file(s) to the print queue | | :list Displays a list of what is in the print queue | | :delete Deletes a single entry from the print queue | | :halt Temporarily stops the printer | | :start Starts the printer after :HALT has been executed | | :restart Resumes the printing of a file at the beginning of the | | file that was being printed when :RESTART was executed | | :nohead Suppress header flag when assigning files to the print que. | |-----------------------------------------------------------------------------| | print {File_desig. Print_queue_entry_no.} Function (see list above) | ----------------------------------------------------------------------------- ---------------------------- | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters PRINT FILES -- PRINT COMMAND | | File designation (or print queue entry number) -- Required. Default: | | none. To print a file(s), type the file designation(s). Wild card | | symbols can be used in the filename, file extension, and version | | number fields. Specify several designations by separating the | | designations with commas. Spaces are disallowed. To delete a | | print queue entry, type the number assigned to that entry. You can | | delete only one entry at a time. To execute any other function, | | e.g., :LIST, :HALT, :START, :RESTART, leave this parameter blank. | | Function -- Optional. Default: the :PRINT function. A colon must be the | | first character in the value ) RE to the user's group, and RWED | | to the owner | |-----------------------------------------------------------------------------| | prot File_desig. s:rwed,p:rwed,g:rwed,o:rwed | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters PURGE DIRECTORY OF FILES -- PU COMMAND | | File designation -- Optional. Default: the default directory is purged | | of all but the most recent version of each file. Wild card symbols | | can be used in the filename and file extension fields of the file | | designation. Anything you type in the version number field is ignored. | | Specify a list by separating the designations with commas. Spaces | | are disallowed. | | Keep count -- Options with commas. Spaces | | are disallowed. | | Protection -- Optional. Default: no change to protection. All users | | fall into one of the following catagories: | | S: System P: Public G: User's group O: Owner | | For each catagory you can bestow the following privileges: | | R Read W Write E Execute D Delete | | Protections may be entered in any order, catagories separated by | | commas. Spaces are disallowed. | | Examples | | prot *.*.* s:rwed,p:r,g:re,o:rwed Assigns RWED privileges to the | | system for all files in the default | | directory, R privilege to public, | | CIP to write | | the prompt, "Insert a diskette, and strike [RETURN]," to the screen, | | and to wait for the user to strike [RETURN] before executing the rest | | of the command file. , <, ?, and control key functions. | | prompt Insert a diskette, and strike [RETURN]. | | pu :y Performs same function, but the deletion occurs automatically | |-----------------------------------------------------------------------------| | pu F* commas. Spaces are disallowed. | | Pattern -- Required. Default: none. The following characters can be | | used as wild card symbols: | | = Matches any single character | | # Matches any number of characters that match the character | | immediately to the right of this symbol in the Pattern, e.g., | | #01 matches 001, 0001, 00001, 000001, 0000001, etc. | | #= Matches any string of characters and spaces | | / Used between alternate variables | | () Used to enclose alternate v ariables within a character string | | % Matches the null string | | Lines -- Required. Default: none. Specify the number of adjacent lines | | (adjacent to the Pattern) to be written to SYS$OUTPUT with  Exclude the specified files | | :verify Verifies that copies are correct. | | :dest= Type directory name | | :original Restore files to original device and directory | |-----------------------------------------------------------------------------| | restore Backup_file File_desig. Device_driver Options (see list above) | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SEARCH FILES FOR A PATTERN -- SCAN COMMAND | | File designation -- Required. Default: none. Specify the files to be | | scanned. Wild card symbols are permitted in the directory name, | | filename, file extension, and version number fields of the file | | designation. Specify a list by separating the designations with | | xt parameter, i.e., the files to be restored. | | File designation -- Required. Default: none. | | Device driver -- Required. Default: none. Type the file designation for | | the file containing the driver for the device that contains the Backup | | File. | | Options -- Optional. Default: depends on the option. | | :before= Type date in this form: DD/MM/YY_HH:MM. If you specify a | | filename, its creation date is used. | | :since= Same format, etc., as :BEFORE | | :arc Uses archive date as basis for :BEFORE and :SINCE | | :mod Uses modification date as basis for :BEFORE and :SINCE | | :group= Specify group ID number(s) of files to be included | | :owner= Specify user ID number(s). Files not having the UID excluded | | :exclude=signed automatically, unless you | | specify a number. You must specify either a directory name or a file- | | name (you cannot use REN to "move" files to another device). Only one | | file designation can be specified. Wild card symbols are permitted | | only in the filename and file extension. You cannot have two copies | | of a file (with the same version number), in one directory, nor can | | you rename a directory and assign it a version number greater than 1. | |-----------------------------------------------------------------------------| | ren Source Destination | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SELECTIVE FILE RESTORATION -- RESTORE COMMAND | | Backup file -- Required. Default: none. Specify the file containing the | | files specified in the ne*m. | | | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | serial | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY HARDWARE SERIAL NUMBER -- SERIAL COMMAND | | None. | | Examples | | serial When you strike [RETURN], this kind of report appears on your | | terminal screen (provided your terminal screen is SYS$OUTPUT | | for your process): | | | | Serial number is Hex: FFFFFFFF Decimal: -1 | | | | FFFFFFFF represents the internal hardware serial number for | | your syste | | Examples | | send _tt0 this is a test This will send the message 'this is a test' | | just to the port _TT0A0. | | send _tt0a1,tt0 hello This will send the message 'hello' to both | | given ports. | | send all Please log off This will send the message 'Please log off' | | to all 'TTY' class devices on the system. | | | | | | | | | |-----------------------------------------------------------------------------| | send devicelist message  the line | | containing the Pattern. | |-----------------------------------------------------------------------------| | scan File_desig. Pattern Lines | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SEND MESSAGE TO OTHER TERMINALS -- SEND COMMAND | | Devicelist -- Required. Default none. A list of terminal ports to | | receive the given message. Multiple ports may be listed, separated | | by commas, no spaces. If 'ALL' is specified, all 'TTY' class devices | | on the system will receive the message. SEND will not write to a | | terminal that is set for NOBROADCAST (see STTY utility). | | Message -- Required. Default none. The message that is to be sent to | | each specified port. + | | setuped syslib/setup5.sys Creates SETUP5.SYS for terminal type FT5, | | when /SYSLIB/ is not the default directory | | setuped setup0.sys Edits the setup file for terminal type FT0 | |-----------------------------------------------------------------------------| | setuped File_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY LOGICAL NAME ASSIGNMENTS -- SHLOG COMMAND | | Name -- Optional. Default: all names. Wild card symbols are permitted. | | Redundancy -- Optional. Default: no redundancies are displayed. | | Examples | | shlog Displays all names (and the Equivalence of each) in the | | logical namehe system disk | | is your default device. Type /SYSLIB/, unless it is your default | | directory. The filename and file extension fields must be of this | | format: SETUPn.SYS. The n indicates a variable that corresponds to | | the terminal type, i.e., 0 through 15 are available for user-defined | | terminal types, 16 through 251 are reserved for future development, | | and 252 through 255 pertain to WICAT-defined terminal types: | | | | 252 T7000 254 TVI912 | | 253 MG8000 255 VISUAL200 | | | | Chapter 4 of the Virtual Editing Window (VEW) User Reference Manual | | tells you what a setup file contains and how to prepare one. | | Examples  | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | set PID {0 1 2 3} | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters EDIT TERMINAL SETUP FILES -- SETUPED COMMAND | | File designation -- Required. Default: none. Type only one file | | designation. Type SYS$DISK for the devicename, unless t SET PROCESS PRIORITY -- SET COMMAND | | Process ID -- Required. Default: none. Use the STAT command to find out | | the PID of the process whose priority you wish to change. Type a | | zero, 0, to change the priority of your user process. | | Priority -- Required. Default: none. Type either 0, 1, 2, or 3; 0 | | is the highest priority. | | Examples | | set ffff0064 1 Gives the process with a PID of FFFF0064, a priority | | of 1 | | set 0 0 Gives the user process the highest priority | | | | | | + | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SORT/MERGE FILES - SORT COMMAND | | file1 - Required. Default: none. Enter the name of the file to be sorted. | | No wildcard symbols are allowed. | | file2 - Optional. Default: none. Enter the name of another that is to be | | sorted and merged with the file specified as File1. | | option - Optional. Default: option dependant. Note that upper case | | characters are required in option keywords. Options are: | | (+|-)ASC ending KEY=key-string (+|-)DUP licate | | (+|-)DES cending KF=keyfile RS=record size | | (See the CIP manual for a list of all options and descriptions.) | | Examples NOBROADCAST -- Switch. Default :BROADCAST. If specified the shutdown | | message will only broadcast to 'SYS$OUTPUT' of the shutdown utility. | | Examples | | shutdown 5:0 A MESSAGE In 5 minutes all current processes will be | | killed, and all mounted devices will be dismounted. 'A MESSAGE' | | will be broadcast to all 'TTY' devices. The STTY utility switch | | ':NOBROADCAST' will suppress this message. | | shutdown :45 :reboot :nobroadcast In 45 seconds the system will be | | shutdown. It will then be automatically rebooted. The broadcast | | message will only go to 'SYS$OUTPUT' of the shutdown utility. | | | |-----------------------------------------------------------------------------| | shutdown delay message :nobroadcast :reboot  | |-----------------------------------------------------------------------------| | shlog Name {none all} | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters PREPARE SYSTEM FOR POWER SHUTDOWN -- SHUTDOWN COMMAND | | Delay -- Required. Default none. The amount of time in minutes and | | seconds to wait before shutting down the system. Delay time is given | | in the form MM:SS. | | Message -- Optional. Default none. Message to be sent to all 'TTY' | | class devices. | | :REBOOT -- Switch. Default :NOREBOOT. The system will automatically do | | a warm boot after the system is completely shutdown. | | : table for the user's process | | shlog d* Displays all names beginning with D | | shlog d* all Displays redundant assignments of any Names beginning | | with D | | | | | | | | | | | | | | | | | | | | ,Send files to another WICAT system | | r Receive files from another WICAT system | | sa Send files, and convert them to hex ASCII (7-bit lines) | | ra Receive files, and convert them to hex ASCII (7-bit lines) | | Port -- Required. Default: none. Specify the port that serves as the | | communication channel between the two systems. This port must be | | mounted (see the MNT Command) as a TTYSPC. | | Source -- Required. Default: none. Specify the files to be transferred. | | Wild card symbols are permitted. | | Destination -- Required. Default: none. Specify the names of the files | | to be created. Wild card symbols are permitted. | | Example | | sscopy r _tt1 _di1/ins/acct.* _dc0a0/memo/*  | | | | | | | | | |-----------------------------------------------------------------------------| | sp Devicename | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SYSTEM-TO-SYSTEM FILE TRANSFER -- SSCOPY COMMAND | | Function -- Required. Default: none. Five values are possible for | | this parameter: | | b Background operation, i.e., operate as the remote station | | s  the default device. Use the | | DEV Command to find out the names of currently mounted devices. | | SP works only on disk devices. | | Examples | | sp Displays this kind of report for the default device: | | | | DISK USAGE OF _DC0A0 | | FREE = 10613 SECTORS. | | USED = 10188 SECTORS. | | BAD = 7 SECTORS. | | TOTAL= 20808 SECTORS. | | | | sp _dx0 Displays a similar report for _DX0 | |  | | sort report.txt +des Sorts REPORT.TXT, in descending order | | and writes to terminal screen | | sort report.txt >sreport.txt Sorts REPORT.TXT, writes to SREPORT.TXT | | sort file1.dat file2.dat Sorts and merges FILE1.DAT and FILE2.DAT | | sort mail.txt KF=sort.txt Sorts MAIL.TXT as specified by options | | in the file SORT.TXT | | | |-----------------------------------------------------------------------------| | sort file1 file2 options | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY SPACE ALLOCATION ON A DEVICE -- SP COMMAND | | Devicename -- Optional. Default: ,te 17:10:00. | | Example | | stim 11/10/82 16:30:50 Sets the system clock to 4:30 P.M. on | | 11 October 1982. | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | stim DD/MM/YY HH:MM:SS | ----------------------------------------------------------------------------- --------------------------------------------------| | stat | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters SET TIME ON SYSTEM CLOCK -- STIM COMMAND | | Date -- Required. Default: none. DD/MM/YY is the format for what you | | type, e.g., 9/10/82 for 9 October 1982. Note that you need not | | use double digits such as 09, etc. | | Time -- Required. Default: none. HH:MM:SS is the format for what you | | type, e.g., 8:00:30 for 8 hours, no minutes, and 30 seconds. | | Inasmuch as no distinction is made between A.M. and P.M., you | | will find 24-hour notation necessary, e.g., 17:10:00 for | | 5:10 P.M., etc. Note that if the seconds need not be specified, e.g. | | 17:10 is sufficient to indica | | This information for each current process, i.e., each | | process running when STAT is executed: | | | | PID | | PROCESS NAME | Status Code Definitions | | STATUS ----------------| A-Abort I-I/O wait | | MEMORY USED | C-No Ctrl/C N-Non-delete | | PRIVILEGES | D-Dump error R-Realtime | | USER AND GROUP ID | E-Executable T-Timer wait | | PRIORITY | H-Hibernated | | TIMESLICE | | | |------------------------------------------------| | Copies all files named ACCT from _DI1/INS/ on remote system to | | _DC0A0/MEMO/ on new system. Filenames and ext. are unchanged. | |-----------------------------------------------------------------------------| | sscopy {b s r sa ra} Port Source Destination | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters LIST CURRENT PROCESSES -- STAT COMMAND | | None. | | Example | | stat Displays a report that tells you: | | | | When the system was booted | | Amount of free memory - | | | | Finally, use this command only if you are using diskettes as | | your system disks. | | | |-----------------------------------------------------------------------------| | swap Device_driver | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters TALK THROUGH A SPECIFIED PORT -- TALKT COMMAND | | Devicename -- Required. Default: none. Type the name of the port | | through which you wish to "talk" to another system. See the NAMES | | help file for the devicenames on your system. | | Example ion | | that contains the driver for the system disk. | | Examples | | swap flop$100.dsr Allows you to swap system disks on a system | | with 8-inch floppies | | swap mflop$150.dsr Allows you to swap system disks on a system | | with 5.25-inch floppies | | | | | | | | | | WARNING: If the file designation of the device driver for the system | | disk is incorrect, i.e., if you assign the wrong driver, you | | will be unable to remount the system disk. 5BITS 600BAUD VISUAL200 TABS | | 6BITS 1200BAUD TVI912 MASK8BIT | | 7BITS 1800BAUD MG8000 CONTROLU | | 8BITS 2000BAUD T7000 BROADCAST | | Examples | | stty _tt0 visual200 tabs Sets _TT0 to Visual 200 mode and engages TABS | | stty _tt2 4800 Sets port _TT2 to run at 4800 Baud | |-----------------------------------------------------------------------------| | stty Port Characteristics (see list above) | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters EXCHANGE THE SYSTEM DISK -- SWAP COMMAND | | Device driver -- Required. Default: none. Type the file designat-------------------------------------------------------- | Parameters SET TERMINAL CHARACTERISTICS -- STTY COMMAND | | Port -- Optional. Default: current input device. Use the DEV command | | to learn th name of currently mounted devices for your system. | | Characteristics -- Optional. Default: current settings (no change) | | More than one characteristic can be specified on the command line | | Valid characteristics are: (unique abbreviations are allowed) | | 1STOPBIT 50BAUD 2400BAUD FT0..FT15 HOSTSYNC | | 1.5STOPBIT 75BAUD 3600BAUD CONTROLC | | 2STOPBIT 110BAUD 4800BAUD XONXOFF | | DISABLEPARITY 134.5BAUD 7200BAUD CONTROLX | | ODDPARITY 150BAUD 9600BAUD CONTROLZ | | EVENPARITY 300BAUD 19200BAUD CONTROLO | | -| time | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY TERMINAL CHARACTERISTICS -- TTY COMMAND | | Port -- Optional. Default: the port designated as SYS$OUTPUT for your | | user process. The NAMES help file gives you the devicenames for | | your system. | | Examples | | tty Displays the terminal, or port, characteristics of the port | | designated as SYS$OUTPUT for your user process | | tty _tt0a0 Displays the terminal, or port, characteristics of _TT0A0 | | | |  | | | | | | | | | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| eak the communcation between your system and the | | next. | |-----------------------------------------------------------------------------| | talkt Devicename | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY SYSTEM CLOCK TIME -- TIME COMMAND | | None. | | Examples | | time Displays the date and time according to the system clock | | (which is set by means of the STIM Command). | | | | | |  | | talkt _tt3 Allows you to use port _TT3 as a communication line to | | another system, i.e., TALKT makes your system seem like | | a terminal mounted on the other system. | | | | TALKT can be used to communicate transparently more than one level. | | Use [CTRL] z [N] [CTRL] z to transmit a control z character N levels | | down the chain. | | | | Use [CTRL] z [N] [CTRL] q to break the transparent communication N | | levels down the chain. | | | | | | Use [CTRL] z [CTRL] q to br. the mnemonic. Ten contiguous characters at a time | | can be displayed in block letters on the screen. Therefore, any space | | within the Text forces the following group of contiguous characters | | characters to appear on a new line when the Text is written | | to SYS$OUTPUT. | | Examples | | typeb TEST TEST appears in uppercase block letters on the | | terminal screen | | typeb THIS IS A TEST THIS IS A TEST also appears in uppercase block | | letters on the terminal screen, but, because of | | the spaces, each word (or group of contiguous | | characters) appears on a separate line | | typeb THIS_IS A_TEST THIS_IS appears on one line, and A_TEST appears | |  | | | | | | | | Use the no scroll key, [NO SCRL], to stop the scrolling, or movement, of | | the text on the screen. You can also type [CTRL] s to stop the scrolling, | | and [CTRL] q to cause it to resume. | |-----------------------------------------------------------------------------| | type File_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY TEXT IN BLOCK LETTERS -- TYPEB COMMAND | | Text -- Required. Default: none. You can type up to 71 characters and | | spaces following ------------------------- | Parameters DISPLAY CONTENTS OF TEXT FILE -- TYPE COMMAND | | File designation -- Required. Default: none. Wild card symbols are | | permitted in the filename, file extension, and version number fields. | | Specify a list by separating the designations with commas. | | Spaces are disallowed. | | Examples | | type *.*.* Types all versions of all files in the default | | directory (the files appear in the order in which | | they are called for in the parameter value) | | type memo.txt >_tt1 Types MEMO.TXT, and redirects the output so that | | instead of the contents of MEMO.TXT appearing on | | SYS$OUTPUT, they appear on the device attached to | | port _TT1  | | | | | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | tty Port | ----------------------------------------------------------------------------- ----------------------------------------------------. | | | | | | | | | | | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | version rt to REPORT.VER | | in the default directory | |-----------------------------------------------------------------------------| | verify File_desig. Checksum_file_desig. Output_file_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters DISPLAY MCS VERSION NO., CIP VERSION DATE -- VERSION COMMAND | | None. | | Example | | version Displays this kind of report on your terminal screen: | | | | WICAT/MCS_V4.0.0 21-OCT-1982 | | Copyright 1980 WICAT Systems. | | CIP Version 6-SEP-1982  | | Checksum file designation -- Required. Default: none. Specify the file | | containing the files designated in the first parameter. This file | | should already have been created by CHECKSUM. | | Output file designation -- Optional. Default: SYS$OUTPUT. Use this to | | specify a file (that will be created by VERIFY) to contain the report | | on the verification. | | Examples | | verify *.oct.* report.cks Computes a checksum for each | | file in REPORT.CKS that has a | | .OCT extension, and writes the | | output to the terminal screen | | verify *.oct.* report.cks report.ver Performs the same function, but | | writes the repo on a second line when TYPEB is executed | | | | | | | |-----------------------------------------------------------------------------| | typeb Text | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters VERIFY FILE CHECKSUMS -- VERIFY COMMAND | | File designation -- Required. Default: none. Wild card symbols are | | permitted in the directory name, filename, file extension, and version | | number fields. Specify the files, contained in the Checksum File, | | that you want verified. / | | | | | | | | | | | | | |-----------------------------------------------------------------------------| | xfer Device_driver Devicename | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters TRANSMIT A FILE (Obsolete) -- XMIT COMMAND | | None. | | Example ameters COPY A DISKETTE -- XFER COMMAND | | Device driver -- Required. Default: none. The NAMES help file gives you | | the file designations for the device drivers for your system. Type | | the file designation for the device driver for the floppy drives on | | your system. | | Devicename -- Required. Default: none. Type DF if your system has two | | 8-inch floppy drives. Type DX if your system has two 5.25-inch floppy | | drives. | | Examples | | xfer mflop$150.dsr dx Initiates XFER on a system with two 5.25-inch | | floppy drives | | xfer flop$100.dsr df Initiates XFER on a system with two 8-inch | | floppy drives  | | vew memo.doc Creates, or gives you access to, MEMO.DOC | | in your default directory | | vew _dx0/summary/part1.000 Creates, or gives you access to, PART1.000 | | in /SUMMARY/ on _DX0 | | | | | | | | | |-----------------------------------------------------------------------------| | vew File_desig. | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Par | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters EDIT A TEXT FILE -- VEW COMMAND | | File designation -- Optional. Default: If VEW has not been executed | | since you logged on, a file named VEW$MEMORY is created (to exit | | this file, you must use the FN Function to assign a filename). If | | VEW has been executed, and you type VEW onto the command line and | | strike [RETURN], you are given access to the file you last used VEW | | to edit. Wild card symbols and lists of file designations are | | disallowed. If the file you designate does not already exist, VEW | | creates it and, unless you specify otherwise, assigns it to your | | default directory. | | Examples / | |-----------------------------------------------------------------------------| | zap File_desig. | -----------------------------------------------------------------------------ays the contents of INTRO.000 in hexadecimal, | | and allows you to edit the file's contents | | | | | | | | | | | | | | | | | | | | | | | | rompts: "Press RETURN when ready | | to send. | | | | Port _TT1 is used for the transfer of data. Type Q to terminate XMIT. | |-----------------------------------------------------------------------------| | xmit | ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- | Parameters INSPECT AND CHANGE FILE CONTENTS -- ZAP COMMAND | | File designation -- Required. Default: none. If the file you specify | | does not exist, ZAP creates it. See the CIP manual for information | | on how to use ZAP. | | Example | | zap intro.000 Displ | | xmit This prompt appears on the screen when you strike [RETURN]: | | | | Send, Receive, or Quit: | | | | If you type S or R, this prompt appears: | | | | Filename: | | | | If you are the sender, type the name of the file to be sent. | | If you are the receiver, type the name by which the copy of | | the file will be known. | | | | The "sending system" then p0 EQU * ;Size of boot block PAGE * * ******************************************************************************* * Boot Block Table Definitions ******************************************************************************* BOOTERRLIMIT: EQU 20 ;How many times we will try to find boot block BOOTSEARCH: EQU 32 ;How for to advance on each search. ORG.L 0 BOOTLABEL: DS.B 16 ;Holds boot block label BOOTLABELSIZE: EQU 16 ;Holds boot block label size BOOTCREATEDATE: DS.L 2 ;Holds volumes creation date. BOOTVOLUMEID: DS.W 1 ;Holds volumes ID number. BOOTOWNERID: DS.W 1 ;Holds volumes ONWER ID number. BOOTGROUPID: DS.W 1 ;Holds volumes GROUP ID number. BOOTPROTECTION: DS.W 1 ;Holds volumes Protection mask. BOOTDEFALLOC:  PAGE * * ******************************************************************************* *** Any OS Boot Block Definition ******************************************************************************* ORG.L 0 ANYOSDRIVEIDENTIFIER: DS.L 1 ;Holds Drive identifier (O.S. specific) ANYOSSECTORSIZE: DS.L 1 ;Holds the sector size of device ANYOSLOADADDRESS: DS.L 1 ;Holds Memory address where system loader will be loaded ANYOSENTRYADDRESS: DS.L 1 ;Holds Memory address of entry point into system loader ANYOSSECTORTABLE: DS.L 58+1 ;This is the logical sector table. * ;It ends with a -1 ($FFFFFFFF) ANYOSNOTCHECKSUM: DS.W 1 ;First checksum (notted sum of words to here) ANYOSSHIFTCHECKSUM: DS.W 1 ;Second checksum (right rotated sum of words to here) ANYOSBOOTBLOCKSIZE: FCBDISPPAS|QQ,W,"&FCBICDISPASMww,H,&MATHDISPASMD,N,&OFFSETDEFASM&&,),M&PFDDISPASMII,,:&PRCSDISPASM!##,],&PRCSDISPPAS= ,U,&SYNCEQUASMJ,4,I&SYSEQUASMM**, , J&SYSERRASMx3\`\`,! ,!P&SYSERRPASԓ33,"*,##&SYSTEM100CND,#L,#a&SYSTEM150CND ,$8,$T&SYSTEM156CND !,%,%,&TBOOTDISPASM,& ,&'&TFILEDISPASMQ,&K,'&_DC1/SYSINCL.SYS/- H &HB.ANYOSBOOTASM((,?,W&BOOTDISPASM ( ,,A&BOOTDISPPAS,2,O&CACHEDISPASM,,&&CLASSCMDASM#BB,Z,&CLOCKEQUASM+,5,T&CONTCMDASM; ,",@&DEVTDISPASMGy,,&DEVTDISPPAS] ,Q, &DIRDISPASMmEE,1,<&DIRDISPPASpa,&,@&DSTATDISPASMrp\\,,(&DSTATDISPPAS,,<&FCBDISPASM,a,&0************************************************ * Cache Header Table Definitions ******************************************************************************* CACHECOLUMNSIZE: EQU 16 ;Max number of cache elements per column CACHECOLUMNWIDTHSHF: EQU 3 ;Shift value for column table width (8 bytes). ORG.L 0 CACHENEXTLINK: DS.L 1 ;Holds pointer to next cache element. CACHEBACKLINK: DS.L 1 ;Holds pointer to previous cache element. CACHESECTORNUMBER: DS.L 1 ;Holds sector this cache holds. CACHEPFDID: DS.L 1 ;Holds PFD address which is used in close flush. CACHEBUFPTR: DS.L 1 ;Holds buffer address of where to transfer to. CACHEPRCSQH: DS.L 1 ;Holds process locking que head. CACHELOADEDQH: DS.L 1 ;Holds DSR locking que head. CACHEMODIFYQH: DS.L 1 ;Holds PCB address of waiting writer. CACHEHEADERINDEX: DS.W 1 ;Holds column index for this que element. CACHEERRORNUMBER: DS.W 1 ;Holds requests error number. CACHEREFCOUNT: DS.W 1 ;Holds reader access count. CACHESECTORCOUNT: DS.W 1 ;Holds number of sectorsnteger; {** owners logon group id } protection : integer; {** volume protection code bits } defalloc : integer; {** # sectors initially allocated a file} secalloc : integer; {** # sectors added when file extended} flushflag : integer; {** volume flush flag } sectorsize : integer; {** number of bytes per sector } shiftcount : integer; {** sector size shift count } cachesize : integer; {** # of sectors for disk cache } maxcachaloc : integer; {** max cache used per request } sectorcount : longint; {** total # of sectors on volume } devicename : packed array[1..8] of char; {** device name } fcbsector : longint; {** sector number of FCB file } dmntflag : integer; {** dismount flag } readahead : integer; {** read ahead flag } reserved : packed array[1..186] of char; {** unused } checksum : integer; {** 1's complement checksum } shiftcsum : integer; {** shifted checksum } end; PAGE * * *******************************nt flag. BOOTPROPERDISMOUNT: EQU 0 ;Volume is currently dismounted. BOOTIMPROPERDISMOUNT: EQU $7F ;Volume is currently mounted. BOOTREADAHEADFLAG: DS.W 1 ;Holds read ahead capability flag. BOOTNOREADAHEAD: EQU 0 ;Can not do readahead. BOOTREADAHEAD: EQU $7F ;Can do readahead. BOOTRESERVED: DS.B 186 ;Holds length of reserved section. BOOTRESERVEDSIZE: EQU 186 ;Holds length of reserved section. BOOTNOTCHECKSUM: DS.W 1 ;Holds boot blocks first checksum. BOOTSHIFTCHECKSUM: DS.W 1 ;Holds boot blocks second checksum. BOOTBLOCKSIZE: EQU * ;Size of boot block. type bootblock = record {** disk boot block record format (256 bytes)} bootlabel : packed array[1..16] of char; {** volume label } creatdate : array[1..2] of longint; {** date volume inited} volumeid : integer; {** volume id } ownerid : integer; {** owners logon user id } groupid : i DS.W 1 ;Holds volumes default file allocation. BOOTSECALLOC: DS.W 1 ;Holds volumes thereafter file allocation. BOOTFLUSHFLAG: DS.W 1 ;Holds volumes Autoflush flag. BOOTAUTOFLUSHOFF: EQU 0 ;Do not do Autoflush. BOOTAUTOFLUSHON: EQU 1 ;Do do Autoflushing. BOOTSECTORSIZE: DS.W 1 ;Holds volumes sector size. BOOTSHFTCOUNT: DS.W 1 ;Holds volumes sector size shift count. BOOTCACHESIZE: DS.W 1 ;Holds how many sectors are to be in the cache. BOOTMAXCACHEALLOC: DS.W 1 ;Holds max amount any one may have of cache at one time. BOOTSECTORCOUNT: DS.L 1 ;Holds how many sectors are on volume. BOOTDEVICENAME: DS.B 8 ;Holds volumes file name. BOOTDEVICENAMELEN: EQU 8 ;Length of file name field. BOOTFCBSTARTSECTOR: DS.L 1 ;Holds starting sector of FCB file. BOOTDISMOUNTFLAG: DS.W 1 ;Holds mount/dismou1 PAGE * * ******************************************************************************* * System Clock and Clock Chip Constants ******************************************************************************* TIMESLICEDEFAULT: EQU 5000 ;Default time slice quantum (50 millisecs) TICKSPERSECOND: EQU 100 ;Real time clock ticks per second KILOHERTZ: EQU 8000 ;Processor clock speed in kilohertz MILLSECS01: EQU 40*KILOHERTZ/400 ;Timer latch value for 1 msec MILLSECS10: EQU 400*KILOHERTZ/400 ;Timer latch value for 10 msec MILLSECS20: EQU 800*KILOHERTZ/400 ;Timer latch value for 20 msec MILLSECS50: EQU 2000*KILOHERTZ/400 ;Timer latch value for 50 msecs MILLSECS100: EQU 4000*KILOHERTZ/400 ;Timer latch value for 100 msecs MILLSECS200: EQU 8000*KILOHERTZ/400 ;Timer osition. PFDCMDSETDEF: EQU 24 ;Request to Set the default directory. PFDCMDSETPROT: EQU 26 ;Request to set File protection. PFDCMDFLUSH: EQU 28 ;Request to Flush a device buffers. PFDCMDGETSTATUS: EQU 30 ;Request to get device status. PFDCMDSETSTATUS: EQU 32 ;Request to set device status. PFDCMDPHYSOPER: EQU 34 ;Request to perform Physical operations. PFDCMDCOPYFCB: EQU 36 ;Request to Read an FCB. PFDCMDNGETSTATUS: EQU 38 ;Request to get new 128 byte device status PFDCMDNSETSTATUS: EQU 40 ;Request to set new 128 byte device status PFDCMDSYNCBID: EQU 42 ;Request to bisync bid or wait for bid PFDCMDSYNCPOLLSEL: EQU 44 ;Request to bisync poll, select or wait PFDCMDSYNCCNTRL: EQU 46 ;Request for bisync specific control function PFDCMDSYNCLOG: EQU 48 ;Request for bisync logging operation PFDCMDFASTREADCMPL: EQU 50 ;Request to wait for fast read load to complete ****************************************************************** * Class Handler Command Definitions. ******************************************************************************* PFDCMDOPEN: EQU 0 ;Request to Open a file. PFDCMDCREATE: EQU 2 ;Request to Create a file. PFDCMDREAD: EQU 4 ;Request to Read a record. PFDCMDWRITE: EQU 6 ;Request to Write a record. PFDCMDDELETE: EQU 8 ;Request to Delete a file. PFDCMDCLOSE: EQU 10 ;Request to Close a file. PFDCMDRENAME: EQU 12 ;Request to Rename a file. PFDCMDSKIP: EQU 14 ;Request to Skip a file or record. PFDCMDMOUNT: EQU 16 ;Request to Mount a device. PFDCMDDISMOUNT: EQU 18 ;Request to Dismount a device. PFDCMDGETPOS: EQU 20 ;Request to receive Default file position. PFDCMDSETPOS: EQU 22 ;Request to set Default file p to transfer, * ;returns back sector index. CACHEMODERRCNT: DS.W 1 ;Holds modify error count. CACHEMODERRMAX: EQU 32 ;How many write retries before removing node. CACHEFLAGS: DS.W 1 ;Holds flags. CACHEFLAGMODIFIED: EQU 0 ;Set when buffer has been modified. CACHEFLAGWRITING: EQU 1 ;Set if a write request is pending. CACHEFLAGERRLOGGED: EQU 2 ;Set if error on sector has been logged. CACHEFLAGREADAHEAD: EQU 3 ;Set if is doing a readahead request. CACHEFLAGFLUSHMODE: EQU 4 ;Contain if been flushed this time or not. CACHEFLAGPAGEHEAD: EQU 5 ;Set if this element points to front of page. CACHEIDFIELD: DS.W 1 ;Holds buffer ID TAG. CACHEIDTAG: EQU $9999 IFEQ DEBUGENABLE CACHELOCKTYPE: DS.W 1 ;Holds lock type. CACHENOTLOCKED: EQU 0 ;Cache is not locked. CACHELOCKEDNON: EQU 1 ;Cache is non-modify lcoked. CACHELOCKEDMOD: EQU 2 ;Cache is modify locked. ENDC CACHEBUFSIZE: EQU * ;Holds cache size. PAGE * * *************1*********************************************************** * Generic Device Controller Commands (Old Tape Class Handler) ******************************************************************************* CNTSTARTUPCMD: EQU 0 CNTSHUTDOWNCMD: EQU 1 CNTREADCMD: EQU 2 CNTWRITECMD: EQU 3 CNTFORMATCMD: EQU 4 CNTREADSTATUS: EQU 5 CNTSETSTATUSCMD: EQU 6 CNTSKIPCMD: EQU 7 CNTWRITETAPEMARK: EQU 8 CNTSETPID: EQU 9 CNTMAXCOMMAND: EQU 9 * * ******************************************************************************* * Disk Device Controller Commands. ******************************************************************************* NNONMODREADFIND: EQU 0 ;Non-modify read, just see if in cache. NNONMODREAD: EQU 1 ;Non-modify read, get the sector. NMODREAD: EQU 2 ;Modify read, get the sector. NMODREADNOLOAD: EQU 3 ;Modify read, do not read from disk. DISKCNTPRIOR0:  ENDC IFEQ SYSTEM156 DAYCLOCKLATCH: EQU $F00060 ;DAY CLOCK BASE ADDRESS T1CLADDR: EQU $F00048 ;CLOCK 1 LOWER COUNTER LOC T1CHADDR: EQU $F0004A ;CLOCK 1 HIGH COUNTER LOC T1LLADDR: EQU $F0004C ;CLOCK 1 LOWER LATCH LOC T1LHADDR: EQU $F0004E ;CLOCK 1 HIGH LATCH LOC T2CLADDR: EQU $F00050 ;CLOCK 2 LOWER COUNT LOC T2CHADDR: EQU $F00052 ;CLOCK 2 HIGH COUNT LOC ACRADDR: EQU $F00056 ;CLOCK COMMAND REGISTER IFRADDR: EQU $F0005A ;CLOCK INTERRUPT FLAG REGISTER IERADDR: EQU $F0005C ;CLOCK INTERRUPT ENABLE REGISTER ENDC PAGE * * ******************** $E00B40 CLKCONTROLREG2: EQU $E00B42 CLKSTATUSREG: EQU $E00B42 ;Status register for clock chip ENDC IFEQ SYSTEM150 DAYCLOCKLATCH: EQU $FB0000 ;DAY CLOCK BASE ADDRESS T1CLADDR: EQU $FA0008 ;CLOCK 1 LOWER COUNTER LOC T1CHADDR: EQU $FA000A ;CLOCK 1 HIGH COUNTER LOC T1LLADDR: EQU $FA000C ;CLOCK 1 LOWER LATCH LOC T1LHADDR: EQU $FA000E ;CLOCK 1 HIGH LATCH LOC T2CLADDR: EQU $FA0010 ;CLOCK 2 LOWER COUNT LOC T2CHADDR: EQU $FA0012 ;CLOCK 2 HIGH COUNT LOC ACRADDR: EQU $FA0016 ;CLOCK COMMAND REGISTER IFRADDR: EQU $FA001A ;CLOCK INTERRUPT FLAG REGISTER IERADDR: EQU $FA001C ;CLOCK INTERRUPT ENABLE REGISTER latch value for 200 msecs MILLSECS250: EQU 16000*KILOHERTZ/400 ;Timer latch value for 400 msecs DAYCLOCKSTOP: EQU $1C ;Start/Stop location. DAYCLOCKUMIN: EQU $8 ;Units of minutes offset DAYCLOCKTNSEC: EQU $2 ;Tents of seconds offset. IFEQ SYSTEM100 DAYCLOCKLATCH: EQU $E00B70 CLKINTVEC: EQU $200096 ;Clock chip interrupt vector CLKTIMELATCH1: EQU $E00B44 ;Latch of of timer latch1 (unused) CLKTIMELATCH2: EQU $E00B48 ;Latch of of timer latch2 (tick clock) CLKTIMELATCH3: EQU $E00B4C ;Latch of of timer latch3 (swap clock) CLKCOUNTER1: EQU $E00B44 ;LSB of timer counter1 CLKCOUNTER2: EQU $E00B48 ;LSB of timer counter2 CLKCOUNTER3: EQU $E00B4C ;LSB of timer counter3 CLKCONTROLREG13: EQU 2ence count. DEVTDRIVEID: DS.L 1 ;Holds internal ID for drive. DEVTINTERNALNAME: EQU * ;Starting location of internal name structure DEVTINTNMLEN: EQU 12 ;Holds length of this field. DEVTCBIDX: DS.B 1 ;Holds controler board index. DEVTDRTYPE: DS.B 1 ;Holds drive type number. DEVTDRNUM: DS.W 1 ;Holds drive number. DEVTPREFIX: DS.B DEVICENAMELENGTH ;Holds name prefix. DEVTCLASSHANDPTR: DS.L 1 ;Holds Class handler address for device. DEVTDEVHANDPTR: DS.L 1 ;Holds Device driver address for device. DEVTFLAGS: DS.W 1 ;Holds Device flags. DEVTFLAGFCBFLUSHMODE: EQU 4 ;Current state of flush flag in FCB's. DEVTFLAGCCHFLUSHMODE: EQU 5 ;Current state of flush flag in cache. DEVTFLAGFLUSHING: EQU 6 ;We are currently flushing. DEVTFLAGWRITEPROT: EQU 7 ;Device is write protected. DEVTFLAGWRITEBUF: EQU 8 ;(Used by tape.) DEVTFLAGREADAHEAD: EQU 9 ;(Used by tape.) DEVTFLAGCREATMODE: EQU 10 ;(Used by tape.) DEVTFLAGFILEOPEN: EQU 11 ;(Used by tape.) DEVTCBPTR: DS.L 1 ;List head to file control blocks. DEVTB************************************************************************ ORG.L 0 DEVTNEXTLINK: DS.L 1 ;Points to next device in list. DEVTBACKLINK: DS.L 1 ;Points to previous device in list. DEVTNAME: DS.B 8 ;Holds users input drive name. DEVICENAMELENGTH: EQU 8 DEVTCLASS: DS.W 1 ;Holds the class of the device. DEVCLASSTTYSPC: EQU 0 ;Special Character type device. DEVCLASSTTY: EQU 1 ;Normal Character type device. DEVCLASSTAPESPC: EQU 2 ;Special Tape type device. DEVCLASSTAPE: EQU 3 ;Normal Tape type device. DEVCLASSDISKSPC: EQU 4 ;Special Disk type device. DEVCLASSDISK: EQU 5 ;Normal Disk type device. DEVCLASSNETSPC: EQU 6 ;Special Network type device. DEVCLASSNET: EQU 7 ;Normal Network type device. DEVCLASSPIPESPC: EQU 8 ;Special Pipe type device. DEVCLASSPIPE: EQU 9 ;Normal Pipe type device. DEVCLASSSYNCSPC: EQU 10 ;Special Sync type device DEVCLASSSYNC: EQU 11 ;Normal Sync type device DEVCLMAXDEV: EQU 11 ;Maximum valid class ID. DEVTREFCOUNT: DS.W 1 ;Holds Device referEQU 7 TAPEWRITETAPEMARK: EQU 8 TAPEMAXCOMMAND: EQU 8 ******************************************************************************* * TTY Device Controller Commands. ******************************************************************************* TTYSTARTUPCMD: EQU 0 TTYSHUTDOWNCMD: EQU 1 TTYREADCMD: EQU 2 TTYWRITECMD: EQU 3 TTYPURGEINPUTBUFFER: EQU 4 TTYGETSTATUSCMD: EQU 5 TTYSETSTATUSCMD: EQU 6 TTYDIALCMD: EQU 7 TTYHANGUPCMD: EQU 8 TTYSETCONTCPID: EQU 9 TTYRESET: EQU 10 TTYSYNCBID: EQU 11 TTYSYNCWAITBID: EQU 12 TTYSYNCPOLL: EQU 13 TTYSYNCSELECT: EQU 14 TTYSYNCWAITPOLLSEL: EQU 15 TTYSYNCCNTRL: EQU 16 TTYSYNCSTARTLOG: EQU 17 TTYSYNCSTOPLOG: EQU 18 TTYSYNCXFERLOG: EQU 19 TTYMAXCOMMAND: EQU 19 PAGE * * ******************************************************************************* * Device Table Definitions. ******* EQU 0 ;Priority level 0 command. DISKCNTPRIOR1: EQU 4 ;Priority level 1 command. DISKCNTPRIOR2: EQU 8 ;Priority level 2 command. DISKCNTNUMBPRIOR: EQU 3 ;Number of priorities. DISKCNTSTARTUPCMD: EQU 0 DISKCNTSHUTDOWNCMD: EQU 1 DISKCNTREADCMD: EQU 2 DISKCNTWRITECMD: EQU 3 DISKCNTFORMATCMD: EQU 4 DISKCNTGETSTATUSCMD: EQU 5 DISKCNTSETSTATUSCMD: EQU 6 DISKCNTFORMATTRACKCMD: EQU 7 DISKCNTMAXCOMMAND: EQU 7 ******************************************************************************* * Tape Device Controller Commands. ******************************************************************************* TAPESTARTUPCMD: EQU 0 TAPESHUTDOWNCMD: EQU 1 TAPEREADCMD: EQU 2 TAPEWRITECMD: EQU 3 TAPEERASECMD: EQU 4 TAPEGETSTATUSCMD: EQU 5 TAPESETSTATUSCMD: EQU 6 TAPESKIPCMD: 2fcb. DEVCLDSBBNUM1: DS.L 1 ;First Boot blocks sector number. DEVCLDSBBNUM2: DS.L 1 ;Second Boot blocks sector number. DEVCLDSALOCDSKQUE: DS.L 1 ;Allocate disk quehead. DEVCLDSALOCFCBQUE: DS.L 1 ;Allocate FCB quehead. DEVCLDISKSIZE: EQU * ;Disk Device table size const {-----------------------------------------------------------------------} { flag bit definitions } {-----------------------------------------------------------------------} devtfcbflushmode = 4; {devflags} devtcchflushmode = 5; {devflags} devtflushing = 6; {devflags} devtwriteprot = 7; {devflags} devtwritebuf = 8; {devflags} devtreadahead = 9; {devflags} devtcreatemode = 10; {devflags} devtfileopen = 11; {devflags} {-----------------------------------------------------------------------} { record definitions } {-----------------------------------------------------------------------} type devtclass = (devttty, devttape, devtdisk, devtnetwork, devtpipe, devtsync); devtable = record {** device table record format } ==================================================== ORG.L DEVTHEADSIZE ;Go to device dependent section. DEVCLDSFLUSHFLAG: DS.W 1 ;Holds Autoflush flag. DEVCLDSSECSHFCNT: DS.W 1 ;Holds Sector shift count. DEVCLDSDEFALLOC: DS.W 1 ;Holds Initial file allocation. DEVCLDSSECALLOC: DS.W 1 ;Holds Secondary file allocation. DEVCLDSREADAHEAD: DS.W 1 ;Holds readahead flag. DEVCLDSCACHERMIN: DS.W 1 ;Holds non-modified cache min size. DEVCLDSMAXCACHE: DS.W 1 ;Holds amount of cache user can have less 1 for dbra. DEVCLDSSIZEMAXCACHE: DS.W 1 ;Holds byte count of save stack area. DEVCLDSCACHECNT: DS.W 1 ;Holds number of cache elements allocated. DEVCLDSCACHEADDR: DS.L 1 ;Holds Disk Cache headnode. DEVCLDSBMPOS: DS.L 1 ;Holds BITMAP files next allocation location. DEVCLDSFCBBMPOS: DS.L 1 ;Holds FCB files next allocation location. DEVCLDSFCBPTR: DS.L 1 ;Address of FCB'S fcb. DEVCLDSDIRPTR: DS.L 1 ;Address of ROOTDIR's fcb. DEVCLDSFCBBITPTR: DS.L 1 ;Address of FCBBITMAP's fcb. DEVCLDSBITPTR: DS.L 1 ;Address of BITMAP's DQUE: DS.L 1 ;Readque header. DEVCLTYREADQUEOFFSET: EQU 4 ;Offset from writeque. DEVCLTTYSIZE: EQU * ;TTY device table size. DEVCLPIPESIZE: EQU * ;PIPE device table size. DEVCLSYNCSIZE: EQU * ;SYNC device table size. *============================================================================== * TAPE Device Table Parameters. *============================================================================== ORG.L DEVTHEADSIZE ;Go to device dependent section. DEVCLTPCHECKSUM: EQU * ;Old tape class handler DEVCLTPVALIDBYTES: DS.W 1 DEVCLTPBLOCKCNT: DS.W 1 DEVCLTPOVRRECLEN: DS.L 1 DEVCLTPBYTECOUNT: DS.L 1 DEVCLTPVOLLBLPTR: DS.L 1 DEVCLTPFILLBLPTR: DS.L 1 DEVCLTPFILSEQNUM: DS.W 1 DEVCLTPBUFSTART: DS.L 1 DEVCLTPBUFEND: EQU * DEVCLTPPROC: DS.L 1 DEVCLTPNEXTRECADR: DS.L 1 DEVCLTPNEXTRECNUM: DS.L 1 DEVCLTPBYTESREAD: DS.W 1 DEVCLTAPESIZE: EQU * ;TAPE device table size. *============================================================================== * DISK Device Table Parameters. *==========================UFSIZE: DS.W 1 ;Holds buffer size of device. DEVTIDFIELD: DS.W 1 ;Holds buffer ID tag. DEVTIDTAG: EQU $5555 ;Is the buffer ID tag. DEVTHEADSIZE: EQU * *============================================================================== * Network Device Table Parameters. *============================================================================== ORG.L DEVTHEADSIZE ;Go to device dependent section. DEVCLNETWRKSIZE: EQU * ;NETWORK device table size. *============================================================================== * TTY and PIPE Device Table Parameters. *============================================================================== ORG.L DEVTHEADSIZE ;Go to device dependent section. DEVCLTYREADCNT: DS.B 1 ;Holds read access count. DEVCLTYREADLOCKCNT: DS.B 1 ;Holds read lock count. DEVCLTYWRITECNT: DS.B 1 ;Holds write access count. DEVCLTYWRITELOCKCNT: DS.B 1 ;Holds write lock count. DEVCLTYWRITEQUE: DS.L 1 ;Writeque header. DEVCLTYWRITEQUEOFFSET: EQU 0 ;Offset from writeque. DEVCLTYREA3{** ptr to bitmap file for device} ddskbootblk1: longint; {** location of first boot block} ddskbootblk2: longint; {** location of second boot block} ddskaldskque: longint; {** allocate disk que head } ddskalfcbque: longint); {** allocate fcb que head } end; PAGE * * ******************************************************************************* * Directory Record Table Definitions ******************************************************************************* ORG.L 0 DIRRECFCBNUM: DS.L 1 ;Holds the files FCB number. DIRRECSEQNUM: DS.W 1 ;Holds the files sequence number. DIRRECLASTFCBNUM: DS.L 1 ;Holds an unused records old FCB number. DIRRECFILETYPE: DS.W 1 ;Holds file type of given file. DIRRECRESERVED: DS.B 6 ;Reserved space. DIRRECRESERVEDSIZE: EQU 6 ;Size of reserved speger); {** number bytes read } devtdisk : ( {Device table for disk class devices } ddskflushflg: integer; {** flush flag of system } ddskscshfcnt: integer; {** sector shift count } ddskdefalloc: integer; {** initial sector allocation} ddsksecalloc: integer; {** secondary sector allocation} ddskreadahed: integer; {** readahead flag } ddskcacreadm: integer; {** cache read minimum value } ddskmaxucach: integer; {** maximum user cache size } ddsksizemcac: integer; {** stack usage size of max cache} ddskcachecnt: integer; {** number of cache elements } ddskcacheptr: longint; {** pointer to cache column table} ddskbitmapps: longint; {** next sector to alloc in bitmap} ddskfcbbmpos: longint; {** next sector to alloc in fcb bitmap} ddskfcbptr : longint; {** ptr to fcb file for dev } ddskdirptr : longint; {** ptr to rootdir file for dev} ddskfcbbitpt: longint; {** ptr to fcbbitmap file for dev} ddskbitmappt: longint; ice table for tty, pipe and sync class devices } dttyreadacc : char; {** num files with read access} dttyreadlock: char; {** num files with read lock } dttywriteacc: char; {** num files with write access} dttywritelck: char; {** num files with write lock} dttywriteque: longint; {** que head for write access} dttyreadque : longint); {** que head for read access } devttape : ( {Device table for tape class devices } dtpevlidbyte: integer; {** } dtpeblockcnt: integer; {** } dtpeovrrecln: longint; {** record length of file open} dtpebytecnt : longint; {** } dtpevolblptr: longint; {** ptr to volume header block} dtpefilblptr: longint; {** ptr to fill block } dtpeflseqnum: integer; {** current file sequence num} dtpebufstart: longint; {** } dtpeproc : longint; {** } dtpenxtrecad: longint; {** next record address } dtpenxtrecnm: longint; {** next record number } dtpebytesred: int devnextlink : longint; {** address of next device table } devbacklink : longint; {** address of previouus device table} devicename : array [1..8] of char; {** device name } deviceclass : integer; {** class of this device } devrefcount : integer; {** number of files in use on device } devdriveid : longint; {** internal driver number } devcboardid : char; {** holds controller board id } devdtypeid : char; {** holds drive type id } devdrivenum : integer; {** holds drive number } devnameprfix: array [1..8] of char; {** name prefix } devclassptr : longint; {** pointer to class handler for dev } devdsrptr : longint; {** pointer to device driver for dev } devflags : integer; {** device flags } devfcbptr : longint; {** pointer to fcb chain for device } devbufsize : integer; {** holds blocking size of device } devbufferid : integer; {** holds internal buffer id field } case devtclass of devttty,devtpipe,devtsync : ( {Dev3 4 = 100 IPS. * 5-7 = Reserved. TAPESTATBPI1: EQU 8 ;These three bits define the density of TAPESTATBPI2: EQU 9 ;the tape Bits Per Inch. The binary TAPESTATBPI3: EQU 10 ;definitions are: * 0 = 800 BPI. * 1 = 1600 BPI. * 2 = 3200 BPI. * 3 = 6250 BPI. * 4 = 6400 BPI. * 5-7 = Reserved. TAPESTATFLAGS2: DS.W 1 TAPESTATERRINTENABLE: EQU 0 ;When set Error interrupt are enabled. TAPESTATRESERVED: DS.B 50 ;Reserved for future use. TAPESTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS TAPESTATRESERVEDSIZE: EQU 58 ;Reserved size. TAPESTATSIZE: EQU * ;Tape statulds device status for tape. TAPESTATREADY: EQU 0 ;Ready bit. TAPESTATINTPEND: EQU 1 ;Interrupt pending bit. TAPESTATREWINDING: EQU 2 ;Tape rewinding bit. TAPESTATBOTDETECT: EQU 3 ;BOT detect. TAPESTATEOTDETECT: EQU 4 ;EOT detect. TAPESTATWRITEPROT: EQU 5 ;Tape write protected. TAPESTATFLAGS1: DS.W 1 ;Holds status information. TAPESTATRAW: EQU 0 ;When set do Read after Writes. TAPESTATREADAHEAD: EQU 1 ;When set do Read ahead. TAPESTATSPEED1: EQU 2 ;These three bits define different drive TAPESTATSPEED2: EQU 3 ;speeds in inches/second. The binary TAPESTATSPEED3: EQU 4 ;definitions are: * 0 = 12 IPS. * 1 = 25 IPS. * 2 = 30 IPS. * 3 = 50 IPS. *ds device driver ID. DSTATBLOCKSIZE: DS.W 1 ;Holds Block size of the device. DSTATHARDERRORS: DS.W 1 ;Holds hard error count for device. DSTATSOFTERRORS: DS.W 1 ;Holds soft error count for device. DSTATNUMBREADOPER: DS.L 1 ;Holds number of Read operations. DSTATNUMBWRITEOPER: DS.L 1 ;Holds number of Write operations. DSTATMAXNUMDEV: DS.W 1 ;Holds maximum number of device this can handle DSTATCURNUMDEV: DS.W 1 ;Holds number of devices currently mounted on device. DSTATNUMTORETRY: DS.W 1 ;Holds number of times to retry operation DSTATRESERVED: DS.B 36 ;Reserved field. DSTATRESERVEDSIZE: EQU 36 ;Reserved field size. DSTATNEXTTABLEPTR: DS.L 1 ;Holds address of next table in line DSTATTOPHALFSIZE: EQU * * *------------------------------------------------------------------------------ * Tape status block definitions. *------------------------------------------------------------------------------ ORG.L DSTATTOPHALFSIZE TAPESTATDEVSTATUS: DS.W 1 ;Hoace. DIRRECFILENAME: DS.B 14 ;Holds File name. DIRRECSIZE EQU * type directory = record {** directory record format (32 bytes) } fcbnum : longint; {** File's FCB number(-1 if not used)} seqnum : integer; {** sequence number of FCB for file } lastfcb : longint; {** FCB number of previous file } filetype : integer; {** file type } reserved : packed array[1..6] of char; {** unused } filename : packed array[1..9] of char; {** file name } fileext : packed array[1..3] of char; {** file extension} fileversion : integer; {** version number } end; PAGE * * ******************************************************************************* * Device Status block offset definitions. ******************************************************************************* ORG.L 0 DSTATCLASSID: DS.W 1 ;Holds class ID of device status. DSTATDRIVERID: DS.W 1 ;Hol4 (0=enabled). TTYSTATDUPLEX: EQU 10 ;Full/Half duplex (0=Full duplex). TTYSTATMODEMCONTROL: EQU 11 ;Modem/No modem control (0=No modem). TTYSTATINPUTCOUNT: DS.W 1 ;Holds how many chars in input interrupt buffer. TTYSTATOUTPUTCOUNT: DS.W 1 ;Holds how many chars in output interrupt buffer. TTYSTATCOLUMNPOS: DS.W 1 ;Holds current column position. TTYSTATINPUTBUFSIZE: DS.W 1 ;Holds input buffer size in bytes. TTYSTATOUTPUTBUFSIZE: DS.W 1 ;Holds output buffer size in bytes. TTYSTATRESERVED: DS.B 38 ;Reserved fields. TTYSTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS TTYSTATRESERVEDSIZE: EQU 46 ;Holds size of reserved block TTYSTATSIZE: EQU * ;Holds size of tty status block * *------------------------------------------------------------------------------ * PIPE status block definitions. *------------------------------------------------------------------------------ ORG.L DSTATTOPHALFSIZE PIPESTATREADERPID: DS.L 1 ;Holds PID of pending reader. PIPESTATWRITERPID: DS.L 1------------------------------------------------ ORG.L DSTATTOPHALFSIZE TTYSTATMODEREG1: DS.B 1 ;Holds mode register 1 of UART. TTYSTATMODEREG2: DS.B 1 ;Holds mode register 2 of UART. TTYSTATCMDREG: DS.B 1 ;Holds command regiser of UART. TTYSTATTERMINALTYPE: DS.B 1 ;Holds terminal type definition. TTYSTATSTATREG: DS.B 1 ;Holds status register of UART. TTYSTATRESERVED1 DS.B 1 TTYSTATFLAGS1: DS.W 1 ;Holds certain flags. TTYSTATCONTROLC: EQU 0 ;Control C enable (0=enabled). TTYSTATXONXOFF: EQU 1 ;Xon Xoff enable (0=enabled). TTYSTATCONTROLX: EQU 2 ;Control X enable (0=enabled). TTYSTATCONROLZ: EQU 3 ;Control Z enable (0=enabled). TTYSTATCONTROLO: EQU 4 ;Control O enable (0=enabled). TTYSTATTABMAP: EQU 5 ;Tab map enable (1=enabled). TTYSTATMASK8BIT: EQU 6 ;Mask 8th bit enable (0=enabled). TTYSTATCONTROLU: EQU 7 ;Control U enable (0=enabled). TTYSTATBROADCAST: EQU 8 ;Broadcast enable (0=enabled). TTYSTATHOSTSYNC: EQU 9 ;Hostsync enable 1 = Double density. * 2 = Quad density. * 3 = Reserved. DISKSTATRAW: EQU 3 ;When set device does Read after Write verifyes. DISKSTATWRITEPROT: EQU 4 ;When set device is write protected DISKSTATSEEKDIRECTION: EQU 15 ;Gives current direction of seeks: * 0 = Increasing cylinder numbers. * 1 = Decreasing cylinder numbers. DISKSTATCURCYLINDER: DS.W 1 ;Holds current cylinder position. DISKSTATRESERVED: DS.B 38 ;Reserved field DISKSTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS DISKSTATRESERVEDSIZE: EQU 46 ;Reserved buffer size DISKSTATSIZE: EQU * ;Holds disk status block size * *------------------------------------------------------------------------------ * TTY status block definitions. *------------------------------s block size. * *------------------------------------------------------------------------------ * Disk status block definitions. *------------------------------------------------------------------------------ ORG.L DSTATTOPHALFSIZE DISKSTATINTERFAC: DS.W 1 ;Holds interleave factor. DISKSTATIOPBCNT: DS.W 1 ;Holds number of IOPB's allocated to drive. DISKSTATNUMBSECTORS: DS.L 1 ;Holds number of sectors on volume. DISKSTATSECPERTRACK: DS.W 1 ;Holds number of sectors/track. DISKSTATHEADS: DS.W 1 ;Holds number of heads on device. DISKSTATCYLINDERS: DS.W 1 ;Holds number of cylinders on volume. DISKSTATFLAGS1: DS.W 1 ;Holds flag definitions. DISKSTATDENSITY1: EQU 0 ;These two bits define the density being DISKSTATDENSITY2: EQU 1 ;used on device. The binary definitions are: * 0 = Single density. * 4diskflags} {-----------------------------------------------------------------------} { record definitions } {-----------------------------------------------------------------------} type devclass = (dsttty, dsttape, dstdisk, dstnetwork, dstpipe, dstsync); devstat = record {** device status block record format} classid : integer; {** class ID of device } driveid : integer; {** device driver id } blocksize : integer; {** block size of device } harderrors : integer; {** number of hard errors on device } softerrors : integer; {** number of retrys on device } readoper : longint; {** number of read operations on device} writeoper : longint; {** number of write operations on device} maxnumdev : integer; {** maximum number of mountable devices} curnumdev : integer; {** current number of mounted devices} numtoretry : integer; {** number of retrys to do on device } dstatreserv1: array [1..36] of char; {** reserved space. } nexttableprt: longint; {**---------------------} { tape status bit definitions } {-----------------------------------------------------------------------} tapestatready = 0; {tapestatus} tapestatintpend = 1; {tapestatus} tapestatrewinding = 2; {tapestatus} tapestatbotdetect = 3; {tapestatus} tapestateotdetect = 4; {tapestatus} tapestatwriteprot = 5; {tapestatus} tapestatraw = 0; {tapeflags1} tapestatreadahead = 1; {tapeflags1} tapestatspeed1 = 2; {tapeflags1} tapestatspeed2 = 3; {tapeflags1} tapestatspeed3 = 4; {tapeflags1} tapestatbpi1 = 8; {tapeflags1} tapestatbpi2 = 9; {tapeflags1} tapestatbpi3 = 10; {tapeflags1} tapestaterrintenable = 0; {tapeflags2} {-----------------------------------------------------------------------} { disk status bit definitions } {-----------------------------------------------------------------------} disk1statdensity = 0; {diskflags} disk2statdensity = 1; {diskflags} diskstatraw = 3; {diskflags} diskstatwriteprot = 4; {diskflags} diskstatseekdirection = 15; {-------------------------------------} { tty status bit definitions } {-----------------------------------------------------------------------} ttystatcontrolc = 0; {ttyflags} ttystatxonxoff = 1; {ttyflags} ttystatcontrolx = 2; {ttyflags} ttystatconrolz = 3; {ttyflags} ttystatcontrolo = 4; {ttyflags} ttystattabmap = 5; {ttyflags} ttystatmask8bit = 6; {ttyflags} ttystatcontrolu = 7; {ttyflags} ttystatbroadcast = 8; {ttyflags} ttyhostsync = 9; {ttyflags} ttystatduplex = 10; {ttyflags} ttystatmodemcontrol = 11; {ttyflags} {-----------------------------------------------------------------------} { sync flag bit definitions } {-----------------------------------------------------------------------} syncmultipoint = 0; {syncflags} syncebcdicline = 1; {syncflags} synccrcccitt = 2; {syncflags} synclrc = 3; {syncflags} syncasctoebcwrite = 4; {syncflags} syncebctoascread = 5; {syncflags} synctranslatetable = 6; {syncflags} {-------------------------------------------------- ;Holds PID of pending writer. PIPESTATPIPEID: DS.L 1 ;Holds PIPEs ID PIPESTATBUFFERSIZE: DS.W 1 ;Holds buffer size in bytes. PIPESTATBUFFERCOUNT: DS.W 1 ;Holds how many chars in pipe buffer. PIPESTATRESERVED: DS.B 40 ;Reserved fields. PIPESTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS PIPESTATRESERVEDSIZE: EQU 48 ;Holds size of reserved block PIPESTATSIZE: EQU * ;Holds size of PIPE status block DSTATBUFFERSIZE: EQU * ;Size of entire status block. const {-----------------------------------------------------------------------} { class definitions } {-----------------------------------------------------------------------} devclttyspc = 0; {classid} devcltty = 1; {classid} devcltapespc = 2; {classid} devcltape = 3; {classid} devcldiskspc = 4; {classid} devcldisk = 5; {classid} devclnetworkspc = 6; {classid} devclnetwork = 7; {classid} devclpipespc = 8; {classid} devclpipe = 9; {classid} devclsyncspc = 10; {classid} devclsync = 11; {classid} {----------------------------------5 integer; {** number of chars in output buffer} syninbufsize: integer; {** input buffer size } synoutbfsize: integer; {** output buffer size } synprevreade: longint; {** error from prev un-ver read} synprevwrite: longint; {** error from prev no-wait write} synreserved : array [1..32] of char; {** reserved space} synuserresrv: array [1..8] of char); {** user definable space} end; PAGE * * ******************************************************************************* * File Control Block (FCB) Table Definitions ******************************************************************************* ORG.L 0 *------------------------------------------------------------------------------ * FCB EQUATES *------------------------------------------------------------------------------ FCBREFCOUNT: EQU $100 ;Refrence count used for system  {** user definable space} dstpipe : ( {Status block for pipe class devices} pipreaderpid: longint; {** PID of process in read wait} pipwriterpid: longint; {** PID of process in write wait} pipeid : longint; {** id of the pipe } pipbuffsize : integer; {** size of pipe buffer } pipcharcount: integer; {** number of chars in pipe } pipreserved : array [1..40] of char; {** reserved spze} pipuserresrv: array [1..8] of char); {** user definable space} dstsync : ( {Status block for sync class devices } synmodereg1 : char; {** UART mode register 1 } synmodereg2 : char; {** UART mode register 2 } syncmdreg : char; {** UART command register } syntermtype : char; {** terminal type } synstatusreg: char; {** UART status register } synnumbsync : char; {** Number of sync chars to write} syncflags : integer; {** status flags (see const for bits)} syninputcnt : integer; {** number of chars in input buffer} synoutputcnt:: integer; {** status flags } tapeflags2 : integer; {** status flags } tapereserved: array [1..50] of char; {** reserved space} tapeuserresrv: array [1..8] of char); {** user definable space} dstdisk : ( {Status block for disk class devices } dskintfactor: integer; {** holds interleave factor } dskiopbcount: integer; {** number of allocated iopb's } dsknumbsctrs: longint; {** number of sectors on device} dsksecptrack: integer; {** number of sectors per track} dskheads : integer; {** number of heads } dskcylnders : integer; {** number of cylinders } dskflags : integer; {** status flags } dskcurcylndr: integer; {** current cylinder heads are on} dskreserved : array [1..38] of char; {** reserved space} dskuserresrv: array [1..8] of char); {** user definable space} dstnetwork : ( {Status block for network class devices} netreserved : array [1..56] of char; {** reserved spze} netuserresrv: array [1..8] of char); pointer to next table } case devclass of dsttty : ( {Status block for tty class devices } ttymodereg1 : char; {** UART mode register 1 } ttymodereg2 : char; {** UART mode register 2 } ttycmdreg : char; {** UART command register } ttytermtype : char; {** terminal type } ttystatreg : char; {** UART status register } ttyttyresv1 : char; {** reserved space } ttyflags : integer; {** status flags (see const for bits)} ttyinputcnt : integer; {** number of chars in input buffer} ttyoutptcnt : integer; {** number of chars in output buffer} ttycolumnpos: integer; {** current column position } ttyinbufsize: integer; {** input buffer size } ttyoutbfsize: integer; {** output buffer size } ttyreserved : array [1..38] of char; {** reserved space} ttyuserresrv: array [1..8] of char); {** user definable space} dsttape : ( {Status block for tape class devices } tapestatus : integer; {** device status } tapeflags1 5OT: EQU 2 ;Offset for Write protection. FCBDELETEPROT: EQU 3 ;Offset for Delete protection. FCBCREATEDATE: DS.L 2 ;Holds files creation date & time. FCBMODDATE: DS.L 2 ;Holds files last modification date & time. FCBRESERVED: DS.L 1 ;Reserved field (must be a 0). FCBPHYSICALSIZE: DS.L 1 ;Holds files current physical size. FCBLOGICALSIZE: DS.L 1 ;Holds files current logical size. FCBPRCSPRIV: DS.W 1 ;Holds image file privileges. FCBROOTEXTENTFIELD: DS.B 180 ;Starting location of extent fields. FCBCONTEXTENTFIELD: EQU FCBFILETYPE ;Location for Continuation FCB extent fields. FCBEXTENTSIZE: EQU 6 ;Size of each extent field. FCBEXTENTSECTORCOUNT: EQU 0 ;Offset to the sector count field. FCBEXTENTPTR: EQU 2 ;Offset to the sector number field. FCBROOTEXTENTCNT: EQU 30 ;Number of ex EQU 3 ;Length of extension field FILENAMEF3SIZE: EQU 2 ;Length of version field FCBDIRFCBNUM: DS.L 1 ;Holds directory FCB number. FCBDIRSEQNUM: DS.W 1 ;Holds directory sequence number. FCBRECORDLENGTH: DS.W 1 ;Holds Files record length FCBOWNERID: DS.W 1 ;Holds owners UID of the file. FCBGROUPID: DS.W 1 ;Holds owners group ID. FCBPROTECTION: DS.W 1 ;Holds file protection fields FCBOWNERPROT: EQU 0 ;Starting position of Owner Protection field FCBGROUPTPROT: EQU 4 ;Starting position of Group Protection Fields FCBPUBLICPROT: EQU 8 ;Starting position of World Protection fields. FCBSYSTEMPROT: EQU 12 ;Starting position of System Protection fields. FCBEXECUTEPROT: EQU 0 ;Offset for Execute protection. FCBREADPROT: EQU 1 ;Offset for Read protection. FCBWRITEPRNT: EQU 2 ;Allocate as a continuation FCB. FCBEXTENTUSECOUNT: DS.B 1 ;Holds many extent fields were used. FCBFILETYPE: DS.W 1 ;Holds the file type FCBFILETYPEDATA: EQU 0 ;Normal data type fiels. FCBFILETYPEDIRECTORY: EQU 1 ;Directory fiel. FCBFILETYPEIMAGE: EQU 2 ;Image file. FCBFILETYPEKSAMDATA: EQU 3 ;KSAM data file. FCBFILETYPEKSAMKEY: EQU 4 ;KSAM key file. FCBFILETYPEPACKED: EQU 5 ;Packed data file. FCBFILETYPEENCRYPTED: EQU 6 ;Encrypted files. FCBFILETYPEPACKENCR: EQU 7 ;Packed and encrypted files. FCBFILETYPESYSTEM: EQU 8 ;System files. FCBFILETYPEARCHIVE: EQU 9 ;Archive files. MAXFILETYPE: EQU 9 FCBFILENAME: DS.B 14 ;Holds file name FILENAMESIZE: EQU 14 ;Length of entire field FILENAMEF1SIZE: EQU 9 ;Length of name field FILENAMEF2SIZE: files. FCBFCBNUM: EQU 0 ;FCB and sequence number of FCB. ROOTDIRFCBNUM: EQU 1 ;FCB and sequence number of ROOTDIR. FCBBITMAPFCBNUM: EQU 2 ;FCB and sequence number of FCBBITMAP. BITMAPFCBNUM: EQU 3 ;FCB and sequence number of BITMAP. *------------------------------------------------------------------------------ * This is where the file part of the FCB starts. *------------------------------------------------------------------------------ FCBNUM: DS.L 1 ;Holds which FCB it is. FCBSEQNUM: DS.W 1 ;Holds FCB sequence number. FCBCONTNEXTLINK: DS.L 1 ;Holds FCB number of continuation FCB. FCBCONTSEQNUM: DS.W 1 ;Holds sequence number of contin FCB. FCBUSAGEIDFIELD: DS.B 1 ;Holds usage ID field. FCBUNALLOCATED: EQU 0 ;FCB is not in use FCBALLOCROOT: EQU 1 ;Allocated as a root FCB. FCBALLOCCO6ay[1..3] of char; {** extension } fileversion : integer; {** version number } dirfcbnum : longint; {** (dummy) } fileseqnum : integer; {** file sequence number } reclen : integer; {** record length } ownerid : integer; {** the file owners logon user id } groupid : integer; {** the file owners logon group id } protection : integer; {** file protection codes } creatdate : array[1..2] of longint; {** creation date } moddate : array[1..2] of longint; {** date last modified} filesize : longint; {** file size in bytes (if known) } physicalsize: longint; {** (dummy) } logicalsize : longint; {** (dummy) } prcspriv : integer; {** process privilege bits } dirlength : integer; {** length of directory name } dirname : array[1..62] of char; {** tape directory name } checksum : integer; {** 1's complement checksum } filler : array[1..116] of char; {** null filler } end; int; {** the FCB number } fcbseqnum : integer; {** the FCB sequence number } contfcb : longint; {** Continuation FCB number } contfcbseq : integer; {** Continuation sequence num } usageid : char; {** FCB type 0=avail, 1=main, 2=cont } extentcount : char; {** Number of extents used } extents : array[1..40] of record {** file extents } seccount: integer; {** # of sectors in this extent } secnum : longint; {** sector num of 1st sector in extent} end; checksum : integer; {** 1's complement checksum } end; tapefcb = record {** Tape FCB Record Format (256 bytes) } fcbnum : longint; {** (dummy) } fcbseqnum : integer; {** (dummy) } contfcb : longint; {** (dummy) } contfcbseq : integer; {** (dummy) } usageid : char; {** (dummy) } extentcount : char; {** (dummy) } filetype : integer; {** type 0=data, 1=direct, 2=image,..} filename : packed array[1..9] of char; {** name } fileext : packed arrfcbnum : longint; {** FCB number of directory file } dirseqnum : integer; {** sequence number of direct file } reclen : integer; {** record length } ownerid : integer; {** the file owners logon user id } groupid : integer; {** the file owners logon group id } protection : integer; {** file protection codes } creatdate : array[1..2] of longint; {** creation date } moddate : array[1..2] of longint; {** date last modified} reserved : longint; {** currently unused (set to zero) } physicalsize: longint; {** file size in bytes } logicalsize : longint; {** logical file size in bytes } prcspriv : integer; {** process privilege bits } extents : array[1..30] of record {** file extents } seccount: integer; {** # of sectors in this extent } secnum : longint; {** sector num of 1st sector in extent} end; checksum : integer; {** 1's complement checksum } end; contfcb = record {** Continuation FCB record format (256 bytes) } fcbnum : longtents in Root FCB. FCBCONTINUEEXTENTCNT: EQU 40 ;Number of extents in Continuation FCB. FCBCHECKSUM: DS.W 1 ;Holds the FCB's checksum. FCBTABLESIZE: EQU * ;Size of the entire table. FCBTABLEHEADSIZE: EQU FCBNUM ;Size of the header block. FCBSIZE: EQU FCBTABLESIZE-FCBTABLEHEADSIZE ;Size of FCB's. type fcb = record {** Disk primary FCB record format (256 bytes) } fcbnum : longint; {** the FCB number } fcbseqnum : integer; {** the FCB sequence number } contfcb : longint; {** Continuation FCB number } contfcbseq : integer; {** Continuation sequence num } usageid : char; {** FCB type 0=avail, 1=main, 2=cont } extentcount : char; {** Number of extents used } filetype : integer; {** type 0=data, 1=direct, 2=image,..} filename : packed array[1..9] of char; {** name } fileext : packed array[1..3] of char; {** extension } fileversion : integer; {** version number } dir6 *------------------------------------------------------------------------------ * This is where the file part of the FCB starts. *------------------------------------------------------------------------------ FCBNUM: DS.L 1 ;Holds which FCB it is. FCBSEQNUM: DS.W 1 ;Holds FCB sequence number. FCBCONTNEXTLINK: DS.L 1 ;Holds FCB number of continuation FCB. FCBCONTSEQNUM: DS.W 1 ;Holds sequence number of contin FCB. FCBUSAGEIDFIELD: DS.B 1 ;Holds usage ID field. FCBUNALLOCATED: EQU 0 ;FCB is not in use FCBALLOCROOT: EQU 1 ;Allocated as a root FCB. FCBALLOCCONT: EQU 2 ;Allocate as a continuation FCB. FCBEXTENTUSECOUNT: DS.B 1 ;Holds many extent fields were used. FCBFILETYPE: DS.W 1 ;Holds the file type FCBFILETYPEDATA: EQU 0 ;Normal data type fiels. FCBFILETYPEDIRECTORY: EQU 1 ;DirecRE: EQU 5 ;FCB is locked into memory. FCBFLAGMFD: EQU 6 ;FCB has been marked for deletion. FCBFLAGKSAMOPEN: EQU 7 ;File has been opened by KSAM request. FCBICREADCNT: DS.B 1 ;Holds read access count. FCBICREADLOCKCNT: DS.B 1 ;Holds read lock count. FCBICWRITECNT: DS.B 1 ;Holds write access count. FCBICWRITELOCKCNT: DS.B 1 ;Holds write lock count. FCBICREFCOUNT: DS.W 1 ;How many users have file open. IFEQ DEBUGENABLE FCBICLOCKTYPE: DS.W 1 ;Holds FCB lock type. FCBICNOTLOCKED: EQU 0 ;FCB not locked. FCBICLOCKEDNON: EQU 1 ;FCB non-modified locked. FCBICLOCKEDMOD: EQU 2 ;FCB modified locked. ENDC FCBICIDFIELD: DS.W 1 ;Holds buffer ID field. FCBICIDTAG: EQU $7777 ;ID tag value.BFORCEDWRITE: EQU 2 ;Do do a forced write in WRITEFCB. *------------------------------------------------------------------------------ * INCORE ONLY SECTION *------------------------------------------------------------------------------ FCBICNEXTLINK: DS.L 1 ;Holds next FCB address in chain. FCBICBACKLINK: DS.L 1 ;HOlds previous FCB address in chain. FCBICCONTPTR: DS.L 1 ;Holds continuation FCB address. FCBICPRCSQH: DS.L 1 ;Used for locking FCB for mod or non. FCBICMODQH: DS.L 1 ;Used for modify locking of FCB. FCBICLOCKCNT: DS.W 1 ;Holds lock reference count. FCBICFLAGS: DS.W 1 ;Holds flags. FCBFLAGFLUSHMODE: EQU 2 ;Tells if FCB has been flushed this time. FCBFLAGDELETEBIT: EQU 3 ;File is marked for deletion when closed. FCBFLAGMODIFIED: EQU 4 ;FCB has bee modified since last written FCBFLAGLOCKEDINCO PAGE * * ******************************************************************************* * File Control Block (FCB) Table Definitions ******************************************************************************* ORG.L 0 *------------------------------------------------------------------------------ * FCB EQUATES *------------------------------------------------------------------------------ FCBREFCOUNT: EQU $100 ;Refrence count used for system files. FCBFCBNUM: EQU 0 ;FCB and sequence number of FCB. ROOTDIRFCBNUM: EQU 1 ;FCB and sequence number of ROOTDIR. FCBBITMAPFCBNUM: EQU 2 ;FCB and sequence number of FCBBITMAP. BITMAPFCBNUM: EQU 3 ;FCB and sequence number of BITMAP. FCBNOFORCEDWRITE: EQU 0 ;Do not do a forced write in WRITEFCB. FCBNOMAP: EQU 1 ;Do not map on an error in WRITEFCB. FC7 EQU FCBTABLESIZE-FCBTABLEHEADSIZE ;Size of FCB's. PAGE * * IFEQ NEWMATH ******************************************************************************** * Math Board Window Location Definitions ******************************************************************************* ORG.L 0 IFEQ SYSTEM100 VMATHTRIGGER: EQU $F70300 ;Address of math board (first byte of window). VLATCHADDR: EQU $F78000 ;Address of latch on math board. VNMITO86: EQU $F78004 ;Address of non-maskable interrupt line to 8086. ENDC IFEQ (SYSTEM150&SYSTEM156) VMATHTRIGGER: EQU $E70300 ;Address of math board (first byte of window). VLATCHADDR: EQU $E78001 ;Address of latch on math board. VNMITO86: EQU $E78004 ;Address of non-maskable interrupt line to 8086. ENDC VINITSTACKPVAL: EQU 132 ;Initial stack pointer value for 8086. VFUNCTIONOFFS: DS.W 1 ;First byte is 8086 trigger, second is function code. VMATHUSERAREA: DS.W 39 ;User area of window. VMATHRESULTSTAT: DS.W 1 ;0=board not r DS.L 1 ;Reserved field (must be a 0). FCBPHYSICALSIZE: DS.L 1 ;Holds files current physical size. FCBLOGICALSIZE: DS.L 1 ;Holds files current logical size. FCBPRCSPRIV: DS.W 1 ;Holds image file privileges. FCBROOTEXTENTFIELD: DS.B 180 ;Starting location of extent fields. FCBCONTEXTENTFIELD: EQU FCBFILETYPE ;Location for Continuation FCB extent fields. FCBEXTENTSIZE: EQU 6 ;Size of each extent field. FCBEXTENTSECTORCOUNT: EQU 0 ;Offset to the sector count field. FCBEXTENTPTR: EQU 2 ;Offset to the sector number field. FCBROOTEXTENTCNT: EQU 30 ;Number of extents in Root FCB. FCBCONTINUEEXTENTCNT: EQU 40 ;Number of extents in Continuation FCB. FCBCHECKSUM: DS.W 1 ;Holds the FCB's checksum. FCBTABLESIZE: EQU * ;Size of the entire table. FCBTABLEHEADSIZE: EQU FCBNUM ;Size of the header block. FCBSIZE: d length FCBOWNERID: DS.W 1 ;Holds owners UID of the file. FCBGROUPID: DS.W 1 ;Holds owners group ID. FCBPROTECTION: DS.W 1 ;Holds file protection fields FCBOWNERPROT: EQU 0 ;Starting position of Owner Protection field FCBGROUPTPROT: EQU 4 ;Starting position of Group Protection Fields FCBPUBLICPROT: EQU 8 ;Starting position of World Protection fields. FCBSYSTEMPROT: EQU 12 ;Starting position of System Protection fields. FCBEXECUTEPROT: EQU 0 ;Offset for Execute protection. FCBREADPROT: EQU 1 ;Offset for Read protection. FCBWRITEPROT: EQU 2 ;Offset for Write protection. FCBDELETEPROT: EQU 3 ;Offset for Delete protection. FCBCREATEDATE: DS.L 2 ;Holds files creation date & time. FCBMODDATE: DS.L 2 ;Holds files last modification date & time. FCBRESERVED: tory fiel. FCBFILETYPEIMAGE: EQU 2 ;Image file. FCBFILETYPEKSAMDATA: EQU 3 ;KSAM data file. FCBFILETYPEKSAMKEY: EQU 4 ;KSAM key file. FCBFILETYPEPACKED: EQU 5 ;Packed data file. FCBFILETYPEENCRYPTED: EQU 6 ;Encrypted files. FCBFILETYPEPACKENCR: EQU 7 ;Packed and encrypted files. FCBFILETYPESYSTEM: EQU 8 ;System files. FCBFILETYPEARCHIVE: EQU 9 ;Archive files. MAXFILETYPE: EQU 9 FCBFILENAME: DS.B 14 ;Holds file name FILENAMESIZE: EQU 14 ;Length of entire field FILENAMEF1SIZE: EQU 9 ;Length of name field FILENAMEF2SIZE: EQU 3 ;Length of extension field FILENAMEF3SIZE: EQU 2 ;Length of version field FCBDIRFCBNUM: DS.L 1 ;Holds directory FCB number. FCBDIRSEQNUM: DS.W 1 ;Holds directory sequence number. FCBRECORDLENGTH: DS.W 1 ;Holds Files recor7U $200114 JMPTRAPF: EQU $20011A NEWPRCSID: EQU $200120 CURPROCESS: EQU $200122 CURPRIORITY: EQU $200126 PRCSQUE: EQU $200128 NVALIDCHRTBL: EQU $200148 NVALIDCHRTBLLEN: EQU $4 SINGLEBITERRMAP: EQU $200180 NXTMSG: EQU $200188 PAGEUSEMAP: EQU $20018C PHYSMEMBASEPAGE: EQU $200190 PHYSMEMHIPAGE: EQU $200192 MEMAVAIL: EQU $200194 PAGEAVAILCNT: EQU $200198 DAYCLOCK: EQU $20019A TICKCLOCK: EQU $2001A2 SCHEDULEFLAG: EQU $2001AA FMSDMPTR: EQU $2001AC FMSDEVTBLPTR: EQU $2001B4 BASEGOODUART: EQU $2001B8 MEMSEMAPHORE: EQU $2001BC SEMFLAG31: EQU 31 SEMFLAG30: EQU 30 SEMFLAG29: EQU 29 SEMFLAG28: EQU 28 SEMFLAG27: EQU 27TRACE: EQU $200036 JMP1010: EQU $20003C JMP1111: EQU $200042 JMPSPURINT: EQU $200090 JMPLEVEL1INT: EQU $200096 JMPLEVEL2INT: EQU $20009C JMPLEVEL3INT: EQU $2000A2 JMPLEVEL4INT: EQU $2000A8 JMPLEVEL5INT: EQU $2000AE JMPLEVEL6INT: EQU $2000B4 JMPLEVEL7INT: EQU $2000BA JMPTRAP0: EQU $2000C0 JMPTRAP1: EQU $2000C6 JMPTRAP2: EQU $2000CC JMPTRAP3: EQU $2000D2 JMPTRAP4: EQU $2000D8 JMPTRAP5: EQU $2000DE JMPTRAP6: EQU $2000E4 JMPTRAP7: EQU $2000EA JMPTRAP8: EQU $2000F0 JMPTRAP9: EQU $2000F6 JMPTRAPA: EQU $2000FC JMPTRAPB: EQU $200102 JMPTRAPC: EQU $200108 JMPTRAPD: EQU $20010E JMPTRAPE: EQEQU 6 ;8086 is in midst of changing windows. VSTATELOADBIT: EQU 7 ;NMI is for state load. VLOADINPROGBIT: EQU 8 ;8086 is in midst of restoring state. VBOARDDEADBIT: EQU 9 ;Indicates the math board is not functioning. ENDC PAGE IFEQ (SYSTEM100&SYSTEM156) **************************************************************** * GLOBAL PARAMETER ADDRESSES **************************************************************** PHYSMEMBASE: EQU $200000 STARTOSLOC: EQU $200002 MEMMAPFLAG: EQU $200006 RESETMASKLOC: EQU $200008 RESETMASK: EQU $AA55 JMPBUSERROR: EQU $20000C JMPILLADDERROR: EQU $200012 JMPILLINSTERROR: EQU $200018 JMPDIVZERO: EQU $20001E JMPCHKTRAP: EQU $200024 JMPTRAPV: EQU $20002A JMPPRIVERROR: EQU $200030 JMPeady,1=normal result,-1=error result. VMATHSTACKDEPTH: DS.W 1 ;8087 stack depth count,=0 means board not in use. VMATHSRCEOP: DS.L 2 ;Source operand for math operation. VMATHDESTOP: DS.L 2 ;Destination operand for math operation. VSTACKAREA: DS.W 25 ;8086 stack area. VSAVEAREA: DS.W 47 ;8086/8087 state save area. VMATHPID: DS.L 1 ;PID of owner of this window (=0 if none). VSTACKPOINT: DS.W 1 ;8086 stack pointer value for this window. VMATHSTATUS: DS.W 1 ;Status of math operation (from 8086/8087). VNEWLATCH: DS.W 1 ;Window# to move to next (for 8086). VHANDSHAKE86: DS.W 1 ;Handshake status bits for 68000/8086. VINUSEBIT: EQU 0 ;8086/8087 is in midst of an operation. VRESULTREADYBIT: EQU 1 ;Indicates operation results available. VERRORBIT: EQU 2 ;Indicates error occurred in operation. VSTATESAVEBIT: EQU 3 ;NMI (non-maskable interrupt) is for state save. VSAVEINPROGBIT: EQU 4 ;8086 is in midst of saving state. VLATCHMOVEBIT: EQU 5 ;NMI is for latch move (change of window). VLATCHINPROGBIT: 8 $60 JMPLEVEL1INT: EQU $64 JMPLEVEL2INT: EQU $68 JMPLEVEL3INT: EQU $6C JMPLEVEL4INT: EQU $70 JMPLEVEL5INT: EQU $74 JMPLEVEL6INT: EQU $78 JMPLEVEL7INT: EQU $7C JMPTRAP0: EQU $80 JMPTRAP1: EQU $84 JMPTRAP2: EQU $88 JMPTRAP3: EQU $8C JMPTRAP4: EQU $90 JMPTRAP5: EQU $94 JMPTRAP6: EQU $98 JMPTRAP7: EQU $9C JMPTRAP8: EQU $A0 JMPTRAP9: EQU $A4 JMPTRAPA: EQU $A8 JMPTRAPB: EQU $AC JMPTRAPC: EQU $B0 JMPTRAPD: EQU $B4 JMPTRAPE: EQU $B8 JMPTRAPF: EQU $BC NEWPRCSID: EQU $C0 CURPROCESS: EQU $C2 CURPRIORITY: EQU $C6 PRCSQUE: EQU $C8 NVALIDCHRTBL: EQU $E8 NVALIDC EQU $2002F2 JREAD: EQU $2002F8 JWRITE: EQU $2002FE NENTERQUETO: EQU $200304 NENTERQUEWAIT: EQU $20030A SINGLEBITERR: EQU $200310 ENDC IFEQ SYSTEM150 **************************************************************** * GLOBAL PARAMETER ADDRESSES **************************************************************** PHYSMEMBASE: EQU $0 STARTOSLOC: EQU $2 RESETMASKLOC: EQU $6 RESETMASK: EQU $AA55 JMPBUSERROR: EQU $8 JMPILLADDERROR: EQU $C JMPILLINSTERROR: EQU $10 JMPDIVZERO: EQU $14 JMPCHKTRAP: EQU $18 JMPTRAPV: EQU $1C JMPPRIVERROR: EQU $20 JMPTRACE: EQU $24 JMP1010: EQU $28 JMP1111: EQU $2C JMPSPURINT: EQU NLINKPFDT: EQU $200256 NUNLINKPFDT: EQU $20025C *RESERVED1: EQU $200262 CGETPAGEMEM: EQU $200268 CRELEASEPAGEMEM: EQU $20026E CRELINQUISH: EQU $200274 CFINDPRCS: EQU $20027A CSETNONDELETEBIT: EQU $200280 CCLRNONDELETEBIT: EQU $200286 BSETCRITICALBIT: EQU $20028C BCLRCRITICALBIT: EQU $200292 NATOB10: EQU $200298 NENTERQUE: EQU $20029E NEXITQUE: EQU $2002A4 JDIV32: EQU $2002AA JMUL32: EQU $2002B0 ALLOCATEMEMORY: EQU $2002B6 DEALLOCATEMEMORY: EQU $2002BC CWAIT: EQU $2002C2 CSCH0: EQU $2002C8 CREADPHYSMEM: EQU $2002CE CWRITEPHYSMEM: EQU $2002D4 CMEMORYERROR: EQU $2002DA JCREATE: EQU $2002E0 JDELETE: EQU $2002E6 JOPEN: EQU $2002EC JCLOSE:  SEMFLAG26: EQU 26 SEMFLAG25: EQU 25 SEMQUEUE31: EQU $2001C0 CLASSLINKHEAD: EQU $2001C4 UARTBITMAP: EQU $200204 WARMBOOTBIT: EQU 31 NEWMEMORYBIT: EQU 30 CLOCKRUNNINGBIT: EQU 29 SECONDARYBOOTBIT: EQU 28 DIAGNOSTICSBIT: EQU 27 SECONDARYFCBBIT: EQU 26 ANYOSBOOTBIT: EQU 25 SEMQUEUE0: EQU $200208 SEMQUEUE1: EQU $20020C SEMQUEUE2: EQU $200210 MATHLINKHEAD EQU $200214 VALLOCWINDBMAP: EQU $200218 VBADWINDBMAP: EQU $20021C VSTATUS: EQU $200220 VLATCHVAL: EQU $200224 VMATHCONFIG: EQU $200226 VNEXTWINDTOSWAP: EQU $200228 SINGLEBITERRMASK: EQU $20022A NBADPAGELIST: EQU $20022C SYSOUTCHR: EQU $200244 SYSOUTSTR: EQU $20024A SYSOUTHEX: EQU $200250 8********************************** * Process File Descriptor PFD Definitions. ******************************************************************************* ORG.L 0 PFDNEXTLINK: DS.L 1 ;Points to next PFD in the chain. PFDBACKLINK: DS.L 1 ;Points to previous PFD in the chain. PFDACCESSCNT: DS.L 1 ;Holds access count of file. PFDOPENFLAGS: DS.W 1 ;Holds flags for file. PFDOVRRECLEN: DS.W 1 ;Record length of file. PFDDEVICEPTR: DS.L 1 ;Address of device table for this device. PFDCBPTR: DS.L 1 ;Address of FCB for this file. PFDNEXTRECNUM: DS.L 1 ;Next record to access in file PFDREADAHEAD: EQU * ;Readahead sector check value for DISKS. PFDOLPTR: DS.L 1 ;Old line buffer address for EDIT MODE 3 PFDCACHEPTR: EQU * ;Fastread Cache header for DISKS. (LONGWORD)ELETEBIT: EQU $238 BSETCRITICALBIT: EQU $23E BCLRCRITICALBIT: EQU $244 NATOB10: EQU $24A NENTERQUE: EQU $250 NEXITQUE: EQU $256 JDIV32: EQU $25C JMUL32: EQU $262 ALLOCATEMEMORY: EQU $268 DEALLOCATEMEMORY: EQU $26E CWAIT: EQU $274 CSCH0: EQU $27A CREADPHYSMEM: EQU $280 CWRITEPHYSMEM: EQU $286 CMEMORYERROR: EQU $28C JCREATE: EQU $292 JDELETE: EQU $298 JOPEN: EQU $29E JCLOSE: EQU $2A4 JREAD: EQU $2AA JWRITE: EQU $2B0 NENTERQUETO: EQU $2B6 NENTERQUEWAIT: EQU $2BC SINGLEBITERR EQU $2C2 ENDC PAGE * * *********************************************1 NEWMEMORYBIT: EQU 30 CLOCKRUNNINGBIT: EQU 29 SECONDARYBOOTBIT: EQU 28 DIAGNOSTICSBIT: EQU 27 SECONDARYFCBBIT: EQU 26 SEMQUEUE0: EQU $1BA SEMQUEUE1: EQU $1BE SEMQUEUE2: EQU $1C2 MATHLINKHEAD: EQU $1C6 VALLOCWINDBMAP: EQU $1CA VBADWINDMBAP: EQU $1CE VSTATUS: EQU $1D2 VLATCHVAL: EQU $1D6 VMATHCONFIG: EQU $1D8 VNEXTWINDTOSWAP: EQU $1DA SINGLEBITERRMASK: EQU $1DC NBADPAGELIST: EQU $1DE SYSOUTCHR: EQU $1F6 SYSOUTSTR: EQU $1FC SYSOUTHEX: EQU $202 NLINKPFDT: EQU $208 NUNLINKPFDT: EQU $20E *RESERVED1: EQU $214 BGETPAGEMEM: EQU $21A BRELPAGEMEM: EQU $220 CRELINQUISH: EQU $226 CFINDPRCS: EQU $22C CSETNONDELETEBIT: EQU $232 CCLRNONDHRTBLLEN: EQU 4 SINGLEBITERRMAP: EQU $120 NXTMSG: EQU $128 PHYSMEMSIZE: EQU $12C *RESERVED: EQU $130 USEDHUNKSPARE: EQU $134 USERMEMORYADDR: EQU $138 USERMEMORYSIZE: EQU $13C USERMEMAVAIL: EQU $140 FREEPAGES: EQU $144 USEDHUNKS: EQU $148 DAYCLOCK: EQU $14C TICKCLOCK: EQU $154 SCHEDULEFLAG: EQU $15C FMSDMPTR: EQU $15E FMSDEVTBLPTR: EQU $166 BASEGOODUART: EQU $16A MEMSEMAPHORE: EQU $16E SEMFLAG31: EQU 31 SEMFLAG30: EQU 30 SEMFLAG29: EQU 29 SEMFLAG28: EQU 28 SEMFLAG27: EQU 27 SEMFLAG26: EQU 26 SEMFLAG25: EQU 25 SEMQUEUE31: EQU $172 CLASSLINKHEAD: EQU $176 UARTBITMAP: EQU $1B6 WARMBOOTBIT: EQU 39 DS.W 1 ;Holds the images privileges. PRCSSETPRIVBIT: EQU 0 ;User may acquire other privelages. PRCSSYSPRIVBIT: EQU 1 ;User has system access to files. PRCSREADPHYSBIT: EQU 2 ;User can do physical read operations. PRCSWRITEPHYSBIT: EQU 3 ;User can do physical write operations. PRCSALTERPRIORITYBIT: EQU 4 ;User can alter priority or become realtime. PRCSCHANGETOSUPERVBIT: EQU 5 ;User may change to supervisor mode. PRCSPROTECTBYPASSBIT: EQU 6 ;User may bypass system file protections. PRCSOPERATORBIT: EQU 7 ;User may perform operator operations. PRCSALTERNATEUICBIT: EQU 8 ;User may open up file the image owns. PRCSWORLDBIT: EQU 9 ;User may effect any task in the system. PRCSGROUPBIT: EQU 10 ;User may effect any task in their group. PRCSOWNERID: DS.W 1 ;Holds Process Owner ID number. PRCSGROUPID: DS.W 9 ;This is the critical code mask bit. PRCSERRORREPORTBIT: EQU 10 ;This is set while reporting an error. PRCSCLOCKTICKEDBIT: EQU 11 ;This is set if clock ticks while in critical code. PRCSEXTNDFCBFILEBIT: EQU 12 ;This process is extending the fcb file. PRCSBADBLOCKLOGBIT: EQU 13 ;This process is logging a bad block now. PRCSKSAMBIT: EQU 14 ;This process is accessing a KSAM file PRCSCONTCPRESSBIT: EQU 15 ;When set a CONT-C was pressed on task. PRCSCREATINGIMAGEBIT: EQU 16 ;The process is currently loading an image. PRCSMATHBIT: EQU 17 ;This process is useing hardware floating point. PRCSINQUEBIT: EQU 18 ;This process is waiting in a que. PRCSTIMESLICE: DS.W 1 ;Process timeslice value. PRCSMATHPTR: DS.W 1 ;Holds math pointer field. PRCSPAGES: DS.W 1 ;Number of pages allocated to this task. PRCSPRVLG:  ID number. PRCSID: DS.W 1 ;Holds Process ID number. PRCSNAME: DS.B 16 ;Holds process name. PRCSSTATUS: DS.L 1 ;Holds Process status. PRCSABORTBIT: EQU 0 ;This process is scheduled for deletion PRCSNONDELETEBIT: EQU 1 ;This process cannot be deleted PRCSHIBERNATEBIT: EQU 2 ;This process is currently hibernating, do no attempt to schedule PRCSABORTINPRGSBIT: EQU 3 ;This process is currently being deleted PRCSEXITHDRINPRGSBIT: EQU 4 ;This process is currently in its exit handler PRCSREALTIMEBIT: EQU 5 ;This process is currently real-time and may not be context swapped PRCSIOWAITBIT: EQU 6 ;This process is currently waiting for IO PRCSTIMERWAITBIT: EQU 7 ;This process is currently wait for a timer timeout PRCSNOCONTROLCBIT: EQU 8 ;This process may receive ^C without aborting PRCSCRITICALBIT: EQU  PFDOLSIZE: DS.W 1 ;Size of string in Old line buffer. PFDOLCOUNT: DS.W 1 ;Current position in Old line buffer. PFDCACHESIZE: EQU * ;Size of cache buffer allocated. PFDOLERR: DS.W 1 ;Holds edit mode 3 error codes. PFDIDFIELD: DS.W 1 ;Holds Buffer ID tag. PFDIDTAG: EQU $AAAA ;Buffer ID tag value. PFDSIZE: EQU * PAGE * * ******************************************************************************* * Process Control Block (PCB) Table Definitions ******************************************************************************* ORG.L 0 PRCSFWDLINK: DS.L 1 ;Forward link to next PCB on priority level. PRCSBCKLINK: DS.L 1 ;Backward link to previous PCB on priority level. PRCSSYSID: DS.W 1 ;Holds System9 ;Process block size ENDC IFEQ SYSTEM150 PRCSMEMORYADDR: DS.L 1 ;Where process starts in memory PRCSMEMORYSIZE: DS.L 1 ;How large a process is in memory PRCSDEVSTR: EQU * ;Starting location of Default string & System stack. PRCSBLOCKSIZE: EQU 2048 ;Process block size ENDC type pcb = record {** process control block record format} fwdlink : longint; {** link to next PCB same priority } bcklink : longint; {** link to previous PCB same priority} sysid : integer; {** System ID number. } prcsid : integer; {** Process ID number. } prcsname : array[1..16] of char; {** process name. } prcstatus : longint; {** Process status. } timeslice : integer; {** Process timeslice value. } mathptr : integer; {** math pointer field. } pages : integer; {** # of paer. PRCSTRAPVECS: DS.L 16 ;Holds trap handler addresses. PRCS0DIVIDE: DS.L 1 ;Holds 0divide trap handler address. PRCSCHKTRAP: DS.L 1 ;Holds check trap handler address. PRCSTRAPV: DS.L 1 ;Holds overflow trap handler address. PRCSTRACETRAP: DS.L 1 ;Holds trace trap handler address. PRCSLINE1010: DS.L 1 ;Holds 1010 emulation trap handler address. PRCSLINE1111: DS.L 1 ;Holds 1111 emulation trap handler address. PRCSTRAPRETURN DS.L 1 ;Holds where we will return from a trap 0. PRCSIDFIELD: DS.W 1 ;Holds ID tag value PRCSIDTAG: EQU $3333 ;Proces ID value. IFEQ (SYSTEM100&SYSTEM156) PRCSMEMORY: DS.W 512 ;Holds mapping registers. PRCSDEVSTR: DS.W 896 ;Starting location of Default string & System stack. PRCSBLOCKSIZE: EQU * ;Holds at what time a timeout is to happen. PRCSEXITHDR: DS.L 1 ;Holds address of exit handler. PRCSABORTSTATUS: DS.W 1 ;Holds why this task dies. PRCSLOGICLINK: DS.L 1 ;Holds address of logical name table. PRCSCURDEV: DS.L 1 ;Holds default device table address. PRCSCURDIR: DS.L 1 ;Holds default directory FCB number. PRCSCURDIRSEQN: DS.W 1 ;Holds default directory sequence number. PRCSDEVSTRLN: DS.W 1 ;Holds length of default device string. PRCSDEFDIR: DS.L 1 ;Holds address of default directory string. PRCSDEFDIRLN: DS.W 1 ;Holds length of default directory string. PRCSPFDPTR: DS.L 1 ;List head to open files. PRCSKPFDPTR DS.L 1 ;List head for open KSAM files. PRCSQUEPTR: DS.L 1 ;Holds QUE's next link field. PRCSNETPCKTNUM: DS.W 1 ;Network outstanding packet numb 1 ;Holds Process Group ID number. PRCSCHILDPDB: DS.L 1 ;PCB address of child. PRCSPARENTPDB: DS.L 1 ;PCB address of parent. PRCSNONDELETECNT: DS.W 1 ;Non-delete count. PRCSCRITICALCNT: DS.W 1 ;Critical code count. PRCSUSP: DS.L 1 ;Holds users stack address. PRCSSSP: DS.L 1 ;Holds users system stack address. PRCSEVNTF: DS.L 1 ;Holds processes event flags. PRCSIMGDEV: DS.L 1 ;Holds image files device table address. PRCSIMGFCB: DS.L 1 ;Holds image files FCB number. PRCSIMGSEQ: DS.W 1 ;Holds image files sequence number. PRCSSTACKTOP: DS.L 1 ;Holds address of top of System stack. PRCSPARABORTSTS: DS.L 1 ;Holds address of where to put status in parent. PRCSALARMTIME: DS.L 2 ;Holds at what time to initiate the alarm. PRCSTIMEOUT: DS.L 2 : EQU 1 SYNCWTPLSLOPTION EQU 2 SYNCCNTRESETOPTION EQU 0 SYNCCNTCNCTOPTION EQU 1 SYNCCNTDSCNCTOPTION EQU 2 SYNCCNTEOTOPTION EQU 3 SYNCCNTRVIOPTION EQU 4 SYNCCNTNAKOPTION EQU 5 SYNCCNTDLEEOTOPTION EQU 6 SYNCSTARTLOGOPTION EQU 0 SYNCSTOPLOGOPTION EQU 1 SYNCXFERLOGOPTION EQU 2 PAGE * * ******************************************************************************* * System Equates ******************************************************************************* ALLOCMEMPAGEMAX: EQU 3964 ;Maximum allocation with ALLOATE MEMORY. BELL: EQU 7 ;Represents a bell. CONTROLH: EQU 8 ;Represents a backspace. CR: EQU 13 ;Represents a Carriage Return. CRITICALMASK: EQU $0100 ;Mask needed to mask the clock interrupts DEVDRint; {** trace trap handler address. } line1010 : longint; {** 1010 emulation trap handler } line1111 : longint; {** 1111 emulation trap handler } trapreturn : longint; {** where we return from a trap 0. } idfield : integer; {** ID tag value } case boolean of true : ( {** system100 or system156 } memory : array [1..512] of integer; {** mapping regs} devstr : array [1..896] of integer); {** sys stack } false : ( {** system150 unmapped } memadr : longint; {** where process begins in memory} memsize: longint; {** how large process is in memory} systack: array [1..901] of integer); {** sys stack } end; * * ******************************************************************************* * SYNCHRONOUS EQUATES --OPTIONS ON SYNC TRAPS ******************************************************************************* SYNCBIDOPTION EQU 0 SYNCWAITBIDOPTION EQU 1 SYNCPOLLOPTION EQU 0 SYNCSELECTOPTION gint; {** address of exit handler. } abortstatus : integer; {** why this task dies. } logiclink : longint; {** address of logical name table. } curdev : longint; {** default device table address. } curdir : longint; {** default directory FCB number. } curdirseqn : integer; {** default directory sequence number} devstrln : integer; {** length of default device string. } defdir : longint; {** adr of default directory string. } defdirln : integer; {** len of default directory string. } pfdptr : longint; {** List head to open files. } kpfdptr : longint; {** List head for open KSAM files. } queptr : longint; {** QUE's next link field. } netpcktnum : integer; {** Network outstanding packet number} trapvecs : array[1..16] of longint; {** trap vectors } zerodivide : longint; {** divide by zero trap handler } chktrap : longint; {** check trap handler address. } trapv : longint; {** overflow trap handler address. } tracetrap : longges allocated this process} prvlg : integer; {** process privileges. } ownerid : integer; {** Process Owner ID number. } groupid : integer; {** Process Group ID number. } childpdb : longint; {** PCB address of child. } parentpdb : longint; {** PCB address of parent. } nondeletecnt: integer; {** Non-delete count. } criticalcnt : integer; {** Critical code count. } usp : longint; {** user mode process stack address. } ssp : longint; {** system mode stack address. } evntf : longint; {** Processes event flags. } imgdev : longint; {** image files device table address.} imgfcb : longint; {** image files FCB number. } imgseq : integer; {** image files sequence number. } stacktop : longint; {** address of top of System stack. } parabortsts : longint; {** address where to put status in parent.} alarmtime : array[1..2] of longint; {** process alarm time} timeout : array[1..2] of longint; {** timeout time } exithdr : lon:CONTROL: EQU $E00B50 ;Memory management control register address MEMORYERRORREGISTER EQU $E00B60 ;Memory error register address ACCESSERROR: EQU 0 WRITEERROR: EQU 1 INVALIDSEGMENT: EQU 2 NONRESIDENT: EQU 3 MEMPARITYERROR: EQU 4 ENDC IFEQ SYSTEM156 MEMMAP: EQU $EFF800 ;Address of memory mapping registers MEMMAPON: EQU $80 ;Value that turns memory mapping on MEMMAPOFF: EQU $0 ;Value that turns memory mapping off MEMMAPCONTROL: EQU $EFFC01 ;Memory management control register address MEMORYERRORREGISTER EQU $EFFD01 ;Memory error register address ACCESSERROR: EQU 0 WRITEERROR: EQU 1 INVALIDSEGMENT: EQU 2 NONRESIDENT: EQU 3 MEMPARITYERROR: EQU 4 - * Memory Mapping Registers Bit Definitions. *----------------------------------------------------------------------------- IFEQ (SYSTEM100&SYSTEM156) PAGEOWNERBIT: EQU 15 ;Page owned by this process (1=OWNED) PAGEINCOREBIT: EQU 14 ;Page now in core bit (0=in core) PAGEALLOCBIT: EQU 13 ;Page allocated to process (0=allocated) PAGEWRITEBIT: EQU 12 ;Page write protected. (1=protected) NUMMAPREGS: EQU 512 ;Number of mapping registers MEMMAPSIZE: EQU NUMMAPREGS*2 ;Size of the memory map in bytes ENDC IFEQ SYSTEM100 MEMMAP: EQU $E00C00 ;Address of memory mapping registers MEMMAPON: EQU $FF ;Value that turns memory mapping on MEMMAPOFF: EQU 0 ;Value that turns memory mapping off MEMMAP IFEQ (SYSTEM100&SYSTEM156) SYSOUTSTRJMP: EQU $FEC SYSOUTCHRJMP: EQU $FF0 SYSOUTHEXJMP: EQU $FF4 PARITYJMP: EQU $FF8 ENDC IFEQ SYSTEM150 SYSOUTSTRJMP: EQU $F00FEC SYSOUTCHRJMP: EQU $F00FF0 SYSOUTHEXJMP: EQU $F00FF4 PARITYJMP: EQU $F00FF8 ENDC *----------------------------------------------------------------------------- * System Memory Equates. *----------------------------------------------------------------------------- HUNKSIZE: EQU 4096 ;SIZE OF A "HUNK" OF MEMORY PAGESIZE: EQU 1024 ;SIZE OF A "PAGE" OF MEMORY PACKSIZE: EQU 8 ;SIZE OF A "PACK" OF MEMORY *----------------------------------------------------------------------------OFFSET: EQU 8 ;Device driver jump offset DISKINTMASK: EQU $0500 ;Mask all disk interrupts. FORMFEED: EQU 12 ;Represents a form feed. JMPINSTR: EQU $4EF9 ;An assembly language jump instruction LF: EQU 10 ;Represents a Line Feed. MAXNAMELEN: EQU 93 ;Maximum length of logical names. PAGESHIFTCNT: EQU 12 ;What you have to shift to divide by page size QUEOCCUPIEDBIT: EQU 31 ;When set in a que header, means que has someone in it. RUBOUT: EQU 127 ;Represents a rubout char. SPACE: EQU 32 ;Represents a space. TTYOLBUFSIZE: EQU 80 ;The size of the old line buffer for tty's *----------------------------------------------------------------------------- * SYSTEM OUTPUT AND PARITY HANDLER JUMP VECTORS. *----------------------------------------------------------------------------- ;- TTYCLASSOFFSET: EQU 0*4 TTYCLASSBIT: EQU 15 TAPECLASSOFFSET: EQU 1*4 TAPECLASSBIT: EQU 14 DISKCLASSOFFSET: EQU 2*4 DISKCLASSBIT: EQU 13 NETWORKCLASSOFFSET: EQU 3*4 NETWORKCLASSBIT: EQU 12 PIPECLASSOFFSET: EQU 4*4 PIPECLASSBIT: EQU 11 SYNCCLASSOFFSET: EQU 5*4 SYNCCLASSBIT: EQU 10 *RESERVED9OFFSET: EQU 6*4 *RESERVED9BIT: EQU 9 *RESERVED8OFFSET: EQU 7*4 *RESERVED8BIT: EQU 8 *RESERVED7OFFSET: EQU 8*4 *RESERVED7BIT: EQU 7 *RESERVED6OFFSET: EQU 9*4 *RESERVED6BIT: EQU 6 *RESERVED5OFFSET: EQU 10*4 *RESERVED5BIT: EQU 5 *RESERVED4OFFSET: EQU 11*4 *RESERVED4BIT: EQU 4 *RESERVED3OFFSET: EQU 12*4 *RESERVED3BIT: EQU 3 OLDMATHCLASSOFFSET: EQU 13*4 OLDMATHCLASSBIT: EQU 2 KSAMCLASSOFFSET: EQU E LIGHT ON CPULIGHTOFF: EQU 1 ;A ONE TURNS THE LIGHT OFF *------------------------------------------------------------------------------ * BOOT STACK OFFSET DEFINITIONS *------------------------------------------------------------------------------ NUMBOOTPARAMS: EQU 11 YEAR: EQU 40 ENDOFOS: EQU 36 HIMEM: EQU 32 MEMSIZE: EQU 28 ;SYSTEM150 GOODPAGELIST: EQU 28 ;SYSTEM100 & SYSTEM156 BADPAGELIST: EQU 24 GOODUART: EQU 20 BOOTDRIVER: EQU 16 UARTMASK: EQU 12 FCBBLOCKNUMBER: EQU 8 BOOTBLOCKADDR: EQU 4 BOOTDRIVENUM: EQU 0 *------------------------------------------------------------------------------ * CLASS HANDLER OFFSETS INTO CLASS LINK HEAD. *-----------------------------------------------------------------------------* CPU Light and ID Location Definitions. *------------------------------------------------------------------------------ IFEQ SYSTEM100 SYSIDLOC: EQU $FFC ;ROM SYSTEM ID LOCATION CPULIGHTS: EQU $E00BF0 ;CPU LIGHT LOCATION ENDC IFEQ SYSTEM156 SYSIDLOC: EQU $FFC ;ROM SYSTEM ID LOCATION CPULIGHTS: EQU $F000D0 ;CPU LIGHT LOCATION ENDC IFEQ SYSTEM150 SYSIDLOC: EQU $F00FFC ;ROM SYSTEM ID LOCATION CPULIGHTS: EQU $FF0000 ;CPU LIGHT LOCATION ENDC CPULIGHTON: EQU 0 ;A ZERO TURNS TH ENDC *------------------------------------------------------------------------------ * SYSTEM150 Dynamic Memory Header Definitions. *------------------------------------------------------------------------------ IFEQ SYSTEM150 USEDHUNKHEADERSIZE: EQU PACKSIZE*3 ;SIZE OF "USEDHUNK" HEADER * ("usedhunkheadersize" must be a multiple of "packsize") USEDHUNKNEXT: EQU 0 ;LINK TO NEXT "USEDHUNK" USEDHUNKLAST: EQU 4 ;LINK TO LAST "USEDHUNK" USEDHUNKADDR: EQU 8 ;ADDR OF "USEDHUNK" USEDHUNKSIZE: EQU 12 ;SIZE OF "USEDHUNK" FREEPACKS: EQU 16 ;LISTHEAD FOR FREE PACKS ON "USEDHUNK" USEDHUNKSAVE: EQU 20 ;RESERVED * (the last longword of the "usedhunkheader" is not currently used) ENDC *------------------------------------------------------------------------------ ;ogical address is not * on a 4k byte boundary. ERRMEMALLOC: EQU $5 ;5 The virtual page requested has * already been allocated. ERRBADMEMSHARE: EQU $6 ;6 Attempt to share a page which * is not owned by the calling * process. ERRNOMEMAVAIL: EQU $7 ;7 No memory available. ERRPROTCHANGE: EQU $8 ;8 Attempt to change protection * on a non-owned page. ERRMEMDEALL: EQU $9 ;9 Attempt to release non-existant * memory. ERRARTIOVFLW: EQU $A ;10 Arithmetic Integer overflow. ERRNONUMBER: EQU $B ;11 No number found during a number * search or sca19 ;TRANSPARENT MODE ON BISYNC WRITES (WRITE ONLY) PAGE * * ******************************************************************************* * System error file. ******************************************************************************* * * *----------------------------------------------------------------------------- * KERNEL ERRORS *----------------------------------------------------------------------------- * MNEMONIC HEX DEC DEFINITION *-------------------- --- --- ------------------------------- * EQU $1 ;1 RESERVED. ERRPRCSNOTFOUND: EQU $2 ;2 Process requested not found in system process table. * EQU $3 ;3 RESERVED. ERRINVALIDADDR: EQU $4 ;4 Attempted request for memory * whose lQU 10 ;WORKS ONLY IN CREATE CREATEOPENPARENTSBIT: EQU 11 ;WORKS ONLY IN CREATE OPENDEBUGACCBIT: EQU 12 ;USER REQUESTS DEBUG ACCESS (BISYNC) CLOSEDELETEBIT: EQU 0 ;DELETE THE FILE WHEN IT IS CLOSED. CLOSENOTRUNCFILEBIT: EQU 1 ;DO NOT TRUNCATE FILE WHEN CLOSED. CLOSENODELETEBIT: EQU 2 ;DO NOT DELETE FILE WHEN CLOSED (OVERRIDES DELETE BIT) CLOSEFORCEDWRITEBIT: EQU 3 ;FORCE WRITE ALL SECTORS WRITTEN BY THIS USER. *------------------------------------------------------------------------------ * EDIT MODE BIT DEFINITIONS. *------------------------------------------------------------------------------ EDITMODENOECHOBIT: EQU 16 ;DO NOT ECHO CHARACTERS (READ ONLY). EDITMODESPCOMPACTBIT: EQU 17 ;SPACE COMPACTION/DECOMPACTION. EDITMODENOFASTREADBIT: EQU 18 ;NO FAST READ ON THIS REQUEST (READ ONLY). EDITMODEFORCEDWRITEBIT: EQU 18 ;DO A FORCED WRITE HERE (WRITE ONLY). EDITMODETRANSPARENTBIT: EQU 14*4 KSAMCLASSBIT: EQU 1 OSINITCLASSOFFSET: EQU 15*4 OSINITCLASSBIT: EQU 0 *------------------------------------------------------------------------------ * OPEN, CREATE AND DELETE MODE BITS *------------------------------------------------------------------------------ OPENREADACCBIT: EQU 0 ;USER REQUESTS READ ACCESS. OPENWRITEACCBIT: EQU 1 ;USER REQUESTS WRITE ACCESS. OPENREADLOCKBIT: EQU 2 ;USER REQUESTS READ LOCK ON FILE. OPENWRITELOCKBIT: EQU 3 ;USER REQUESTS WRITE LOCK ON FILE. OPENDELETEBIT: EQU 4 ;DELETE FILE WHEN IT IS CLOSED. OPENAPPENDBIT: EQU 5 ;APPEND TO FILE. OPENFASTREADBIT: EQU 6 ;DO A FAST READ. OPENNEXTFILEBIT: EQU 7 ;OPEN NEXT FILE ON TAPE. OPENNOREADAHEADBIT: EQU 8 ;DO NOT DO READAHEAD. OPENNOTRUNCFILEBIT: EQU 9 ;DO NOT TRUNCATE THE FILE ON CLOSEING. CREATEOPENIFTHEREBIT: E< Process was exited by * undefined 1111 trap. ERRPRIVINSTRTRAP: EQU $23 ;35 Process was exited after * attempting to execute a * privileged instruction. ERRILLGINSTRTRAP: EQU $24 ;36 Process was exited after * attempting to execute an * illegal instruction. ERRBUSTRAP: EQU $25 ;37 Process was exited after after * a bus trap. ERRADDERTRAP: EQU $26 ;38 Process was exited after an * address trap. ERRMEMALLOCATION: EQU $27 ;39 Process was exited after * accessing non-existant memory. ERRMEMPARITY: EQU $28 ;40 Process was exited af) ERRFORCEDEXIT: EQU $1B ;27 Process was exited by another * process. ERRALARMEXIT: EQU $1C ;28 Process was exited by the * alarm clock. ERRNOZERODIVIDETRAP: EQU $1D ;29 Process was exited by * undefined divide by zero trap. ERRNOCHKTRAP: EQU $1E ;30 Process was exited by * undefined CHK trap. ERRNOTRAPVTRAP: EQU $1F ;31 Process was exited by * undefined TRAPV trap. ERRNOTRACETRAP: EQU $20 ;32 Process was exited by * undefined TRACE trap. ERRNO1010TRAP: EQU $21 ;33 Process was exited by * undefined 1010 trap. ERRNO1111TRAP: EQU $22 ;34  ;21 Attempt to create a process * with a non image-type file. ERRPRVLGOVFL: EQU $16 ;22 Attempt to give more privileges * than process has. ERRPRIOVFL: EQU $17 ;23 Attempt to change priority to * higher thant what process has. ERRBADUID: EQU $18 ;24 Unsuccessful attempt to create * a subprocess with other than * your own SYSID or USERID. ERRTIMESLICEOVFL: EQU $19 ;25 Unsuccessful attempt at creating * a subprocess with a greater time * slice than process has. ERRNOPRCSAVAIL: EQU $1A ;26 Process Control Table is full. * (out of memory.n. ERRBADRADIX: EQU $C ;12 Attempted use of radix not * between 2 and 16. ERRZERORADIX: EQU $D ;13 Attempted integer conversion * using radix of 0 or 1. ERRZERODIVIDE: EQU $E ;14 Attempted divide by zero. ERRBADTRAPNUM: EQU $F ;15 Bad trap number during call to * SETTRAP. ERRPRCSPROT: EQU $10 ;16 Attempt to access a protected * process. ERRFLUNFL: EQU $11 ;17 Floating underflow. ERRFLOVFL: EQU $12 ;18 Floating overflow. ERRINTOVFL: EQU $13 ;19 Integer overflow. ERRNOMSG: EQU $14 ;20 No message in system message * table for this process. ERRNOTIMAGEFILE: EQU $15 < ERRARGPRECISIONERR: EQU $3F ;63 Math function argument * precision error. ERRINVNUMCHAR: EQU $40 ;64 Invalid character in binary * decimal string. ERRMATHBRDFAIL: EQU $41 ;65 Math hardware failure in midst of operation. MATHERRDIV0: EQU $42 ;66 Math divide by zero exception. MATHERRUNDERFLO: EQU $43 ;67 Math underflow exception. MATHERROVERFLO: EQU $44 ;68 Math overflow exception. MATHERRILLEGALOP: EQU $45 ;69 Math illegal operation exception. MATHERRDENORMOP: EQU $46 ;70 Math denormalized operand exception. * * *----------------------------------------------------------------------------- * CLASS HANDLER ERRORS. *----------------------------------------------------------------------------- * MNEMONIC HEX DEC DEFINITION *-------------------- ----- ----- ------------------------------- FMS Process attempted to access * data belonging to a non- * existant or non-group process * through an SVC call. (Process * Sync SVCs). ERRLOGNAMETABNOTFND: EQU $37 ;55 Process logical name table not * found ERRINDEXOUTOFBOUNDS: EQU $38 ;56 Logical names index out of bounds. ERRNOPRIVILEGE: EQU $39 ;57 Process is not a operator. ERRBADPRIORITYRATIO: EQU $3A ;58 Priority Ratio is <= zero. ERRADDOVFL: EQU $3B ;59 Address passed to an SVC is out of range * EQU $3C ;60 RESERVED. * EQU $3D ;61 RESERVED. ERRARGRANGEERR: EQU $3E ;62 Math function argument range * error. physical memory. ERRSETDELOVFL: EQU $30 ;48 OS error, set delete flag * count went above 32k. ERRCLRDELOVFL: EQU $31 ;49 OS error, clear delete flag * count went below zero. ERRSSTCKUNFL: EQU $32 ;50 Supervisor stack underflow, probably * caused by not pushing enough parameters during * a call to TRAP0 ERRUSTCKUNFL: EQU $33 ;51 User stack underflow, probably caused by * not pushing enough parameters during * a call to TRAP0 * EQU $34 ;52 RESERVED ERRBADIMAGEBITMAP: EQU $35 ;53 Bit map changed during create process ERRPRIVLG: EQU $36 ;54 ter * memory parity error. ERRWRITEPROTECT: EQU $29 ;41 Process was exited after writing * to write protected memory. ERRUNDEFINEDTRAP: EQU $2A ;42 Process was exited after * calling an undefined trap. ERRUNDEFINEDSVCCALL: EQU $2B ;43 Process was exited after * calling an undefined SVC. ERRMEMORYINTERRUPT: EQU $2C ;44 Process was exited after a * memory violation. ERRBADPHYSMEMORY: EQU $2D ;45 Physical memory addresses does * not exist. ERRNOREADPHYSPRIV: EQU $2E ;46 Unauthorized attempt to read * physical memory. ERRNOWRITEPHYSPRIV: EQU $2F ;47 Unauthorized attempt to write *=ERENT FROM MOUNT TIME FMSERRNONWRITESEC: EQU $A9 ;169 NON-WRITEABLE SECTORS IN DISK CACHE. * EQU $AA ;170 RESERVED. * EQU $AB ;171 RESERVED. FMSERRINVDSKDEV: EQU $AC ;172 TRIED COPY FCB TO NON-DISK DEVICE.. FMSERRINVCLOPER: EQU $AD ;173 INVALID CLASS OPERATION. FMSERRINVDIRDEV: EQU $AE ;174 TRIED CHANGE DIR TO NON-DIR DEVICE. FMSERRUNKNOWNCMD: EQU $AF ;175 TRIED UNKNOWN COMMAND. FMSERRBUFTOSMALL: EQU $B0 ;176 USER BUFFER TO SMALL TO PERFORM OPERATION. FMSERRDIRNOTFOUND: EQU $B1 ;177 GIVEN DIRECTORY WAS NOT FOUND. FMSERRINVSEQNUM: EQU $B2 ;178 INVALID SEQUENCE NUMBER. FMSERRDEVNAMEXS: EQU $B3 ;179 DEVICE NAME ALREADY EXISTS. FMSERRINVCLASS: EQU $B4 ;180 INVALID CLASS HANDLER SPECIFIED. FMSERRBOOTFAILURE: EQU $B5 ;181 DISK INIT FAILURE. FMSERRINVBOOTCS: EQU $9A ;154 NO FREE DISK SPACE LEFT. * EQU $9B ;155 RESERVED. * EQU $9C ;156 RESERVED. * EQU $9D ;157 RESERVED. FMSERRCANTDELFILE: EQU $9E ;158 CAN NOT DELETE THE GIVEN FILE. FMSERRINVCONTFCBNUM: EQU $9F ;159 INVALID CONTINUATION FCB REQUEST. FMSERRFILESOPEN: EQU $A0 ;160 ON DISMOUNT, FILES ARE STILL OPEN. FMSERRINVFCBUSAGID: EQU $A1 ;161 INVALID FCB USAGE ID FIELD. * EQU $A2 ;162 RESERVED. * EQU $A3 ;163 RESERVED. FMSERRIMPRDISMOUNT: EQU $A4 ;164 VOLUME WAS IMPROPERLY DISMOUNTED. FMSERRINVREADREQ: EQU $A5 ;165 INVALID READ REQUEST. FMSERRREQCRPAGEBNDRY: EQU $A6 ;166 REQUEST CROSSES PAGE BOUNDRY. FMSERRRENDIFDEV: EQU $A7 ;167 CAN NOT REN FILE TO DIFF DEVICE. FMSERRDIFFBOOTBLOCK: EQU $A8 ;168 BOOT BLOCKS DIFF $8D ;141 NO READ ACCESS TO FILE. FMSERRNOWACCFILE: EQU $8E ;142 NO WRITE ACCESS TO FILE. FMSERRNOEXECUTEACC: EQU $8F ;143 NO EXECUTE PRIVELAGE TO THE FILE. FMSERRNOREADACC: EQU $90 ;144 NO READ PRIVELAGE TO THE FILE. FMSERRNOWRITEACC: EQU $91 ;145 NO WRITE PRIVELAGE TO THE FILE. FMSERRNODELETEACC: EQU $92 ;146 NO DELETE PRIVELAGE TO THE FILE. FMSERRINVFNSTR: EQU $93 ;147 INVALID FILE NAME STRING. FMSERRINVDIRTYPFILE: EQU $94 ;148 INVALID DIRECTORY TYPE FILE. FMSERRINVDIRSTR: EQU $95 ;149 INVALID DIRECTORY STRING. FMSERRNODACCFILE: EQU $96 ;150 NO DEBUG ACCESS TO FILE. FMSERRDSKREQTOLRG: EQU $97 ;151 ALLOCATE DISK REQUEST TO LARGE. FMSERRINVFCBCHECKSUM: EQU $98 ;152 INVALID FCB OR TAPE FILE LABEL CHECKSUM. FMSERRODDBUFADDR: EQU $99 ;153 USERS BUFFER ADDRESS IS ON A BYTE BOUNDRY FMSERRINSUFDISKSPACE: EQU ERRTIMEOUT: EQU $80 ;128 TIMEOUT ERROR ON USER TIMEOUT. FMSERRINVVERNUM: EQU $81 ;129 INVALID VERSION NUMBER, > 65523. FMSERRINVDEVNAMSTR: EQU $82 ;130 INVALID DEVICE NAME STRING. FMSERRUNDEVNAM: EQU $83 ;131 UNKNOWN DEVICE NAME SPECIFICATION. FMSERRINVLFN: EQU $84 ;132 INVALID LOGICAL FILE NUMBER. FMSERRFILENOTFOUND: EQU $85 ;133 FILE WAS NOT FOUND. FMSERRFNE: EQU $86 ;134 FILE NAME ALREADY EXISTS. FMSERRFILEREADLOCKED: EQU $87 ;135 THE FILE IS READ LOCKED. FMSERRFILEWRITELOCKED: EQU $88 ;136 THE FILE IS WRITE LOCKED. FMSERRREQTOLRG: EQU $89 ;137 REQUEST TO LARGE FOR SYSTEM TO HANDLE. FMSERRINVRECLEN: EQU $8A ;138 USER SUPPLIED INVALID RECORD LENGTH. * EQU $8B ;139 RESERVED. FMSERRREADLEOF: EQU $8C ;140 READ BEYOND LOGICAL END OF FILE. FMSERRNORACCFILE: EQU = EQU $E2 ;226 Invalid number of KSAM segments KFMSERRRECSIZE: EQU $E3 ;227 Invalid KSAM record size KFMSERRSEGALIGN: EQU $E4 ;228 Improperly aligned segment or key for word or longword key type KFMSERRSEGLEN: EQU $E5 ;229 Invalid key or key segment length KFMSERRKEYNOTFOUND: EQU $E6 ;230 Invalid key number KFMSERRKEYNOTDEFINED: EQU $E7 ;231 Key not defined for this I/O operation KFMSERRDUPKEYNOTALLOWED EQU $E8 ;232 Duplicate key not allowed during write or update operation KFMSERRKSWITCH: EQU $E9 ;233 Internal ksam error KFMSERRDEADLOCK: EQU $EA ;234 Deadlock detected KFMSERRRECORDLOCKED: EQU $EB ;235 Record to locked to desired access KFMSERRRECNOTDEFINED: EQU $EC ;236 Current record is undefined KFMSERRKSAMNOREC: EQU $ED ;237 Record referenced in lock/unlock call is not in lock table KFMSERRKPFDLINKERR: EQU $ERROR ACCESSING NONEXISTENT HARDWARE. * EQU $D4 ;212 RESERVED. * EQU $D5 ;213 RESERVED. * EQU $D6 ;214 RESERVED. * EQU $D7 ;215 RESERVED. FMSERRINVCONT: EQU $D8 ;216 INVALID DEVICE DRIVER SPECIFIED. KFMSERRBADKEYTYPE: EQU $D9 ;217 Invalid KSAM key type * EQU $DA ;218 RESERVED. * EQU $DB ;219 RESERVED. * EQU $DC ;220 RESERVED. KFMSERRKEYNOTINREC: EQU $DD ;221 Key not entirely within KSAM record KFMSERRKEYTABLELEN: EQU $DE ;222 Key definition table not <= 3500 bytes KFMSERRNODATAFILE: EQU $DF ;223 Named file is not a KSAM data file KFMSERRNOKEYFILE: EQU $E0 ;224 Named file is not a KSAM key file KFMSERRNUMOFKEYS: EQU $E1 ;225 Invalid number of KSAM keys KFMSERRNUMOFSEGS:  EQU $C4 ;196 RESERVED. FMSERRBADPOS: EQU $C5 ;197 ONLY DEFALUT POSITION ALLOWED * EQU $C6 ;198 RESERVED. * EQU $C7 ;199 RESERVED. FMSERRDIRINVVER: EQU $C8 ;200 ATTEMPT TO CREATE DIR FILE WITH VER NUMB > 1. * EQU $C9 ;201 RESERVED. FMSERRTAPFILOPEN: EQU $CA ;202 TAPE FILE ALREADY OPEN * EQU $CB ;203 RESERVED. * EQU $CC ;204 RESERVED. * EQU $CD ;205 RESERVED. FMSERRINVSKIPCMD: EQU $CE ;206 INVALID SKIP OR ERASE COMMAND * EQU $CF ;207 RESERVED. * EQU $D0 ;208 RESERVED. * EQU $D1 ;209 RESERVED. FMSERRDELNEDIRFILE: EQU $D2 ;210 DELETING NON EMPTY DIR FILE. FMSERRNOHARDWARE: EQU $D3 ;211 E $B6 ;182 INVALID BOOT BLOCK OR TAPE VOLUEM LABEL CHECKSUM. DMERRDMRTL: EQU $B7 ;183 INVALID DYNAMIC MEMORY REQUEST DMERRIDMTFR: EQU $B8 ;184 INSUFFICIENT DYNAMIC MEMORY TO FILL REQUEST. FMSERRCLNIMPYET: EQU $B9 ;185 CLASS HANDLER NOT LOADED. FMSERRINVDIRRENAME: EQU $BA ;186 CAN NOT RENAME DIR FILE TO SELF. FMSERRINVDRIVENUMBER: EQU $BB ;187 INVALID DRIVE NUMBER. FMSERRPREVINIT: EQU $BC ;188 DRIVE HAS BEEN PREVIOUSLY INITED FMSERRINVEDITMODE: EQU $BD ;189 INVALID EDIT MODE. FMSERRPREVSYNCINIT: EQU $BE ;190 DRIVE PREVIOUSLY INITED SYNCHRONOUSLY FMSERRPREVASYNCINIT: EQU $BF ;191 DRIVE PREVIOUSLY INITED ASYNCHRONOUSLY * EQU $C0 ;192 RESERVED. * EQU $C1 ;193 RESERVED. * EQU $C2 ;194 RESERVED. * EQU $C3 ;195 RESERVED. * >ore next data byte arrived FMSERRMEDIANOTFORMATTED EQU $112 ;274 Block headers could not be found, assumed unformatted media FMSERRDEVICETIMEOUT: EQU $113 ;275 Device didn't respond in alloted time. FMSERRREADAFTERWRITE: EQU $114 ;276 Read after write comparison error. FMSERRENDOFTAPE: EQU $115 ;277 DETECTED LOGICAL END OF TAPE FMSERRHITEOT: EQU $116 ;278 DETECTED PHYSICAL END OF TAPE FMSERRBEGINOFTAPE: EQU $117 ;279 DETECTED BEGINNING OF TAPE FMSERRTAPEOVERFLOW: EQU $118 ;280 READ MORE BYTES FROM TAPE THAN BLOCK SIZE REQUESTED FMSERRTAPEBURSTERR: EQU $119 ;281 ID BURST (PHASE ENCODED) MISSING FMSERRTAPEPARITY1: EQU $11A ;282 PARITY ERROR WRITING TO TAPE FMSERRTAPEPARITY2: EQU $11B ;283 PARITY ERROR IN TAPE CONTROLLER FMSERRTAPEPARITY3: EQU $11C ;284 PARITY ERROR READING FROM TAPE FMSERRILLTAPECMD: EQU $11D ;285 ILLEGAL COMMAND TO TAPE  $105 ;261 Recalibrate not possible error FMSERRREZEROTIMEOUT EQU $106 ;262 Recalibrate timeout, device check FMSERRDRIVENOTONLINE EQU $107 ;263 Device is offline or not responding FMSERRWRITEFAULT EQU $108 ;264 WRITE FAULT FMSERRFORMATPROTECT EQU $109 ;265 Write protected device, cannot format FMSERRREADDATAFAULT EQU $10A ;266 READ FAULT OR DATA LOST READING FROM TAPE FMSERRDATACRCERR EQU $10B ;267 CRC error detected in data portion of sector FMSERRSECTORLOCATEERR EQU $10C ;268 Sector cannot be found on track FMSERRWRITEPROTECT EQU $10D ;269 Device is write protected FMSERRBADSECTORADD EQU $10E ;270 Logical sector number is too large FMSERRBADCOMMAND EQU $10F ;271 Unrecognized device command FMSERRDEVICECHECK EQU $110 ;272 General device check, cause unknown FMSERRPORTOVERRUN EQU $111 ;273 Data port was not serviced bef EQU $FC ;252 RESERVED. * EQU $FD ;253 RESERVED. * EQU $FE ;254 RESERVED. CONTROLCCODE: EQU $FF ;255 CONTROL C TERMINATION CODE * * *----------------------------------------------------------------------------- * DEVICE DRIVER ERRORS. *----------------------------------------------------------------------------- * MNEMONIC HEX DEC DEFINITION *-------------------- --- --- ------------------------------- FMSERRBADHEADER: EQU $100 ;256 disk read sector header err FMSERRSEEKTIMEOUT: EQU $101 ;257 Seek OR REWIND took to long, device check FMSERRSEEKFAULT: EQU $102 ;258 Seek was not possible, device check FMSERRSEEKERROR: EQU $103 ;259 Seek was not to proper cylinder FMSERRHEADERCRC EQU $104 ;260 CRC error is sector header FMSERRREZEROFAULT EQU E ;238 Error in KPFD linkage, call WICAST. KFMSERRKEYLINKERR: EQU $EF ;239 Error in Key to Data linkage. Call WICAT KFMSERRNOPROCESS: EQU $F0 ;240 KSAM internal process linkage error KFMSERRSRCHNOTFOUND: EQU $F1 ;241 Key value not found * EQU $F2 ;242 RESERVED. KFMSERRBADKEYCOMPARE: EQU $F3 ;243 Error detected on key compare during read KFMSERRDELLINK: EQU $F4 ;244 Error detected while deleting leaf key KFMSERROPENACCESSCONF: EQU $F5 ;245 CONFLICT IN KSAM VS. REGULAR OPEN KFMSERRNOVALIDOPTION: EQU $F6 ;246 No valid KSAM option on KSAM function call KFMSERRKFCBLINKERR: EQU $F7 ;247 Error in KFCB linkage pointers. * EQU $F8 ;248 RESERVED. * EQU $F9 ;249 RESERVED. * EQU $FA ;250 RESERVED. * EQU $FB ;251 RESERVED. * > errnochktrap = 30; {** Exited by undefined CHK trap. } errnotrapvtrap = 31; {** Exited by undefined TRAPV trap. } errnotracetrap = 32; {** Exited by undefined TRACE trap. } errno1010trap = 33; {** Exited by undefined 1010 trap. } errno1111trap = 34; {** Exited by undefined 1111 trap. } errprivinstrtrap = 35; {** Exited execute privileged instruction} errillginstrtrap = 36; {** Exited executing illegal instruction.} errbustrap = 37; {** Exited after a bus trap. } erraddertrap = 38; {** Exited after an address trap. } errmemallocation = 39; {** Exited accessing non-existant memory} errmemparity = 40; {** Exited after memory parity error. } errwriteprotect = 41; {** Exited writing write protected memory} errundefinedtrap = 42; {** Exited calling an undefined trap } errundefinedsvccall = 43; {** Exited after calling an undefined SVC} errmemoryinterrupt = 44; {** Exited after a memory violation. } errbadphysmemory = 45; {** Physical menversion using radix of 0 or 1.} errzerodivide = 14; {** Attempted divide by zero. } errbadtrapnum = 15; {** Bad trap number in call to SETTRAP. } errprcsprot = 16; {** Attempt to access a protected process} errflunfl = 17; {** Floating underflow. } errflovfl = 18; {** Floating overflow. } errintovfl = 19; {** Integer overflow. } errnomsg = 20; {** No message for this process. } errnotimagefile = 21; {** create a process with non image file.} errprvlgovfl = 22; {** giving more privs than process has. } errpriovfl = 23; {** set priority higher than allowable } errbaduid = 24; {** crproc with other SYSID or USERID } errtimesliceovfl = 25; {** crproc with greater time slice } errnoprcsavail = 26; {** Process Control Table is full. } errforcedexit = 27; {** Process exited by another process. } erralarmexit = 28; {** Process exited by alarm clock. } errnozerodividetrap = 29; {** exited by undefined zero divide trap } FMSERRBSCNOVERIFYREAD: EQU $12D ;301 BISYNC--NON VERIFIED DATA WAS READ FMSERRBSCCONVERSREPLY: EQU $12E ;302 BISYNC--CONVERSATIONAL REPLY RECEIVED {-----------------------------------------------------------------------} { System errors } {-----------------------------------------------------------------------} const errprcsnotfound = 2; {** Process not found in process table. } errinvalidaddr = 4; {** memory request adr not on 4K boundary} errmemalloc = 5; {** page requested already allocated. } errbadmemshare = 6; {** Attempt to share an unowned page } errnomemavail = 7; {** No memory available. } errprotchange = 8; {** Modify protection on unowned page } errmemdeall = 9; {** Attempt to release non-existant mem } errartiovflw = 10; {** Arithmetic Integer overflow. } errnonumber = 11; {** No number found during number scan } errbadradix = 12; {** use of radix not between 2 and 16. } errzeroradix = 13; {** int coCONTROLLER FMSERRILLTAPESEQ: EQU $11E ;286 ILLEGAL SEQUENCE OF COMMANDS TO TAPE CONTROLLER (DRIVE OF LINE?) FMSERRECCERRORDATA: EQU $11F ;287 ECC CODE ERROR - DATA FIELD FMSERRBADIOPB: EQU $120 ;288 INVALID IOPB (CMD,UNIT,CYL TRK,ETC.) FMSERRBUSTIMEOUT: EQU $121 ;289 BUS TIME OUT ERROR FMSERRECCERRORID: EQU $122 ;290 ECC CODE ERROR - ID FIELD FMSERRNOTINITED: EQU $123 ;291 UNIT NOT INITIALIZED FMSERRBSCINVLNSTATE: EQU $124 ;292 BISYNC--INVALID LINE STATE FMSERRMODEMNOTREADY: EQU $125 ;293 MODEM NOT READY FMSERRBSCLINEBIDRCVD: EQU $126 ;294 BISYNC--LINE BID RECEIVED FMSERRBSCNAKRCVD: EQU $127 ;295 BISYNC--NAK RECEIVED FMSERRBSCEOTRCVD: EQU $128 ;296 BISYNC--EOT RECEIVED FMSERRBSCRVIRCVD: EQU $129 ;297 BISYNC--RVI RECEIVED FMSERRBSCDISCONRCVD: EQU $12A ;298 BISYNC--DISCONNECT RECEIVED FMSERRBSCPOLLSTEMPTY: EQU $12B ;299 BISYNC--POLLING LIST IS EMPTY FMSERRBSCLOGNOTENBLD: EQU $12C ;300 BISYNC--DEBUG LOGGING NOT ENABLED ? errinvfcbchecksum = 152; {** INVALID FCB OR TAPE LABEL CHECKSUM } erroddbufaddr = 153; {** USERS BUFFER ADDRESS ON BYTE BOUNDRY } errinsufdiskspace = 154; {** NO FREE DISK SPACE LEFT. } errcantdelfile = 158; {** CAN NOT DELETE THE GIVEN FILE. } errinvcontfcbnum = 159; {** INVALID CONTINUATION FCB REQUEST. } errfilesopen = 160; {** ON DISMOUNT, FILES ARE STILL OPEN. } errinvfcbusagid = 161; {** INVALID FCB USAGE ID FIELD. } errimprdismount = 164; {** DEVICE WAS IMPROPERLY DISMOUNTED. } errinvreadreq = 165; {** INVALID READ REQUEST. } errreqcrpagebndry = 166; {** REQUEST CROSSES PAGE BOUNDARY. } errrendifdev = 167; {** CAN'T RENAME FILES TO DIF DEVICE. } errdiffbootblock = 168; {** BOOT BLOCKS ARE NOT IDENTICAL. } errnonwritesec = 169; {** CACHE CONTAINS UNWRITTEN SECTORS. } errinvdskdev = 172; {** TRIED COPY FCB TO NON-DISK DEVICE. } errinvcloper = 173; {** INVALID CLASS OPERATION. } errinvdirdev = 174; {** TRIED CHANGE DIR TO NON-DIR DEVICE. } ** FILE NAME ALREADY EXISTS. } errfilereadlocked = 135; {** THE FILE IS READ LOCKED. } errfilewritelocked = 136; {** THE FILE IS WRITE LOCKED. } errreqtolrg = 137; {** REQUEST TO LARGE FOR SYSTEM TO HANDLE} errinvreclen = 138; {** USER SUPPLIED INVALID RECORD LENGTH. } errreadleof = 140; {** READ BEYOND LOGICAL END OF FILE. } errnoraccfile = 141; {** NO READ ACCESS TO FILE. } errnowaccfile = 142; {** NO WRITE ACCESS TO FILE. } errnoexecuteacc = 143; {** NO EXECUTE PRIVELAGE TO THE FILE. } errnoreadacc = 144; {** NO READ PRIVELAGE TO THE FILE. } errnowriteacc = 145; {** NO WRITE PRIVELAGE TO THE FILE. } errnodeleteacc = 146; {** NO DELETE PRIVELAGE TO THE FILE. } errinvfnstr = 147; {** INVALID FILE NAME STRING. } errinvdirtypfile = 148; {** INVALID DIRECTORY TYPE FILE. } errinvdirstr = 149; {** INVALID DIRECTORY STRING. } errnodaccfile = 150; {** NO DEBUG ACCESS TO FILE. } errdskreqtolrg = 151; {** ALLOCATE DISK REQUEST TO LARGE. }  } errinvnumchar = 64; {** Invalid char in binary decimal string} errmathbrdfail = 65; {** Math H/W failure during operation } matherrdiv0 = 66; {** Math divide by zero exception. } matherrunderflo = 67; {** Math underflow exception. } matherroverflo = 68; {** Math overflow exception. } matherrillegalop = 69; {** Math illegal operation exception. } matherrdenormop = 70; {** Math denormalized operand exception. } {-----------------------------------------------------------------------} { File management system errors } {-----------------------------------------------------------------------} errtimeout = 128; {** TIMEOUT ERROR ON USER TIMEOUT. } errinvvernum = 129; {** INVALID VERSION NUMBER, > 65523. } errinvdevnamstr = 130; {** INVALID DEVICE NAME STRING. } errundevnam = 131; {** UNKNOWN DEVICE NAME SPECIFICATION. } errinvlfn = 132; {** INVALID LOGICAL FILE NUMBER. } errfilenotfound = 133; {** FILE WAS NOT FOUND. } errfne = 134; {mory adr does not exist. } errnoreadphyspriv = 46; {** Unauthorized read of physical memory.} errnowritephyspriv = 47; {** Unauthorized write to physical memory} errsetdelovfl = 48; {** OS error, set delete flag count > 32k} errclrdelovfl = 49; {** OS error, clear delete flag count < 0} errsstckunfl = 50; {** Supervisor stack underflow } errustckunfl = 51; {** User stack underflow } errbadimagebitmap = 53; {** Bit map changed during create process} errprivlg = 54; {** Accessing data of non-group prcs } errlognametabnotfnd = 55; {** Process logical name table not found } errindexoutofbounds = 56; {** Logical names index out of bounds. } errnoprivilege = 57; {** Process is not a operator. } errbadpriorityratio = 58; {** Priority Ratio is <= zero. } erraddovfl = 59; {** Address passed to SVC is out of range} errargrangeerr = 62; {** Math function argument range error. } errargprecisionerr = 63; {** Math function arg precision error?ll} errkfcblinkerr = 247; {** Error in KFCB linkage pointers. } controlccode = 255; {** CONTROL C TERMINATION CODE } errbadheader = 256; {** disk read sector header err } errseektimeout = 257; {** Seek/rewind too long, device check } errseekfault = 258; {** Seek was not possible, device check } errseekerror = 259; {** Seek was not to proper cylinder } errheadercrc = 260; {** CRC error is sector header } errrezerofault = 261; {** Recalibrate not possible error } errrezerotimeout = 262; {** Recalibrate timeout, device check } errdrivenotonline = 263; {** Device is offline or not responding } errwritefault = 264; {** WRITE FAULT } errformatprotect = 265; {** Write protected device, cannot format} errreaddatafault = 266; {** READ FAULT OR DATA LOST READING TAPE } errdatacrcerr = 267; {** CRC error detected in sector } errsectorlocateerr = 268; {** Sector cannot be found on track } errdevwriteprotect = 269; {** Device is write protected } * Invalid key or key segment length } errkeynotfound = 230; {** Invalid key number } errkeynotdefined = 231; {** Key not defined for this I/O operatn } errdupkeynotallowed = 232; {** Duplicate key not allowed } errkswitch = 233; {** Internal ksam error } errdeadlock = 234; {** Deadlock detected } errrecordlocked = 235; {** Record to locked to desired access } errrecnotdefined = 236; {** Current record is undefined } errksamnorec = 237; {** Record referenced not in lock table } errkpfdlinkerr = 238; {** Error in KPFD linkage, } errkeylinkerr = 239; {** Error in Key to Data linkage. } errnoprocess = 240; {** KSAM internal process linkage error } errsrchnotfound = 241; {** Key value not found } errbadkeycompare = 243; {** Error on key compare during read } errdellink = 244; {** Error while deleting leaf key } erropenaccessconf = 245; {** CONFLICT IN KSAM VS. REGULAR OPEN } errnovalidoption = 246; {** No valid KSAM option on function caHRONOUS } errbadpos = 197; {** ONLY DEFALUT POSITION ALLOWED } errdirinvver = 200; {** CREATING DIR FILE WITH VER NUMB > 1. } errtapfilopen = 202; {** TAPE FILE ALREADY OPEN } errinvskipcmd = 206; {** INVALID SKIP OR ERASE COMMAND } errdelnedirfile = 210; {** DELETING NON EMPTY DIR FILE. } errnohardware = 211; {** ERROR ACCESSING NONEXISTENT HARDWARE.} errinvcont = 216; {** INVALID DEVICE DRIVER SPECIFIED. } errbadkeytype = 217; {** Invalid KSAM key type } errkeynotinrec = 221; {** Key not entirely within KSAM record } errkeytablelen = 222; {** Key definition table not<=3500 bytes } errnodatafile = 223; {** Named file is not a KSAM data file } errnokeyfile = 224; {** Named file is not a KSAM key file } errnumofkeys = 225; {** Invalid number of KSAM keys } errnumofsegs = 226; {** Invalid number of KSAM segments } errrecsize = 227; {** Invalid KSAM record size } errsegalign = 228; {** byte aligned segment or key } errseglen = 229; {* errunknowncmd = 175; {** TRIED UNKNOWN COMMAND. } errbuftosmall = 176; {** USER BUFFER TOO SMALL FOR OPERATION. } errdirnotfound = 177; {** GIVEN DIRECTORY WAS NOT FOUND. } errinvseqnum = 178; {** INVALID SEQUENCE NUMBER. } errdevnamexs = 179; {** DEVICE NAME ALREADY EXISTS. } errinvclass = 180; {** INVALID CLASS HANDLER SPECIFIED. } errbootfailure = 181; {** DISK INIT FAILURE. } errinvbootcs = 182; {** INVALID BOOT BLOCK CHECKSUM. } errdmrtl = 183; {** INVALID DYNAMIC MEMORY REQUEST } erridmtfr = 184; {** INSUFFICIENT DYN MEMORY FOR REQUEST } errclnimpyet = 185; {** CLASS HANDLER NOT LOADED. } errinvdirrename = 186; {** CANNOT RENAME DIR FILE TO ITSELF. } errinvdrivenumber = 187; {** INVALID DRIVE NUMBER. } errprevinit = 188; {** DRIVE HAS BEEN PREVIOUSLY INITED } errinveditmode = 189; {** INVALID EDIT MODE. } errprevsyncinit = 190; {** DEVICE ALREADY MOUNTED-SYNCHRONOUS } errprevasyncinit = 191; {** DEVICE ALREADY MOUNTED-ASYNC@bled. * All other SYSTEMxxx variables should be set EQUal to one. * * NOTE: The conditional assembly is now set for the SYSTEM-150 * ******************************************************************************* SYSTEM156: EQU 1 SYSTEM100: EQU 1 SYSTEM150: EQU 0 ;WE ARE DOING THIS ONE ******************************************************************************* * CONDITIONAL ASSEMBLY VARIABLES FILE: SYSTEM156.CND ******************************************************************************* * This section contains the variables used for conditional assembly. * Set the SYSTEMxxx variable EQUal to zero for the sytem to be assembled. * All other SYSTEMxxx variables should be set EQUal to one. * * NOTE: The conditional assembly is now set for the SYSTEM-156 * ******************************************************************************* SYSTEM156 EQU 0 ;WE ARE DOING THIS ONE SYSTEM100 EQU 1 SYSTEM150 EQU 1 PAGE * * *************sational reply rec'd. } ******************************************************************************* * CONDITIONAL ASSEMBLY VARIABLES FILE: SYSTEM100.CND ******************************************************************************* * This section contains the variables used for conditional assembly. * Set the SYSTEMxxx variable EQUal to zero for the sytem to be assembled. * All other SYSTEMxxx variables should be set EQUal to one. * * NOTE: The conditional assembly is now set for the SYSTEM-100 * ******************************************************************************* SYSTEM156: EQU 1 SYSTEM100: EQU 0 ;THE ONE WE ARE ASSEMBLING SYSTEM150: EQU 1 ******************************************************************************* * CONDITIONAL ASSEMBLY VARIABLES FILE: SYSTEM150.CND ******************************************************************************* * This section contains the variables used for conditional assembly. * Set the SYSTEMxxx variable EQUal to zero for the sytem to be assemER } errilltapeseq = 286; {** ILLEGAL SEQUENCE OF COMMANDS TO TAPE } erreccerrordata = 287; {** ECC CODE ERROR - DATA FIELD } errbadiopb = 288; {** INVALID IOPB (CMD,UNIT,CYL,TRK,ETC.) } errbustimeout = 289; {** BUS TIMEOUT ERROR } erreccerrorid = 290; {** ECC CODE ERROR - ID FIELD } errnotinited = 291; {** UNIT NOT INITIALIZED } errbscinvlnstate = 292; {** Bisync--Invalid line state. } errmodemnotready = 293; {** Modem not ready. } errbsclinebidrcvd = 294; {** Bisync--Line bid received. } errbscnakrcvd = 295; {** Bisync--NAK received. } errbsceotrcvd = 296; {** Bisync--EOT received. } errbscrvircvd = 297; {** Bisync--RVI received. } errbscdisconrcvd = 298; {** Bisync--Disconnect received. } errbscpollstempty = 299; {** Bisync--Polling list is empty. } errbsclognotenbld = 300; {** Bisync--Debug logging not enabled. } errbscnoverifyread = 301; {** Bisync--Non-verified data was read. } errbscconversreply = 302; {** Bisync--Convererrbadsectoradd = 270; {** Logical sector number is too large } errbadcommand = 271; {** Unrecognized device command } errdevicecheck = 272; {** General device check, cause unknown } errportoverrun = 273; {** Data port over run error } errmedianotformatted= 274; {** Block headers not found, unformatted } errdevicetimeout = 275; {** Device didn't respond in alloted time} errreadafterwrite = 276; {** Read after write comparison error. } errendoftape = 277; {** DETECTED LOGICAL END OF TAPE } errhiteot = 278; {** DETECTED PHYSICAL END OF TAPE } errbeginoftape = 279; {** DETECTED BEGINNING OF TAPE } errtapeoverflow = 280; {** READ MORE BYTES THAN BLOCK SIZE } errtapebursterr = 281; {** ID BURST (PHASE ENCODED) MISSING } errtapeparity1 = 282; {** PARITY ERROR WRITING TO TAPE } errtapeparity2 = 283; {** PARITY ERROR IN TAPE CONTROLLER } errtapeparity3 = 284; {** PARITY ERROR READING FROM TAPE } errilltapecmd = 285; {** ILLEGAL COMMAND TO TAPE CONTROLL@ the file record length TLBFILEOWNER: DS.W 1 ;Holds the file owner TLBFILEGROUP: DS.W 1 ;Holds the file group TLBFILEPROT: DS.W 1 ;Holds the file protection TLBEXECUTEPROT: EQU 0 TLBREADPROT: EQU 1 TLBWRITEPROT: EQU 2 TLBFILECREAT: DS.L 2 ;Holds the file creation date TLBFILEMOD: DS.L 2 ;Holds the file modification date TLBMAXSIZE: DS.L 1 ;Holds the max size of the file TLBPHYSSIZE: DS.L 1 ;Holds the physical size of the file TLBLOGSIZE: DS.L 1 ;Holds the logical size of the file TLBPRCSPRIV: DS.W 1 ;Holds process priv. if this is image TLBDIRLEN: DS.W 1 ;Holds the directory string length TLBDIRNAME: DS.B MDIRSIZE ;Holds the directory name TLBFILECHKSUM: DS.W 1 ;Holds the checksum TLBFILELABELSIZE: EQU * ;Size of the fileile label definition -- Corresponds to FCB for a disk file. ****************************************************************************** MDIRSIZE: EQU 62 FILENAMESIZE: SET 14 FILENAMEF1SIZE: SET 9 FILENAMEF2SIZE: SET 3 *------------------------------------------------------------------------------ * Tape file label block. *------------------------------------------------------------------------------ ORG.L 0 TLBUSAGE: DS.W 1 ;Holds the usage field of the label TLBHEADER: EQU 0 ;the label is a header TLBTRAILER: EQU 1 ;the label is a trailer TLBFILETYPE: DS.W 1 ;Holds the file type TLBFILENAME: DS.B FILENAMESIZE ;Holds the file name DS.W 2 ;reserved space (parent fcb #) TLBFILESEQUENCE: DS.W 1 ;Holds the file sequence number TLBFILERECLEN: DS.W 1 ;Holds ;Holds volume id TLBOWNERID: DS.W 1 ;Holds volume owner id TLBGROUPID: DS.W 1 ;Holds volume group id TLBVOLPROT: DS.W 1 ;Holds volume protection DS.B DISK1 ;reserved space TLBVOLBLOCKSIZE: DS.W 1 ;Holds volume block size DS.B DISK2 ;reserved space TLBBOOTDEVNAME: DS.B DEVLEN ;Holds boot device name DS.B DISK3 ;reserved space TLBRESERVED: DS.B MRESERVED ;not used TLBNOTCHECKSUM: DS.W 1 ;Holds notted checksum TLBROTCHECKSUM: DS.W 1 ;Holds rotated checksum TLBVOLLABELSIZE: EQU * ;Size of tape label block PAGE * * ****************************************************************************** * Tape f***************************************************************** * Tape Volume label definition -- Corresponds to boot block for disk. ****************************************************************************** LABLEN: EQU 16 ;length of labels DEVLEN: EQU 8 ;length of device names CREATLEN: EQU 8 ;len of creation date DISK1: EQU 6 ;def. allocation, sec. alloc., and flush flag DISK2: EQU 10 ;shift count(2), cache size(2), * ;max cache alloc(2), # sectors on disk(4) DISK3: EQU 8 ;FCB start sector, dismount and readahead flags MRESERVED: EQU 128-(LABLEN+DEVLEN+CREATLEN+DISK1+DISK2+DISK3+14) *------------------------------------------------------------------------------ * Tape boot block. *------------------------------------------------------------------------------ ORG.L 0 TLBVOLLABEL: DS.B LABLEN ;Holds the volume label TLBVOLCREATE: DS.B CREATLEN ;Holds creation date of volume TLBVOLID: DS.W 1 Aharacters have been skipped. The default is zero. Field=number indicates which field you want to be the actual key. For example, field=3,stop=":" indicates that you want the third field of a record in which fields are delimited by colons. SORT will find this third field in the following way. The first field begins at the start of the record. To find the second field, SORT skips over "SKip=" characters in this first field and then looks for the first "STop=" character. The second field begins immediately after this "stop" character. SORT will skip over skip characters in this second label Aeger overflow.No number found during a number search or scan.Attempted use of radix not between 2 and 16.Attempted integer conversion using radix of 0 or 1.Attempted divide by zero.Bad trap number during call to SETTRAP.Attempt to access a protected process.Floating underflow.Floating overflow.Integer overflow.No message in system message table for this process.Attempt to create a process with a non-image type file.Attempt to give more privileges than process has.._dx0/mcs0400/ syslib/*,sysexe/*,rootdir/*.150,sysdsr/*,syshlp/*,sysincl.sys/* sysdsr/msc$150.dsr :verify _dx0/mcs0400/ syslib/*,sysexe/*,rootdir/*.150,sysdsr/*,syshlp/*,sysincl.sys/* sysdsr/wd2$150.dsr :verify No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIProcess requested not found in system process table. No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIRequest for memory whose logical address is invalid.The virtual page requested has already been allocated.Attempt to share page not owned by calling process.No memory available.Attempt to change protection on a non-owned page of memory.Attempt to release nonexistent memory.Arithmetic intSTART$150COM)&U)'!&STARTUPCOMNN)'S)(&UAFDAT)[),&WUSERUPCOMdd)[)&&VEWHLP|bb)G)&VEWMG8000HLPbb)6) &_DC1/SYSLIB/- H@&HB.BACKMSCCOMii)!)!7&BACKWD2COMiii)")" &ERRORTXTee) N) &LOGINCOMn%%))8&MCS0400APXrrfrf))&MCS0400CKS=33)"O)#4&MCS0400RLS5[/[/)P);&MCSBKUPCOMtd)$ )$(&MCSBOOTCOMy` )$])%,&MCSLOADCOM)%U)&!&SETUP252SYS ));&SETUP253SYS+ ) )8&SETUP254SYS)[)&SETUP255SYS)C)&Bystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIRange error in mathematic function argument.Precision error in mathematic function argument.Invalid character in decimal string.tring.Math hardware failure during operation.Math divide by zero exception.Math underflow exception..Math overflow exception.e.Math illegal operation exception.Math denormalized operand exception..No error message available.No error message available.No error message available.No error messa.OS error. Critical/Non-delete count underflow.ro.Supervisor stack underflow. (Not enough parms in TRAP0 call).User stack underflow. (Not enough parms in TRAP0 call).No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIBit map changed during create process.Process is nonexistent. Data not available.group process through SVC call.Process logical name table not found.Logical name index is out of bounds.Process was aborted attempting a System Operator operation.Priority ratio is less than or equal to zero.Address passed to an SVC is out of range.No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)tion.Process was aborted attempting to execute an illegal instruction.Process was aborted by a bus trap.p.Process was aborted by an address trap.p.Process was aborted by accessing nonexistent memory.y.Process was aborted by a memory parity error.r.Process was aborted by writing to write-protected memory.y.Process was aborted by calling an undefined trap.p.Process was aborted by calling an undefined SVC.C.Process was aborted by a memory violation.n.Physical memory addressed does not exist.Unauthorized attempt to read physical memory.Unauthorized attempt to write physical memory.OS error. Critical/Non-delete count overflow.Attempt to change priority to higher than what process has.Attempt to create subprocess with other than own SYSID or USERID.Attempt to create subprocess with larger timeslice than process has.Process Control Table is full. (Out of memory.)Process was aborted by another process.Process was aborted by the alarm clock.Process was aborted by an undefined Divide-by-Zero trap.Process was aborted by an undefined CHK trap.Process was aborted by an undefined TRAPV trap.Process was aborted by an undefined TRACE trap.Process was aborted by an undefined 1010 instruction trap.Process was aborted by an undefined 1111 instruction trap.Process was aborted attempting to execute a privileged instrucBNo error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.ge available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.No error message available.No error message available.No error message available.No error message available.No error message available.CDevice was improperly dismounted.Invalid read request.able.Request crosses page boundary.Cannot rename file to a different device.Boot block changed since device was mounted.Cache contained unwritable sector at dismount time.No error message available.No error message available.Attempted COPYFCB operation on a non-disk and non-tape device.Invalid Class operation.Attempt to change default directory to a non directory device.Attempted unknown command.User buffer too small to perform operation.DIAllocate disk request is too large.Invalid FCB or tape file label checksum.User's buffer address is on a byte boundary.No disk space available.No error message available.No error message available.No error message available.Cannot delete file. At least one process has the file open.Invalid continuation FCB index number.Unable to dismount. File(s) are still open on the device.FCB usage field was invalid when allocating new FCB.No error message available.No error message available.rd length is invalid.No error message available.Read beyond logical end of file.Process has no read access to the file.Process has no write access to the file.Process has no execute privilege to the file.Process has no read privilege to the file.Process has no write privilege to the file.Process has no delete privilege to the file.Invalid file name string.Invalid directory type file.Invalid directory name string.No debug access to the file.)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$No error message available.Timeout error on user timeout.Invalid file version number. (Greater than 65523).23).Invalid device name string.Unknown device name specification. (Device not mounted?)Invalid logical unit number.File was not found.File name already exists.Specified file is read-locked.ed.Specified file is write-locked.ed.Request is too large for the system to handle.le.Specified recoCNo error message avialable.Invalid device driver specified.Invalid KSAM key type.No error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIKey not entirely within KSAM record.KSAM key definition table is larger than 3500 bytes.Specified file is not a KSAM data file.Specified file is not a KSAM key file.Invalid number of KSAM keys.Invalid number of KSAM segments.Invalid KSAM record size.ady open.No error message available.No error message available.No error message available.Invalid skip or erase command.No error message available.No error message available.No error message available.Attempt to delete a non-empty directory file.Attempt to access nonexistent hardware.No error message available.No error message available.No error message available.Device already mounted - Synchronous.Device already mounted - Asynchronous.No error message available.No error message available.No error message available.No error message available.No error message available.Only default file position allowed on tape. (Random access not allowed.)No error message available.No error message available.Directory name already exists.No error message available.Tape file alreSpecified directory does not exist.Invalid file sequence number.Device name already exists.Invalid class specification.No valid boot block found.Invalid boot block or tape volume label checksum.Dynamic memory request too large.Insufficient dynamic memory to fill request.Device class handler was not loaded at boot time.Cannot rename a directory file to itself.Invalid drive number.Drive has been previously initialized.Invalid edit mode.Ddata lost while reading from tape..CRC error detected in data portion of sector.Sector cannot be found on the track.Device is write protected.Invalid sector number, too large or negative.Unrecognized device command.General device check, cause unknown.Data port was not serviced before next data byte arrived.Block headers could not be found, assumed unformatted media.Device did not respond in the allotted time.Comparison error during read-after-write.Detected logical End-of-Tape.Detected physical End-of-Tape.No error message available.Control C termination code.Disk read sector header error.Seek or rewind took too long, device check.Seek was not possible, device check.Seek was not to proper cylinder.CRC error in sector header.Recalibrate not possible.Recalibrate timeout, device check.Device is off-line or not responding.Disk write fault.Write protected device, cannot format.Read fault or SYS$DISK/SYSLIB/PASERR.TXTSYS$DIKey value not found.lable.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIError detected on key compare during read.Error detected while deleting leaf key.Conflict in KSAM vs. Regular open.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.No error message available.Improperly aligned segment or key for word or longword key type.Invalid key or key segment length.Invalid key number.Key not defined for this I/O operation.Duplicate key is not allowed during a write or update operation.Internal KSAM error.Deadlock detected.Record locked to desired access.Current record is undefined.Referenced record is not in lock table.Error in KPFD linkage. Call WICAT!Error in Key-to-Data linkage. Call WICAT!KSAM internal process linkage error.r P)ascalDystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DI> OPTION :VERIFY > !========================================================================= > ! The command file SYSLIB/LOGIN.COM is executed each time any user > ! logs onto the system. The SYSTEM MANAGER can modify this file > ! with the VEW editor to setup commands, logical name assignments, > ! and messSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)Bisync--Invalid line state.Modem not ready.available.Bisync--Line bid received.Bisync--NAK received.able.Bisync--EOT received.able.Bisync--RVI received.able.Bisync--Disconnect received.Bisync--Polling list is empty.Bisync--Debug logging not enabled. or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DIBisync--Non-verified data was read.30.4030 DROUND SYS$DISK/MATH.LBisync--Conversational reply received.P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalSYS$DISK/SYSLIB/PASERR.TXTSYS$DINo error message available.S)ystem or P)ascalDetected Beginning-of-Tape.Read more bytes from tape than block size requested.ID burst missing. Tape not written in phase encoded format.Parity error while writing to tape.Parity error in tape controller.Parity error while reading from tape.Illegal command to tape controller.Illegal sequence of commands to tape controller. (Drive off-line?)ECC code error - Data field.Invalid IOPB (Cmd,Unit,Cyl,Trk,etc.).Bus timeout error.ailable.ECC code error - ID field.Unit not initialized.able.E mounted on device. DSTATNUMTORETRY: DS.W 1 ;Holds number of times to retry operation DSTATRESERVED: DS.B 36 ;Reserved field. DSTATRESERVEDSIZE: EQU 36 ;Reserved field size. DSTATNEXTTABLEPTR: DS.L 1 ;Holds address of next table in line DSTATTOPHALFSIZE: EQU * DISKSTATSIZE: EQU * ;Holds disk status block size * *------------------------------------------------------------------------------ * TTY status block definitions. *------------------------------------------------------------------------------ ORG.L DSTATTOPHALFSIZE TTYSTATMODEREG1: DS.B 1 ;Holds mode register 1 of UART. TTYSTATMODEREG2: DS.B 1 ;Holds mode register 2 of UART. TTYSTATCMDREG: DS.B 1 ;Holds command regiser of UART. TTYSTATTERMINALTYPE: DS.B 1 ;Holds terminal type definition. TTYSTATSTATREG: DS.B 1 ;Holds last read status register of UART. TTYSTATRESERVED1 DS.B 1 ;Zero this field TTYSTATFLAGS1: DS.W 1 ;Holds status flags (itstatus with 128 bytes. If the user uses the new setstatus trap then the entire 128 bytes are passed directly to the driver. The following is a description of the new device status format for tty class drivers: * ******************************************************************************* * Device Status block offset definitions. ******************************************************************************* ORG.L 0 DSTATCLASSID: DS.W 1 ;Holds class ID of device status. DSTATDRIVERID: DS.W 1 ;Holds device driver ID. DSTATBLOCKSIZE: DS.W 1 ;Holds Block size of the device. DSTATHARDERRORS: DS.W 1 ;Holds hard error count for device. DSTATSOFTERRORS: DS.W 1 ;Holds soft error count for device. DSTATNUMBREADOPER: DS.L 1 ;Holds number of Read operations. DSTATNUMBWRITEOPER: DS.L 1 ;Holds number of Write operations. DSTATMAXNUMDEV: DS.W 1 ;Holds maximum number of device this can handle DSTATCURNUMDEV: DS.W 1 ;Holds number of devices currently driver-class handler interface has changed in two ways. First of all the get/set status interface has been changed. Second, the number of parameters passed from the class handler to the device driver has been changed from 9 to 6 parameters. Each driver now builds a 128 byte status structure and passes it back to the class handler whenever a "get status" command is received. The class handler then passes the status back to the user in one of two ways. If the user used the old getstatus trap then the class handler extracts the 16 bytes (from this 128 byte table) which used to be returned to the user and returns them in the exact same format as they used to be returned. If the user uses the new getstatus trap then the entire 128 bytes will be returned to the user. For set status, there is also an old and a new setstatus trap. If the user uses the old setstatus trap then the class handler gets the new 128 byte status from the driver, puts the users 16 byte status in the appropriate fields, and then does a seages that must be common to all users of the system. > !========================================================================= > D*IR :== DIR > PR*INT :== PRINT > T*IME :== TIME > TY*PE :== TYPE > !========================================================================= > ! Each user may use the VEW editor to create a USERUP.COM file in > ! the user's default directory. This command file is executed > ! by the system each time a user logs on. This feature allows > ! each user to setup unique commands and logical name assignments > ! that are executed each time the user logs on to the system. > !========================================================================= > @USERUP WICAT SYSTEMS Software Release Notice Appendix MCS0400.APX =============================================================================== MULTI-USER CONTROL SYSTEM - Version 4.0 Appendix #1 -- TTY Class Handler changes ----------- ------------------------- The device E,-(SP) ; Push Number of records to xferr PEA RETNUMTRAN ; Return number transferred JSR 8(DRIVER) ; Call Device driver ; Stack comes back clean ; STATUS is returned in D7 PARAMETER DEFINITIONS: D7 - output only = return status COMMAND - This parameter is a longword of which the upper word (bits 16..31) contains the mode bits from the EDITMODE. The lower word (bits 0..15) contain a command number which specifies to the device driver what action is to be taken. The following are the commands: 0 = STARTUP 1 = SHUTDOWN 2 = READ 3 = WRITE 4 = SETCONTCPID 5 = GETSTATUS 6 = SETSTATUS 7 = DIAL 8 = HANGUP 9 = PURGE INPUT BUFFER 10 = RESET 11 = BISYNC BID 12 = BISYNC WAITBID 13 = BISYNC POLL 14 = BISYNC SELECT 15 = BISYNC WAITPOLLSEL 16 = BISYNC SYNCCNTRL 17 = BISYNC STARTLOG 18 = BISYNC STOPLOG 19 = BISYNC XFERLOG DRIVENUMBER - This longword ************************************************************ The drivers now only receive 6 parameters from the class handler. The parameters which were deleted are the 2nd, 5th and 9th parameters-- ie PROCESID,POSITION/STATUS1, and RETURNSTATUS. If a driver needs the process ID it can get it by loading "CURPROCESS" from the OS tables and (which points to the PCB) and extracting it from the PCB. Any information which used to be passed in the POSITION/STATUS1 parameter is now passed in a different slot. The return status parameter has been done away with and D7 is used for return status instead. Following is a complete list of the general parameters the CLASS HANDLER WILL USE TO CALL THE DEVICE DRIVER. The specific details of each parameter are defined later. GENERAL CALLING SEQUENCE: MOVE.L COMMAND,-(SP) ; Push desired Command MOVE.L DRIVENUMBER,-(SP) ; Push Driver number MOVE.L TIMEOUT,-(SP) ; Push Timeout value PEA BUFFERADDRESS ; Push Cache header address MOVE.L NUMTOTRANSFERt buffer size in bytes. TTYSTATRESERVED: DS.B 38 ;Reserved fields. TTYSTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS--will not ; be used by WICAT TTYSTATRESERVEDSIZE: EQU 46 ;Holds size of reserved block TTYSTATSIZE: EQU * ;Holds size of tty status block * * DSTATBUFFERSIZE: EQU * ;Size of entire status block. The above table is built by the device drivers. The fields which get mapped into the old 16 byte status (if the user uses the old get/setstatus traps) are: TTYSTATMODEREG1-TTYSTATTERMINALTYPE = first longword of 16 byte status TTYSTATFLAGS1 = high word of second longword TTYSTATINPUTCOUNT = low word of second longword TTYSTATOUTPUTCOUNT = high word of third longword TTYSTATINPUTBUFSIZE = low word of third longword DSTATHARDERRORS = high word of fourth longword TTYSTATCOLUMNPOS = low word of fourth longword If the above fields are filled in then any programs which use the old 16 byte get/set status interface will work exactly as before. **********e CONTROL C etc) TTYSTATCONTROLC: EQU 0 ;Control C enable (0=enabled). TTYSTATXONXOFF: EQU 1 ;Xon Xoff enable (0=enabled). TTYSTATCONTROLX: EQU 2 ;Control X enable (0=enabled). TTYSTATCONROLZ: EQU 3 ;Control Z enable (0=enabled). TTYSTATCONTROLO: EQU 4 ;Control O enable (0=enabled). TTYSTATTABMAP: EQU 5 ;Tab map enable (1=enabled). TTYSTATMASK8BIT: EQU 6 ;Mask 8th bit enable (0=enabled). TTYSTATCONTROLU: EQU 7 ;Control U enable (0=enabled). TTYSTATBROADCAST: EQU 8 ;Broadcast enable (0=enabled). TTYSTATHOSTSYNC: EQU 9 ;Hostsync enable (0=enabled). TTYSTATDUPLEX: EQU 10 ;Full/Half duplex (0=Full duplex). TTYSTATMODEMCONTROL: EQU 11 ;Modem/No modem control (0=No modem). TTYSTATINPUTCOUNT: DS.W 1 ;Holds how many chars in input interrupt buffer. TTYSTATOUTPUTCOUNT: DS.W 1 ;Holds how many chars in output interrupt buffer. TTYSTATCOLUMNPOS: DS.W 1 ;Holds current column position. TTYSTATINPUTBUFSIZE: DS.W 1 ;Holds input buffer size in bytes. TTYSTATOUTPUTBUFSIZE: DS.W 1 ;Holds outpuFtains the device number TIMEOUT - timeout value BUFFERADDRESS - will be address of number to dial NUMTOTRANSFER - length of number RETNUMTRAN - not used 9. HANGUP--NOT IMPLEMENTED YET PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 8 = HANGUP DEVICENUMBER - This longword contains the device number TIMEOUT - timeout value BUFFERADDRESS - not used NUMTOTRANSFER - not used RETNUMTRAN - not used 10. PURGE INPUT BUFFER--NOT IMPLEMENTED YET PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 9 = PURGE INPUT BUFFER DEVICENUMBER - This longword contains the device number TIMEOUT - not used BUFFERADDRESS - not used NUMTOTRANSFER - not used RETNUMTRAN - not used 11. RESET--NOT IMPLEMENTED YET PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 10 = RESET DEVICENUMBER - This longword contains the device number TIMEOUT - not used BUFFERADDRESS - not used NUMTOTRANSFER - not used RETNUMTRAN - not used 12-19 are used - High word = 0, Low word = 4 = SETCONTCPID DEVICENUMBER - This longword contains the device number TIMEOUT - not used BUFFERADDRESS - not used NUMTOTRANSFER - not used RETNUMTRAN - not used 6. GETSTATUS PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 5 = GETSTATUS DEVICENUMBER - This longword contains the device number TIMEOUT - not used BUFFERADDRESS - The address of the 128 byte user buffer which is to receive the device status. NUMTOTRANSFER - not used RETNUMTRAN - not used 7. SETSTATUS PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 6 = SETSTATUS DEVICENUMBER - This longword contains the device number TIMEOUT - not used BUFFERADDRESS - The address of the 128 byte user buffer which contains the new device status. NUMTOTRANSFER - not used RETNUMTRAN - not used 8. DIAL---NOT IMPLEMENTED YET PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 7 = DIAL DEVICENUMBER - This longword conUT - The amount of time to wait for this operation BUFFERADDRESS - Ignored NUMTOTRANSFER - Ignored RETNUMTRAN - Ignored 3. READ PARAMETER DEFINITIONS: COMMAND - High word = Editmode bits 15..31, Low word = 2 = READ DEVICENUMBER - This longword contains the device number TIMEOUT - The amount of time to wait BUFFERADDRESS - The address of the user buffer NUMTOTRANSFER - The maximum number of bytes to transfer to the user buffer. RETNUMTRAN - The number of bytes transferred into the user buffer. 4. WRITE PARAMETER DEFINITIONS: COMMAND - High word = Editmode bits 15..31, Low word = 3 = WRITE DEVICENUMBER - This longword contains the device number TIMEOUT - The amount of time to wait for a the write to complete before giving up. BUFFERADDRESS - The address of the user buffer NUMTOTRANSFER - The number of bytes to write RETNUMTRAN - The number of bytes actually written 5. SETCONTCPID PARAMETER DEFINITIONS: COMMANDcontains the device number in the following format: High byte (bits 24..31) = Board ID Next byte (bits 16..23) = Type Low word (bits 0..15) = Drive number TIMEOUT - The amount of time to wait for the operation to complete before returning with a timeout error. Each increment represents 1/100 of a second. BUFFERADDRESS - This input parameter contains a pointer to the data to be transferred. NUMTOTRANSFER - The number of records to transfer RETNUMTRAN - Return number transferred 1. STARTUP PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 0 = STARTUP DEVICENUMBER - This longword contains the device number TIMEOUT - The amount of time to wait for this operation BUFFERADDRESS - Device table address passed in here NUMTOTRANSFER - Ignored RETNUMTRAN - Ignored 2. SHUTDOWN PARAMETER DEFINITIONS: COMMAND - High word = 0, Low word = 1 = SHUTDOWN DEVICENUMBER - This longword contains the device number TIMEOF;Holds hard error count for device. DSTATSOFTERRORS: DS.W 1 ;Holds soft error count for device. DSTATNUMBREADOPER: DS.L 1 ;Holds number of Read operations. DSTATNUMBWRITEOPER: DS.L 1 ;Holds number of Write operations. DSTATMAXNUMDEV: DS.W 1 ;Holds maximum number of device this can handle DSTATCURNUMDEV: DS.W 1 ;Holds number of devices currently mounted on device. DSTATNUMTORETRY: DS.W 1 ;Holds number of times to retry operation DSTATRESERVED: DS.B 36 ;Reserved field. DSTATRESERVEDSIZE: EQU 36 ;Reserved field size. DSTATNEXTTABLEPTR: DS.L 1 ;Holds address of next table in line DSTATTOPHALFSIZE: EQU * * *------------------------------------------------------------------------------ * Disk status block definitions. *------------------------------------------------------------------------------ ORG.L DSTATTOPHALFSIZE DISKSTATINTERFAC: DS.W 1 ;Holds interleave factor. DISKSTATIOPBCNT: DS.W 1 s the new getstatus trap then the entire 128 bytes will be returned to the user. For set status, there is also an old and a new setstatus trap. If the user uses the old setstatus trap then the class handler gets the new 128 byte status from the driver, puts the users 16 byte status in the appropriate fields, and then does a setstatus with 128 bytes. If the user uses the new setstatus trap then the entire 128 bytes are passed directly to the driver. The following is a description of the new device status format for DISK class drivers (these equates are in /sysincl.sys/dstatdisp.asm): * * ******************************************************************************* * Device Status block offset definitions. ******************************************************************************* ORG.L 0 DSTATCLASSID: DS.W 1 ;Holds class ID of device status. DSTATDRIVERID: DS.W 1 ;Holds device driver ID. DSTATBLOCKSIZE: DS.W 1 ;Holds Block size of the device. DSTATHARDERRORS: DS.W 1 rt of the editmodes on READ and WRITE. Appendix #2 -- Disk Class Handler changes ----------- -------------------------- DISK DEVICE DRIVER INTERFACE The device driver-class handler interface has been enhanced to allow asyncronous communication between the two. To facilitate this the interface to the driver has been drastically changed. Instead of passing what sector to access, how many to access and where to put it, the class handler now passes what is known as a cache header. This is a data block that will be described later. Each driver now builds a 128 byte status structure and passes it back to the class handler whenever a "get status" command is received. The class handler then passes the status back to the user in one of two ways. If the user used the old getstatus trap then the class handler extracts the 16 bytes (from this 128 byte table) which used to be returned to the user and returns them in the exact same format as they used to be returned. If the user use by the new BISYNC DEVICE DRIVER--Yet to be released. ************************************************************************** SUMARY OF CHANGES NEEDED 1. Modify the get and set status procedures to build/accept the new 128 byte status blocks--with the address being passed in the buffer address position. 2. Delete the 2nd, 5th and 9th parameters from your equates defining the stack and make sure they are not used anywhere in the driver. If PRCSID was used--get it from CURPROCESS. 3. Change the stack cleanup code to only clean up 6 parameters. 4. Change driver so it does NOT save and restore D7--D7 is now used to return status to the class handler. 5. Add a "TST.L D7" instruction just before the driver returns to the class handler. 6. Use the new "TTYMAXCOMMAND" etc from the equate file "CONTCMD.ASM" instead of the old "CNTMAXCOMMAND". 7. When checking the command number coming in--make sure that you only use the low word--because the high word now contains paGits 0..15) contain a command number which specifies to the device driver what action is to be taken. The following are the commands: 0 = STARTUP 1 = SHUTDOWN 2 = READ 3 = WRITE 4 = FORMAT 5 = GETSTATUS 6 = SETSTATUS 7 = FORMAT TRACK PRIORITY - This contains what priority the operation is to take place at. There are three priorities that will be sent in. The values are: 0 = Priority 0 (highest priority) 4 = Priority 1 8 = Priority 2 (lowest priority) DRIVENUMBER - This longword contains the device number in the following format: High byte (bits 24..31) = Board ID Next byte (bits 16..23) = Type Low word (bits 0..15) = Drive number CACHEHEADER - This conatins the address of the CACHE header for this operation. This is only for the read and write command. Following is a description of a cache header (these equates are in /SYSINCL.SYS/CACHEDISP.ASM): *********** will work exactly as before. Following is a definition of the driver interface: A) GENERAL CALLING SEQUENCE: MOVE.L COMMAND,-(SP) ;Push desired Command. MOVE.L PRIORITY,-(SP) ;Push priority of command. MOVE.L DRIVENUMBER,-(SP) ;Push Driver number. MOVE.L CACHEHEADER,-(SP) ;Push cache header address. JSR 8(DRIVER) ; Call Device driver ; Stack comes back clean ; STATUS is returned in D7 B) PARAMETER DEFINITIONS: D7 - This parameter will be <= 0 when the driver is called. (A negative number is a warning.) The driver will return the status of the command in D7 for all command except READ and WRITE. FOR THE READ AND WRITE COMMAN D7 IS NOT TO BE MODIFIED. The driver must perform a 'TST.L D7' just before it returns to the class handler to set the condition code bits. COMMANDS - This parameter is a longword of which the upper word (bits 16..31) contains the mode bits from the EDITMODE. The lower word (bcreasing cylinder numbers. DISKSTATCURCYLINDER: DS.W 1 ;Holds current cylinder position. DISKSTATRESERVED: DS.B 38 ;Reserved field DISKSTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS DISKSTATRESERVEDSIZE: EQU 46 ;Reserved buffer size DISKSTATSIZE: EQU * ;Holds disk status block size * * DSTATBUFFERSIZE: EQU * ;Size of entire status block. The above table is built by the device drivers. The fields which get mapped into the old 16 byte status (if the user uses the old get/setstatus traps) are: DSTATNUMBREADOPER+DSTATNUMBWRITEOPER= first longword of 16 byte status DISKSTATINTERFAC = high word of second longword. DISKSTATFLAGS1 = low word of second longword DISKSTATCURCYLINDER = high word of third longword DSTATBLOCKSIZE = low word of third longword DSTATSOFTERRORS = high word of fourth longword DSTATHARDERRORS = low word of fourth longword If the above fields are filled in then any programs which use the old 16 byte get/set status interface ;Holds number of IOPB's allocated to drive. DISKSTATNUMBSECTORS: DS.L 1 ;Holds number of sectors on volume. DISKSTATSECPERTRACK: DS.W 1 ;Holds number of sectors/track. DISKSTATHEADS: DS.W 1 ;Holds number of heads on device. DISKSTATCYLINDERS: DS.W 1 ;Holds number of cylinders on volume. DISKSTATFLAGS1: DS.W 1 ;Holds flag definitions. DISKSTATDENSITY1: EQU 0 ;These two bits define the density being DISKSTATDENSITY2: EQU 1 ;used on device. The binary definitions are: ; 0 = Single density. ; 1 = Double density. ; 2 = Quad density. ; 3 = Reserved. DISKSTATRAW: EQU 3 ;When set device does Read after Write verifyes. DISKSTATWRITEPROT: EQU 4 ;When set device is write-protected. DISKSTATSEEKDIRECTION: EQU 15 ;Gives current direction of seeks: ; 0 = Increasing cylinder numbers. ; 1 = DeGCACHESECTORCOUNT. (If there were no errors this will not change from what was passed in) 6) Always call NEXITQUE with the quehead being CACHELOADEDQH. D7 - Is returned unmodified. 4. WRITE COMMAND - High word = 0, Low word = 3 = READ PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - Contains the cache header address for which sector to write. It performs the following operations on the cacheheader: 1) The driver starts writing at the sector specified in CACHESECTORNUMBER. 2) The driver writes as many consecutive sectors as specified by CACHESECTORCOUNT. 3) The driver writes the data starting at the address given in CACHEBUFPTR. This address is always a physical address. 4) It returns the low word of any errors in CACHEERRORNUMBER. This location will be zero when the driver is called. 5) Set the count of hoontains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - Ignored. D7 - Returns status of operation. 3. READ COMMAND - High word = 0, Low word = 2 = READ PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - Contains the cache header address for which sector to read. It performs the following operations on the cacheheader: 1) The driver starts reading at the sector specified in CACHESECTORNUMBER. 2) The driver reads as many consecutive sectors as specified by CACHESECTORCOUNT. 3) The driver read the data starting at the address given in CACHEBUFPTR. This address is always a physical address. 4) It returns the low word of any errors in CACHEERRORNUMBER. This location will be zero when the driver is called. 5) Set the count of how many sectors were sucessfully transfered in X: EQU 32 ;How many write retries before removing node. CACHEFLAGS: DS.W 1 ;Holds flags. CACHEFLAGMODIFIED: EQU 0 ;Set when buffer has been modified. CACHEFLAGWRITING: EQU 1 ;Set if a write request is pending. CACHEFLAGERRLOGGED: EQU 2 ;Set if error on sector has been logged. CACHEFLAGREADAHEAD: EQU 3 ;Set if is doing a readahead request. CACHEFLAGFLUSHMODE: EQU 4 ;Contain if been flushed this time or not. CACHEFLAGPAGEHEAD: EQU 5 ;Set if this element points to front of page. CACHEIDFIELD: DS.W 1 ;Holds buffer ID TAG. CACHEIDTAG: EQU $9999 CACHEBUFSIZE: EQU * ;Holds cache size. Following is a definition of each command and how the parameters are used for that command. 1. STARTUP COMMAND - High word = 0, Low word = 0 = STARTUP. PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number. CACHEHEADER - Ignored. D7 - Returns status of operation. 2. SHUTDOWN COMMAND - High word = 0, Low word = 1 = SHUTDOWN PRIORITY - C******************************************************************** * Cache Header Table Definitions ******************************************************************************* CACHENEXTLINK: DS.L 1 ;Holds pointer to next cache element. CACHEBACKLINK: DS.L 1 ;Holds pointer to previous cache element. CACHESECTORNUMBER: DS.L 1 ;Holds sector this cache holds. CACHEPFDID: DS.L 1 ;Holds PFD address which is used in close flush. CACHEBUFPTR: DS.L 1 ;Holds buffer address of where to transfer to. CACHEPRCSQH: DS.L 1 ;Holds process locking que head. CACHELOADEDQH: DS.L 1 ;Holds DSR locking que head. CACHEMODIFYQH: DS.L 1 ;Holds PCB address of waiting writer. CACHEHEADERINDEX: DS.W 1 ;Holds column index for this que element. CACHEERRORNUMBER: DS.W 1 ;Holds requests error number. CACHEREFCOUNT: DS.W 1 ;Holds reader access count. CACHESECTORCOUNT: DS.W 1 ;Holds number of sectors to transfer, ;returns back sector index. CACHEMODERRCNT: DS.W 1 ;Holds modify error count. CACHEMODERRMAH 128 byte status structure and passes it back to the class handler whenever a "get status" command is received. The class handler then passes the status back to the user in one of two ways. If the user used the old getstatus trap then the class handler extracts the 16 bytes (from this 128 byte table) which used to be returned to the user and returns them in the exact same format as they used to be returned. If the user uses the new getstatus trap then the entire 128 bytes will be returned to the user. For set status, there is also an old and a new setstatus trap. If the user uses the old setstatus trap then the class handler builds a new 128 byte status block and puts the users 16 byte status in the appropriate fields, and then does a setstatus with 128 bytes. If the user uses the new setstatus trap then the entire 128 bytes are passed directly to the driver. The following is a description of the new device status format for TAPE class drivers (these equates are in /sysincl.sys/dstatdisp.asm): * * ******e buffer address position. 2. Change the stack cleanup code to only clean up 4 parameters. 3. Change driver so it does NOT save and restore D7--D7 is now used to return status to the class handler. 4. Add a "TST.L D7" instruction just before the driver returns to the class handler. 5. Use the new "DISKCNTMAXCOMMAND" etc from the equate file "/SYSINCL.SYS/CONTCMD.ASM" instead of the old "CNTMAXCOMMAND". 6. When checking the command number coming in--make sure that you only use the low word--because the high word now contains part of the editmodes on READ and WRITE. Appendix #3 -- Tape Class Handler changes ----------- -------------------------- TAPE DEVICE DRIVER INTERFACE The device driver-class handler interface has been changed in two ways. First of all the get/set status interface has been changed. Second, the number of parameters passed form the class handler to the device driveer has been changed from 9 to 6 parameters. Each driver now builds aGETSTATUS PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - The address of the 128 byte user buffer which is to receive the device status. D7 - Returns status of operation. 7. SETSTATUS COMMAND - High word = 0, Low word = 6 = SETSTATUS PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - The address of the 128 byte user buffer which contains the new device status. D7 - Returns status of operation. 8. FORMAT TRACK---NOT IMPLEMENTED YET COMMAND - High word = 0, Low word = 7 = FORMAT TRACK PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - Number of track to be formated. D7 - Returns status of operation. SUMARY OF CHANGES NEEDED 1. Modify the get and set status procedures to build/accept the new 128 byte status blocks--with the address being passed in thw many sectors were sucessfully transfered in CACHESECTORCOUNT. (If there were no errors this will not change from what was passed in) 6) Always call NEXITQUE with the quehead being CACHELOADEDQH. 7) Always clear the CACHEFLAGWRITING bit in CACHEFLAGS after the write is completed. 8) ONLY IF NO error occurred on any of the sectors, clear the CACHEFLAGMODIFIED bit in CACHEFLAGS. 9) Always decrement CACHEREFCOUNT by 1 after the write is completed. 10) If when CACHEREFCOUNT is decremented and it goes to zero, then call NEXITQUE with CACHEMODIFYQH as the quehead. D7 - Is returned unmodified. 5. FORMAT COMMAND - High word = 0, Low word = 4 = FORMAT PRIORITY - Contains priority of this command. DEVICENUMBER - This longword contains the device number CACHEHEADER - Ignored. D7 - Returns status of operation. 6. GETSTATUS COMMAND - High word = 0, Low word = 5 = H 5-7 = Reserved. TAPESTATFLAGS2: DS.W 1 TAPESTATERRINTENABLE: EQU 0 ;When set Error interrupt are enabled. TAPESTATRESERVED: DS.B 50 ;Reserved for future use. TAPESTATUSERRESERVED: DS.B 8 ;Reserved for WICAT USERS TAPESTATRESERVEDSIZE: EQU 58 ;Reserved size. TAPESTATSIZE: EQU * ;Tape status block size. * The above table is built by the device drivers. The fields which get mapped into the old 16 byte status (if the user uses the old get/setstatus traps) are: 0 = high word of first longword tapestatdevstatus = low word of first longword tapestatflags1 = high word of second longword tapestatflags2 = low word of second longword 0 = high word of third longword dstatblocksize = low word of third longword 0 = high word of fourth longword dstatharderrors = low word of fourth longword If the above fields are filled in then any programs which use the old 16 byte get/set status interface will work exactly as before. ******************EQU 3 ;speeds in inches/second. The binary TAPESTATSPEED3: EQU 4 ;definitions are: * 0 = 12 IPS. * 1 = 25 IPS. * 2 = 30 IPS. * 3 = 50 IPS. * 4 = 100 IPS. * 5-7 = Reserved. TAPESTATBPI1: EQU 8 ;These three bits define the density of TAPESTATBPI2: EQU 9 ;the tape Bits Per Inch. The binary TAPESTATBPI3: EQU 10 ;definitions are: * 0 = 800 BPI. * 1 = 1600 BPI. * 2 = 3200 BPI. * 3 = 6250 BPI. * 4 = 6400 BPI. * ddress of next table in line DSTATTOPHALFSIZE: EQU * * *------------------------------------------------------------------------------ * Tape status block definitions. *------------------------------------------------------------------------------ ORG.L DSTATTOPHALFSIZE TAPESTATDEVSTATUS: DS.W 1 ;Holds device status for tape. TAPESTATREADY: EQU 0 ;Ready bit. TAPESTATINTPEND: EQU 1 ;Interrupt pending bit. TAPESTATREWINDING: EQU 2 ;Tape rewinding bit. TAPESTATBOTDETECT: EQU 3 ;BOT detect. TAPESTATEOTDETECT: EQU 4 ;EOT detect. TAPESTATWRITEPROT: EQU 5 ;Tape write protected. TAPESTATFLAGS1: DS.W 1 ;Holds status information. TAPESTATRAW: EQU 0 ;When set do Read after Writes. TAPESTATREADAHEAD: EQU 1 ;When set do Read ahead. TAPESTATSPEED1: EQU 2 ;These three bits define different drive TAPESTATSPEED2: ************************************************************************* * Device Status block offset definitions. ******************************************************************************* ORG.L 0 DSTATCLASSID: DS.W 1 ;Holds class ID of device status. DSTATDRIVERID: DS.W 1 ;Holds device driver ID. DSTATBLOCKSIZE: DS.W 1 ;Holds Block size of the device. DSTATHARDERRORS: DS.W 1 ;Holds hard error count for device. DSTATSOFTERRORS: DS.W 1 ;Holds soft error count for device. DSTATNUMBREADOPER: DS.L 1 ;Holds number of Read operations. DSTATNUMBWRITEOPER: DS.L 1 ;Holds number of Write operations. DSTATMAXNUMDEV: DS.W 1 ;Holds maximum number of device this can handle DSTATCURNUMDEV: DS.W 1 ;Holds number of devices currently mounted on device. DSTATNUMTORETRY: DS.W 1 ;Holds number of times to retry operation DSTATRESERVED: DS.B 36 ;Reserved field. DSTATRESERVEDSIZE: EQU 36 ;Reserved field size. DSTATNEXTTABLEPTR: DS.L 1 ;Holds aI- The number of bytes transferred into the user buffer. D7 - Returns status of operation. 4. WRITE COMMAND - High word = 0, Low word = 3 = READ DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - The address of the user buffer NUMTOTRANSFER - The number of bytes to write. RETNUMTRAN - The number of bytes actuall written. D7 - Returns status of operation. 5. ERASE/FORMAT Some drivers use this command to implement an ERASE function. Others use it to implement a FORMAT function, which logically makes the driver think nothing is on the tape. COMMAND - High word = 0, Low word = 4 = FORMAT DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - Erase type. (Ignored by Drivers doing FORMAT) The valid types are: 0 = Start variable length erase. 1 = Stop variable length erase. 2 = Fixed erase. (Erases 4" of tape.) 3 = Security erase. (Erases to EOT + 5'.) NUMTOTRANSFER - Ignored. RETNUMTRAN - Ignorentains a type code for Skips. NUMTOTRANSFER - The number of bytes to transfer or the number of units to skip. RETNUMTRAN - Returns the number transferred/skipped. Following is a definition of each command and how the parameters are used for that command. 1. STARTUP COMMAND - High word = 0, Low word = 0 = STARTUP. DRIVENUMBER - This longword contains the drive number. BUFFERADDRESS - Default buffersize of tape. NUMTOTRANSFER - Ignored. RETNUMTRAN - Ignored. D7 - Returns status of operation. 2. SHUTDOWN COMMAND - High word = 0, Low word = 1 = SHUTDOWN DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - Ignored. NUMTOTRANSFER - Ignored. RETNUMTRAN - Ignored. D7 - Returns status of operation. 3. READ COMMAND - High word = 0, Low word = 2 = READ DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - The address of the user buffer NUMTOTRANSFER - The maximum number of bytes to transfer to the user buffer. RETNUMTRAN rred JSR 8(DRIVER) ; Call Device driver ; Stack comes back clean ; STATUS is returned in D7 B) PARAMETER DEFINITIONS: D7 - Output only = return status COMMANDS - This parameter is a longword of which the upper word (bits 16..31) contains the mode bits from the EDITMODE. The lower word (bits 0..15) contain a command number which specifies to the device driver what action is to be taken. The following are the commands: 0 = STARTUP 1 = SHUTDOWN 2 = READ 3 = WRITE 4 = ERASE/FORMAT 5 = GETSTATUS 6 = SETSTATUS 7 = SKIP 8 = WRITETAPEMARK DRIVENUMBER - This longword contains the device number in the following format: High byte (bits 24..31) = Board ID Next byte (bits 16..23) = Type Low word (bits 0..15) = Drive number BUFFERADDRRESS - This input parameter contains a pointer to the data to be transferred for data operations (Read, Write, Status). It co*********************************************************** The drivers now only receive 5 parameters for the class handler. The parameters which were deleted are the 2nd, 4th, 5th, and 9th parameters-- ie PROCESSID, TIMEOUT, POSITION/STATUS1, and RETURNSTATUS. If a driver needs the process iD it can get it by loading "CURPROCESS" (which points to the PCB) from the OS tables and extacting it from the PCB. Any information which used to be passed in the POSITION/STATUS1 parameter is now passed in a different slot. The TIMEOUT parameter was ignored by all drivers and therefore was done away with. The return status parameter has been done away with and D7 is used for the return status instead. Following is a definition of the driver interface: A) GENERAL CALLING SEQUENCE: MOVE.L COMMAND,-(SP) ;Push desired Command. MOVE.L DRIVENUMBER,-(SP) ;Push Driver number. MOVE.L BUFFERADDRESS,-(SP) ;Push buffer address MOVE.L NUMTOTRANSFER,-(SP) ;Push number to do PEA RETNUMTRAN ;Return number transfeI*************************************************************** LABLEN: EQU 16 ;length of labels DEVLEN: EQU 8 ;length of device names CREATLEN: EQU 8 ;len of creation date DISK1: EQU 6 ;def. allocation, sec. alloc., and flush flag DISK2: EQU 10 ;shift count(2), cache size(2), * ;max cache alloc(2), # sectors on disk(4) DISK3: EQU 8 ;FCB start sector, dismount and readahead flags MRESERVED: EQU 128-(LABLEN+DEVLEN+CREATLEN+DISK1+DISK2+DISK3+14) *------------------------------------------------------------------------------ * Tape boot block. *------------------------------------------------------------------------------ ORG.L 0 TLBVOLLABEL: DS.B LABLEN ;Holds the volume label TLBVOLCREATE: DS.B CREATLEN ;Holds creation date of volume TLBVOLID: DS.W 1 ;Holds volume id TLBOWNERID: DS.W 1 ;Holds volume owner id TLBGROUPID: DS.W 1 ;Holds volumeparameters. 3. Change driver so it does NOT save and restore D7--D7 is now used to return status to the class handler. 4. Add a "TST.L D7" instruction just before the driver returns to the class handler. 5. Use the new "TAPECNTMAXCOMMAND" etc from the equate file "/SYSINCL.SYS/CONTCMD.ASM" instead of the old "CNTMAXCOMMAND". 6. When checking the command number coming in--make sure that you only use the low word--because the high word now contains part of the editmodes on READ and WRITE. OTHER CHANGES TO THE TAPE CLASS HANDLER The format of the tape volume header (written by TINIT) has been changed to more closely follow the format of a boot block on a disk. The size changed from 160 bytes long to 128 bytes long. The actual format of the header is as follows: (this information is in /SYSINCL.SYS/TBOOTDISP.ASM) ****************************************************************************** * Tape Volume label definition -- Corresponds to boot block for disk. ***************skip types 0 or 1, this can be positive or negative. For Skip type 2 (Skip BOT), if this is 0 then leave the tape at physical BOT, otherwise skip 1 file mark forward after rewinding (skips the volume header). RETNUMTRAN - The actual number skipped. NOTE - skip type 3 must return the number of files skipped before logical EOT was encountered. D7 - Returns status of operation. 9. WRITETAPEMARK This command to the driver causes two file marks to be written and the tape positioned between them. COMMAND - High word = 0, Low word = 8 = WRITETAPEMARK DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - Ignored. NUMTOTRANSFER - Ignored. RETNUMTRAN - Ignored. D7 - Returns status of operation. SUMARY OF CHANGES NEEDED 1. Modify the get and set status procedures to build/accept the new 128 byte status blocks--with the address being passed in the buffer address position. 2. Change the stack cleanup code to only clean up 5 d. D7 - Returns status of operation. 6. GETSTATUS COMMAND - High word = 0, Low word = 5 = GETSTATUS DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - The address of the 128 byte user buffer which is to receive the device status NUMTOTRANSFER - Ignored. RETNUMTRAN - Ignored. D7 - Returns status of operation. 7. SETSTATUS COMMAND - High word = 0, Low word = 6 = SETSTATUS DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - The address of the 128 byte user buffer which contains the new device status. NUMTOTRANSFER - Ignored. RETNUMTRAN - Ignored. D7 - Returns status of operation. 8. SKIP COMMAND - High word = 0, Low word = 7 = SKIP DRIVENUMBER - This longword contains the drive number BUFFERADDRESS - The skip type. The valid types are: 0 = Skip blocks. 1 = Skip file marks. 2 = Skip to Beginning Of Tape (REWIND). 3 = Skip to End Of Tape. NUMTOTRANSFER - The number to skip. For J the checksum TLBFILELABELSIZE: EQU * ;Size of the file label A bug was fixed in the MOUNT routine in the tape class handler that used to attempt to deallocate un-allocated memory (memory allocated by some other process) if an error was returned by the driver from the STARTUP call. The class handler was also modified to be much more efficient overall. These changes included no longer doing checksum calculation on the block of data to be written (previously done in cooperation between the driver and class handler, now done entirely--if at all--by the driver), making all calls to the driver through one subroutine, and use of more optimal instructions whereever possible. Appendix #4 -- SORT Utility ----------- ------------ The following document describes a SORT program written to run under MCS on WICAT systems . It is an extremely versatile sorting program, using Waterloo's standard command syntax. This syntax is designed to be bothe file sequence number TLBFILERECLEN: DS.W 1 ;Holds the file record length TLBFILEOWNER: DS.W 1 ;Holds the file owner TLBFILEGROUP: DS.W 1 ;Holds the file group TLBFILEPROT: DS.W 1 ;Holds the file protection TLBEXECUTEPROT: EQU 0 TLBREADPROT: EQU 1 TLBWRITEPROT: EQU 2 TLBFILECREAT: DS.L 2 ;Holds the file creation date TLBFILEMOD: DS.L 2 ;Holds the file modification date TLBMAXSIZE: DS.L 1 ;Holds the max size of the file TLBPHYSSIZE: DS.L 1 ;Holds the physical size of the file TLBLOGSIZE: DS.L 1 ;Holds the logical size of the file TLBPRCSPRIV: DS.W 1 ;Holds process priv. if this is image TLBDIRLEN: DS.W 1 ;Holds the directory string length TLBDIRNAME: DS.B MDIRSIZE ;Holds the directory name TLBFILECHKSUM: DS.W 1 ;Holds******************************************************* * Tape file label definition -- Corresponds to FCB for a disk file. ****************************************************************************** MDIRSIZE: EQU 62 FILENAMESIZE: SET 14 FILENAMEF1SIZE: SET 9 FILENAMEF2SIZE: SET 3 *------------------------------------------------------------------------------ * Tape file label block. *------------------------------------------------------------------------------ ORG.L 0 TLBUSAGE: DS.W 1 ;Holds the usage field of the label TLBHEADER: EQU 0 ;the label is a header TLBTRAILER: EQU 1 ;the label is a trailer TLBFILETYPE: DS.W 1 ;Holds the file type TLBFILENAME: DS.B FILENAMESIZE ;Holds the file name DS.W 2 ;reserved space (parent fcb #) TLBFILESEQUENCE: DS.W 1 ;Holds t group id TLBVOLPROT: DS.W 1 ;Holds volume protection DS.B DISK1 ;reserved space TLBVOLBLOCKSIZE: DS.W 1 ;Holds volume block size DS.B DISK2 ;reserved space TLBBOOTDEVNAME: DS.B DEVLEN ;Holds boot device name DS.B DISK3 ;reserved space TLBRESERVED: DS.B MRESERVED ;not used TLBNOTCHECKSUM: DS.W 1 ;Holds notted checksum TLBROTCHECKSUM: DS.W 1 ;Holds rotated checksum TLBVOLLABELSIZE: EQU * ;Size of tape label block The format of the tape file header (written by a call to _CREATE) was changed to more closely follow the format of a FCB for a disk file. The size changed from 160 bytes long to 128 bytes long. The actual format of the file header is as follows: (this information is in /SYSINCL.SYS/TFILEDISP.ASM) ***********************Jf the Software Development Group, University of Waterloo, Waterloo, Ontario, Canada N2L 3G1. ******************************************************************************* Syntax: sort file [file]* [>outfile] [option]* (+|-)ASCending (+) (+|-)DEScending (-) (+|-)Duplicate (+) (+|-)Unixfile (+) (+|-)Verbose (-) Error=code Ignoreleading=string Key=key-string KeyFile=file MemorySize=number Raw=length RecordSize=number RejectFile=file SKip=string STop=string Key Options: (+|-)ASCending (+) (+|-)DEScending (-) (+|-)Error (+) (+|-)Ignoreleading FRom=position Before=position Field=number Ignoreleading=string Length=length Offset=position SKip=string STop=string Collating Orders: +AscII +BINary of a keyword contains all the letters shown in upper case; lower case letters may be omitted. Thus, all of the following are valid abbreviations of the option "+Verbose". +verbose +verb +vb +v +vbse (4) Following the list of options at the top of the explanation is a fuller explanation of each option. Explanations of (+|-) options generally only describe one of the alternatives, since the opposite setting is usually self-explanatory. (5) Items on the command line may appear in any order, except for the word "sort" at the very beginning. Thus the options may precede the input file(s) if desired, or may be interspersed with the input file names. Command line options may be separated by any number of blanks or tabs. ******************************************************************************* This version of SORT was written by P.J.Fraser oquently given in parentheses following the op- tion. For example, (+|-)Verbose (-) indicates that the default is -Verbose, implying terse output. It is not an error to specify the default option explicitly, but it is not necessary. Some options cannot have both an on and an off setting; in this case, the option takes the form +Option The other form that options can take is Option=argument For example, the option for specifying a memory size is written as MemorySize=number In general, the argument after the "=" may be a number, a string (enclosed in single or double quotes), or some other type of argument. The argu- ment may not contain blank or tab characters unless it is enclosed in single or double quotes. (3) All option keywords may be abbreviated. A valid abbreviation h comprehensible and convenient for humans to use. The description below makes use of several conventions that may need explaining. (1) The syntax of a typical command line is given after the heading "Syntax:". Items in square brackets on this command line (e.g. [>outfile]) are optional and may be omitted. If the square brackets are followed by a "*", the user may specify zero or more of such items. For example, sort file [file]* implies sort file file file file ... if desired. (2) A list of options follows the sample command line. Options denoted by (+|-)Option may be specified as either "+Option" or "-Option". Generally speaking, "+" turns something on and "-" turns something off. For example, +Verbose tells SORT to produce verbose output and -Verbose tells SORT to produce terse output. The default is freK the beginning of the output. Last - cause all records with erroneous keys to appear after everything else in the sorted output. Thus the erroneous records will be sorted as well as possible amongst themselves, then placed at the end of the output. Ignoreleading=string specifies a default set of characters to be ignored when parsing records to find key-fields. By default, "string" is " \t\n" so that leading blanks, tabs, and new-lines are ignored. For further information, see the description of key-fields below. Key=key-string specifies a key-string which describes a key to be used in the sorting. Possible formats for key- strings are described below. If there is no "Key=" specified for a sort, the entire record will be used as a key; otherwise, there should be one "Key=" specification for every key used in the sortroneous (e.g. the record was supposed to have a key beginning at character 20, but the record is only 10 characters long). The following codes are recognized. Stop - stop processing if an erroneous record is found. Report - print a message on the terminal whenever an erroneous record is found. This message notes the source of the record if there is more than one input file. Ignore - ignore the fact that the record is erroneous. This is the default. The record will be included in the sorting process as if it was not in error -- for more details about this, see the section below on "Error Handling". First - cause all records with erroneous keys to appear before anything else in the sorted output. Thus the erroneous records will be sorted as well as possible amongst themselves, then placed at e output will only contain one record with a given name and number; records which have the same name and number as a previous record will be deleted from the output. The default is +Duplicate, which leaves duplicate records intact. +Unixfile indicates that the output file should be in UNIX format (i.e. lines of text are separated by line-feed characters instead of ASCII nulls). -Unixfile indicates that the output file should have text lines separated by ASCII nulls. Input text lines may be separated by either ASCII nulls or line-feeds, regardless of whether +Unixfile or -Unixfile is in effect; SORT regards both line-feeds and nulls as line terminators in an input file. +Verbose prints statistics about the sort process after it is finished. The default is -Verbose. Error=code indicates the action that should be taken for records found to be er +BinaryFloating +BinarySigned +Caseless +DECimal +DICtionary +FloatingPoint +HEXadecimal +Location +Numeric +OCTal +Width Options: file is a file containing data to be sorted. If several such input files are specified, the contents of all the files are included in the sort. >outfile directs the sorted output into the given file. If no "outfile" is specified, output is sent to the terminal. +ASCending indicates that the sorted output should be in ascending order. This is the default. +DEScending indicates that the sorted output should be in descending order. -Duplicate indicates that records with duplicate key fields should be discarded from the output. For example, if a file of students is being sorted by name and stu- dent number, thKkey- string also contains blanks, the string must be enclosed in single or double quotes, whichever is NOT being used to enclose the entire key-string. (You may also double the quote character, e.g. key="+des,skip="":"",+octal" to obtain quotes inside quotes.) Key-strings are made up of a number of items describing a single sorting key. These items may be separated by commas or blanks. The following key-options may appear as items in a key- string. The "+" character that precedes some options may be omitted if desired. Order Options: +ASCending indicates that the particular key should be sorted in ascending order. This is the default. Specifying this for a single key overrides +ASCending or +DEScending on the command line. +DEScending indicates that the particular key should be sorted in descending order. Specifying this for a single key overrides +ASCending or +DEScending on the command cters to be skipped when beginning to parse records to find key-fields. By default, "string" is " \t\n" (a blank, a tab, and a new-line). For further information, see the description of key-fields below. STop=string specifies a default set of characters that mark the end of a key-field when parsing records to find key- fields. By default, "string" is " \t\n" (a blank, a tab, and a new-line). For further information, see the description of key-fields below. Description: SORT sorts the contents of one or more files according to one or more keys. There are many ways of specifying where these keys are located in the records being sorted. These are described in the next section. Key-strings may be given on the command line following the "Key=" option or in a keyfile named with the "KeyFile=" option. Key-strings that contain blanks must be surrounded by double or single quotes. If a string within the alue that is to be taken as the length of input records. SORT will break the input up into records of this size, regardless of the actual breakdown of the input into records. The "length" is given in the same way that the Length parameter is given in a key-string (see "Key-Strings" below). This means that the length may be given in terms of words, bytes, etc. The length must resolve to an exact number of bytes; for example, raw=5bits would be invalid. RecordSize=number specifies the maximum length of any input record, in words. The default is 300 words. "RecordSize" may not be greater than 7000 (words). RejectFile=file specifies a file into which SORT will write erroneous records. If "file" is omitted (i.e. you just type "rf="), these erroneous records will simply be discarded. SKip=string specifies a default set of charaing process. For example, if a file of students is to be sorted by student name, and student number within name, there must be a "Key=" describing where the name is found in each record and a second "Key=" describing where the student number is found. The order in which "Key=" options appear on the command line gives the order of importance of the keys. KeyFile=file specifies a file containing key-strings. Each line of the file contains a separate key-string. These key-strings are the same as those given with "Key=", but without enclosing quotes. A "Keyfile=" may appear anywhere on the command line that a "Key=" can. The order of key-strings in the file gives the order of importance of the keys described. MemorySize=number specifies the maximum amount of memory SORT may use. The default is 120 (K bytes). Raw=length specifies an arbitrary vL). The number will be collected from the start of the key until SORT finds a character that cannot be part of a floating point number. +BinarySigned indicates that the key contains a signed integer in normal binary representation (i.e. as a machine integer). This kind of key may be a maximum of 32 bits long (specification of key length is dealt with later). +BinaryFloating indicates that the key contains a floating point number in normal machine representation. This kind of key may be a maximum of 64 bits long. After the key has been obtained from each record, it will be padded out to 64 bits by adding zero bits on the end of the number; this makes it possible to sort such keys using standard double-precision floating point comparisons. +Location sorts according to the location of a field in the record. This option is  a non- numeric character is found. The number will be taken as decimal regardless of leading zeroes. +HEXadecimal indicates that the key contains a hexadecimal number in ASCII characters. The number will be collected from the start of the key until SORT finds a character which is neither numeric nor one of the letters from "a" to "f" (either upper or lower case). +BINary indicates that the key contains a (possibly signed) binary number in ASCII characters. The number will be collected from the start of the key until a non- numeric character is found. The number can only consists of ones and zeroes. +FloatingPoint indicates that the key contains a floating point number in ASCII characters. This may have a leading sign, a decimal point, and/or an exponent introduced with "E" or "e" (single precision), or "D" or "d" (double precision comparison. Keys that compare equal according to this test will be compared again as raw text. This option may only be used with ASCII input. +Numeric indicates that the key contains a (possibly signed) number made up of ASCII characters. The number will be collected from the start of the key until a non- numeric character is found. If the number begins with a zero, it will taken to be octal; otherwise, it is taken as decimal. +OCTal indicates that the key contains a (possibly signed) octal number in ASCII characters. The number will be collected from the start of the key until a non- numeric character is found. The number does not need a leading zero, but it can only consist of the digits 0 to 7. +DECimal indicates that the key contains a (possibly signed) decimal number in ASCII characters. The number will be collected from the start of the key until line. Collating Sequence Options: +AscII indicates that the key should be sorted according to the ASCII collating sequence. This is the default. In fact, +AscII treats the input as if it consists of unsigned binary integers. +Caseless indicates that the case of letters in the key should be ignored. Thus all the keys beginning with "A" or "a" will be grouped together, all those with "B" or "b", and so on. This option may only be used with ASCII input. If two keys compare equal, they are compared again as raw text (so that "A" will come before "a"). Non-alphabetic data is sorted according to the ASCII collating order. Alphabetic data is inserted in this order where the lower case alphabetics would normally appear. +DICtionary causes the sort to ignore everything that isn't a letter or a digit. The case of letters is ignored in theLcharacters which may be ignored at the beginning of a key-field after the "skip" characters have been skipped. For example, il=" " indicates that SORT should ignore blanks which appear at the beginning of the key-field. The "Ignoreleading=" option may be used even if "Field=" is not specified for the key. +Ignoreleading indicates that SORT should use the default "Ignoreleading=" string specified on the command line. This option may be used even if "Field=" is not specified for the key. -Ignoreleading indicates that SORT should not ignore any characters once a key-field has been located. This option may be used even if "Field=" is not specified for the key. Offset=position indicates that the key begins at the given offset from the beginning of the field, once the "skip" characters and the "ignore" c may be considered to mark the end of a field. For example, stop=":" indicates that fields in the record are delimited by colons. If "STop=" is not specified for a particular key-field, the default is the "STop=" specified on the command line. When "STop=" is used in a key- string, the "Field=" option must also be specified. SKip=string gives a string which contains all the characters which may be skipped before beginning to search for the field. For example, skip=":" indicates that SORT should skip over extraneous colons before beginning to collect the key. If "SKip=" is not specified for a particular key-field, the default is the "SKip=" specified on the command line. When "SKip=" is used in a key-string, the "Field=" option must also be specified. Ignoreleading=string gives a string which contains all the s at the very start of the record. Before=position indicates that the key is located before the given position in the record. The default for "position" is the length of the record, so that the key may be anything before the end of the record. Length=length specifies the length of the key. This length takes the same form as "position" within records (so that it can be given in bits, bytes, words, etc.). The default length normally includes everything up to the "Before=" position; however, if "Field=" is specified for the key, the default length includes everything up to the end of the field (as indicated by the characters in the "STop=" string -- see below). Key-Field Scanning Options: SORT provides facilities which allow you to parse records into fields which may then be used as sort keys. STop=string gives a string which contains all the characters whichapplicable when using SORT's facilities for scanning a record and parsing it into fields. The sort is based on the position of a particular field within the record. +Width sorts according to the width of a particular field in the record. The wider the field, the later it comes in the collating sequence. For example, if you were to sort a dictionary according to width, you would obtain all the one-letter words, then the two-letter words, and so on. Key Location Options: FRom=position indicates that the key starts from the given position in the record. For example, "from=10" indicates that the key begins in column 10 of the record. The many ways of specifying a "position" within a record are described in a later section; suffice it to say that the position can be described according to words, bytes, bits, etc. The default is "fr=0" so that the key begin