hA]$lU]$ m]$OPQRSTUWDaw]$V|]$g|]$}]$5]$ ]$B]$q]$...cemcgcppcrtso.send.shead.slibc.a libdir.a libtermcap.a optp0P+bn܋@ãPSQP0޸+P,+,+"  F+"+""  ++y>,t,+,'++>+t +P+,+,++^⋾>tl,>t$,,u śt+#tUR>t멃 ~3}.VOP_f,,u {uJFV_Ѓ/t,,u Jt+*uE,/=+u=<u==u`=>uR=|uodždž;} Ƙ,3,,u 諚u$ =t3,,u rt+=-t:~6=!t=&t!&tC+t  /-u   >t   >t#,EP>PrP~EtM=^u=|u,5aAAWBBMCCCDD9EE/,,u t+;t,Pct=|t)+N t*䉆t,+RP蘌E؃t؋Gt_'u dždždždž,,u ӗt+'tPbPxb,|v PZbEU E.z+ u,V#|ƙ,,u t;'uP u:\u,,u Ӗu]Y+čEP"PPLEdž dždž.uB,,u lt+, u00tƘ,,u t+xtXu%dž,,u 敋t|ydžqRP=܉F9s Ƙ,,uju+V|yltLuEU Et.tFetAEt<,EU tuu u)Ec.ugF9s Ƙ,,u 諔t52F9s Ƙ,,uvu+ uǃetEtF9s Ƙ,,u 0t++t-u7F9s Ƙ,,u t+ uYP^F9sFƘ72F9s Ƙ,,u芓u+ u,Ɔ-F9uP$^P0+RP@E5+ƀtt*P8P ^ = wV4P]B+6,,,u Ӓt41,,,u谒tۀ tفu-+*u,,u ~t+/u6,ظwؾ PFF,,u 7t+;~t% u8,t PnPP+x8,8,8,;Ft v:+O +P8,8,8,㋇*B-|Z+Ձ~u>8,tbP}8,L8,㋇*B-} +PW^㋿*:,:,8,;Ft v%+ԋ^㋿*|'%ǹF؊#t++e?~+B-%B-+F؊#Ћiԡ8,;Ft+FB-ヿ:,tF?ԋǺ F؊Fu+B-FB-%V ヿ-uO}+P/FX+ӡt`^8,B- f㋇:,VډLJ:,O}޿㋇-UgVډLJ-O}:,m+.:,.tLEgF؋㉇-O}fF؋㉇:,O}^8, B-ӸvσFuFҸҋV~σFFFuПG^FNuF+nvvσFu蘟FҸLҋ~^GFs~GNuLҸ ҋ^?u)fP#+ljnu^7^7^vr&v^GFsvFOuFѸыvWFvVF~0uY=0tT6D-V%F~0tD6D-WF_GF_GF~u4~t-tF-~0t~0uø0.ѡH-PVF'~u ~t~tF-H-PWF~t"~u~uF-J-PVF&~u ~t~uF-J-PW{FFr+dЋ_3u5_3u4_4uwvV wvW4,_4tG;Gu _t VvWS+ϋ^7\4u9|uS^tt">-t~t ~t~:uW>P&\wzPvpP"PVSWvv ϸWϋ_GF=-t~=t3=t#="t_tJ--PW_G-tVP7P5WS6-6D-W=.t=/t=0t=;tvPVPBP5RWnu΋^?E FWr.P++RPwoF E ^?y+:΋PPt#PEDEDFDD WvVvo4θ ͋^7VquDF|؀ux}tr]㋗--҉FVTD#F#VFVut]㋗--9Vu'9Fu"VF҉FVTD#F#VDTV'VKPW^7\Gi+*͋-5LPv_G>+-^7MPv^+̋-5pt FG5NPvo+̋++RP]w4PHŃE+|̋++RPu4P&ŃE̸Y̋X FX PuuE EFEEE[+̋_w.t+t%vPV꽃PlP5)PWg̸ˋ_3u5@_GF=.t=>=t6=t1="t,=-t'v膽Pv|P}P5OW=/t=0t=4t=;t+SˋvWl uw&u.P++RPClPPW I+ ˋF=t=!t=<t =>t=u = t=t=t=t++ʋ=t(_G=-t =t="t=/t =2t=4tvW15 u5+kʋ]?-uEM+OʸPlN|ʸ<ʋF9Vu9Fu ~t=+ҸRPvvʅutvv+ҸRPʅuuFu vvFFPaFVFPaFVRPA+ҸRPgF+ҸRPBvvfA+ҸRPAFvvvvvvK +ҸRPVFRPRP<vvavvabɸ"+ҸRPVFRP҉FVF9Vu$9Fu~uvvvvAFtFP`FVFP`FVvvt@+ҸRPOEVF؃RP;+ҸRPAvv9@+ҸRPEvvvvvv vv`vv`YȸȡV FV V FV vv@v9>+ҸRP=>vE=v v?+ҸRP@+ҸRP >+ҸRPq:v vr?+ҸRPMD+ҸRP@vv L?+ҸRPw@+ҸRP=+ҸRP:vv ?+ҸRPC+ҸRPCv:v\=+ҸRPK:=Ƌ^?u~ t|4uit^?D=(u~\=u=u="u=%uvuut茸P^wPWJ-ED="t 0=t=u56->PvVvԲF؋w`=-t=.t=;ttPPW_J뗀}t1PWIJ3Vv育F~.t} t؋WG FVUEFVEUG EE;-t?^WG FV^_WGFVGW^G EE;-tM =-ud=.u\=4uT=;u} uZEF؃.t؁ uz.P^ww >fP.P.P^ww $fPvW^w f^_ 2t+E^?+ĸ.P+ҸRPePvvĸċ_3u5_2u5 u5GF;u|1u -GvuVuvDFV:F~t~tz^u$|u~>tvصPP5dHVW?~uE^u~>tt褵PP50HVWl ~tVW~u~tVW^4u*|4u#~>uvHP(P5G^4uoV[td !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN~>ttPDP5G^W G;T |;Dvt贃PhP5tG^W G;T t;Du|4tvuF==t/=t*=t%=!t =>t5^w}PP5 G5[ftًuуuˋ^W G;T | ;Dv^w3PP5F^W G;T tJ;DtfB^;tYW G;T u;Du~>uP5yF4^;t*|;t#tijP^w跳P P5Ew^?]GF}uvP!PWEE c~=uuvFP^GFZ.P++RPkbFG؋EGvvFP^GF uGFGS-eFFvvWubFEM ^?+E=t=t="t =-t=.u++E=-t=t =t="u=.t=/t=0t+hvWvFPF= u?~=:uB=*u=%u=&uY=(u=+uw=,uK=-u=/u=^u) =<uN=>uF=?u=[u=|u=u&=uG= u2=Au*J=u = u= u=u=u=u=<uu=?u=@uP=Fu~=Bu>=Ct8=Dt3=Et=Gu]=Ht =It=Ju_vWvFPFPvWiF+PvvW%=4tH=;t_wP8P5B_G=2t=4t=;t^_G=2uv+PWW*P뽋_4u+__3u>-t VPBW*P]_3t&_wPnP5^Bv;bv(P5_w_O 2_3u5\v<P5^w_vWvFPFPvWF^_4uFFFF_4uIFPvW^_W G_;W u;Gtw>PFPvvWaFPvWF~+un_4t^_4u vvWWFPvW@vWvFPFPvWF6-vFPFPvW+PvvW-GvW vFP55`t5|u|t+~u+;uF.^G D v/`.P~u+RP]D G V^G G v_mv_tL^ut+~u+;t~u ^GGv,PWvv56-M]O _w觨u^_w蔨tG^;GtP5U?FPvWvv5'vW5^t ut ^G^Gvv5^tFvv5^w\O 耺_GF\;GtP5>V{^WYVv5w*\6->PW-wPvGRP0[P/PW6->PWL'+蹋^7W]tV]tWvv(~ tE ;D |VvWWvVt[^ɹ+芹vV=0uP4=V-wP_w{RPdZP*PVj++V\t5\t VvW$Vv5wZ#⸋F=-u=!u=&u=*u=~u= u= u=#ux u(u __ t_w P<.P Pw荲RPvYL 5l\5_w(PP5g<[_2u5j_4u‹5|u \GDV*P+P\wY_2t_3t+G뎋_2u& P<5( P;5\_3tߋuC [ P5;4 u#u_GF؁ t͋GwưGG_GF=/t=0uvP~ P5,;Wj\vW~5Zt{WGFV~-u ؃M_t2_W Gع㋗--FVVF#F#V VF҉FVFVGW-5YZt55v+PwX_3u5_4t vW!PW5Yt.uu+FVGW-G5v+P6-WO uvW1+艵+ҸRPRP4v4u vn P]:>-t鍵+NM4+ҸRPRPY8s+4 PPl#Pv@,Z >Z FEFEFE3+t&5u+uuzl#>l#+辴6Z Z 6,,-P8[3Ѵ葴d$v3u~tF P Pa93uDFt$؀ u؀ u؀ t vt=u2\]GFE=t!=$t+=7t=8t/v*$vD+~3tv* ~3tv +辳u>-t Wv|3t P76-t6` +ҸRPT DRP҉FVvn-t蹠t)X X b Pf)P++RPvv& b V V \ V ^ v>-u]6,6d 䚃t.X X f P)6,)RP,d P(++RP6f ),+RP3+ֲ+藲v++RP,>^ tv6\ (V>b t:++RP6b )` ww w ++RP6b )+Ҹ +ҸRP` W GRP蛲RPA,>-t>h uU5h vvr5>-tP5-+ҸRPV FRPGRPk(+诱++RP+ױ+蘱6` !PFP+PPPPv0 6\ $^ 霱\EFu\W GFVDF='u~ u~tWk`u v P45~t~ t~ $u\3t ~|D ~u>-t VvD v&\3ut&~ur~|~uv P4FFP++RP+ҸRPVFRPڰRP# ;=t'=uC>-t Vv b~|F= u҃~tWv=$uJ=7t=8t P40 鯋]wFFD=%t<=(t7=2t2^ ur=uk>-tF_ u'^_=u2 ! P3vS{^t K Pv3~t_W^wk^GFV=PFP+PPPPv5 vKSF~FFVFPG<]_W GFV>-t uuu%P++RP+ҸRPVFRP,RP" Ӯ+蔮u| u|t7|-t|"u)uu'uu5&t t+E遮+B>-u ,+RP&v v vvv4 P+>j tuc!a P2.+וֹ>j }tu=! =u츋 P1+íPP#Pۃj FEFE>j ѭ+蒭>j j #>#鷭+x>-tPX X l P#v豕RPvT(++RP6l $ P +ҸRPf X+>-t'++RP6l $ P +ҸRP0 " ⬋U EFVT DFVWFVF~|~s FFVF;Vu ;FuF;Ft.F=t)=u=u P01 =t-=t(釬F=uvv$vv$ ؃~.|~s&vv$+ҸRP$FFvv$vv$~uh{~|~s FFvvY$vvM$F=t =t=t6q!0}!*^$vv$vv$F=t =t=t+0E=.t4=t-=t(="t#=-t=/t$=0t=4t=;t +*}u"ڪWGFVTDFV_GFF=>un:=+u=%u=&u=*u=-uH=/u=<u= u=^u=|u=u= u=u_=u=un~u~tb~u~^--҉FVVF#F#VFVVF-Fȅt~^~uO PV-VFGW50D G g VMévvFP肪ƒ~t~uVF#-#-ut'~|xVF;V}j;Fs`\--҉FډV܋VF#F#V܉FVVF%+҉FVvvvvmFVvvvv蘩FVFVFމV| ;V| ;Fr+FډV܋VFFVvvFP让~u ~u ~uVF#-#-ut0~}VF;V|;Fs VFZVF+FVK--҉FމVVF#F#VFVVF%+҉FVvvvv蛨FVFVFV| ;V|;FrVF낋VFvvFP VFFVNufVNu~^VFFVVFFVVFFV~t{VF#-#-ut/VF#-#-uuVF;V|!~;FvVF#-#-ut +FVVF;V|~;Fv|VF;V|~l;FvdVFFVVFFVVFFV~t~VF#-#-ut5VF#-#-uuVF;V}a~;FsTVF#-#-ut:VF;V},~;FsVF;V}~;FsVF;Vt;FtVF;Vtw;FulVF#F#VVF F VVF3F3VoUEFV]GF]W GF]4uF~tI^㋗--#F#Vut PW)^VF#-#-FV{-+FF^㋗--#F#VFVut)^㋗--9Vu9Ft -PW)NtfVNt~^VFEU雤[+FF@VFFVGu MP)߹VF--~}>--H™---|=v xP(--%-.--..裸 訣-,F.FPXB-=t==t8=Ot=Rt.=Tt)+P΃u-,>8,;t ;P(΃|-FPظ, -F=t=u=t=t - --|=t%=t =tm=tX='ta=(t =)tW=OuD --B-=tv=tq=%tl=(tgWۢ=Rt~=St=Tt=Ut=YtP΃tW͡B-=%t=tf=t= t="t=$t -W7G=tp=tk=t.V=St_=TtZ=UtU=YuBN=t~=t = t="u*W)̡B-=$t~=Rt='t=)t=OtP_̓u -=t=t=uwWN@=t~=t= t="tS='t=)t=OuD=tS - -W^B-=$t~=Rt~=St=Tt=Uu{=YusP̃tx_="u=$u~u̅tFB-= ux=%ux~='u=(uf=)u+ȠB-=t7="t2=)tK-= w}t P$E+E鿠B-="}t P$+E߃} t P~$E ȸ JF.FP~t PH$~ u P7$^F?+B-=t<=%t+=(t&>8,t PʃEP6+4sEP_EP +誟,v*B-=Ou,ȟ=Pt,P˃t$и p-FW._---FPFP 6.FPWNFo~=t,=t =t=uB-uvFP} #= t= t=#t=Ou)=Qt=Rt=Tt~uʅt FB-=Pu-u6.+Pv4=Wt~=\u|=]ut=^ul=_uddF>.t>.| ~$u+F-^__3u PI"B-=Qu^G4 Pt"~tv6.FPv-FP~u+PX~u1^__3uvAFv6.vv9v9SƝ 膝FF$=t'=Rt"=Tu~u8Ʌt FB-=u--W-,ǡB-=t=t=Su-Pȃt-FP,>8,)t )Pǃv++RP3PW F>PXȃtPF1B-=UtqFP+Pvv2PW 4FB--=^w~t-鞜 W+P+RP4PW +AB-=Rt EPJb-,W,>8,)t)PԸ-,F=t e=t=u{-FPIv ^WG^Wv?,>8,]t ]Puƃɛ-^G=t= t= u=Rt=Tt=Vt΃~u1DžtFB-=#uhR=\u[~=]uQ=^uI=_uA+,v-šB-=Pt=Su,*,Pƃt͸ךFPHPPn#PȃFE^?ᚸ 衚FF-8F=u=Wu`-W+PPFP5~=tq~=tg=tb=t]~uW ƅtPFA,Wv먃~uŅtFB-=tv-,FPGFB-='u,WvP=t= t="t=$tw=St=)t=Ot=Rt^=Tt=Ut=Wu`=YtDt,,,>+}t7vWeF~u ,PătFB-=Pt=Xu,,B-=Pu,>8,}t }PÃEE ),ÍFPFáB-=Pt =Qt=Xu,9=PLăt,TÍFPtF^WG^Wv<^WW-RPvvdN阘X-B-=(+FF=u=Wu-W+Pv҂5 ~=u~=u=u=t~~uxÅtqF_,WVvz\ G5\ O뚃~uÅtFB-=tW-,FPnEv$FB-='t[,WVv衃鐗=t= t="t=$tY=St=)t=Ot=Rt@=Tt=Ut=WuB=Yt&EFFF -, - -m=th=uUa -,>8,}t }Puvv^EU ږ='t+ =$t$=%u=(t=)t=XtP ƒtFPFPW(B-="t=tp=t=t= t뾸6"-,FP"-vvvvFB-="t1P=t*8=t#=t~utF, ,GP6=t=t= t=(t=$t=%t='t=)t=Ot=Xt+聕,v vvvxB-=$t`~)=)tY~:=OtR=PtT=Xu:F=tA=t<=u)5=t0~=t)= t$="u=%t='t=(t,Pu,6西y F$-F.F)=t,=Rt'=Tt"=Yu~ut FB-=u$--,FPFP8B-=$tw=t=t =t=u,+=t= t="t:Pڿt,FPsvv vvFPv!Pv| FP9=)t=%t='t=(u=Ot=Puz=Xur=Yt$-BF놸蹓2P Pv#P^KFPkA^WG^Gv7eP験h&-,F.vFP9,>8,)t )P FP^7"^FP?F ξtFB--R=w|~t&--W)P;+P+RP3PW LB-=Rt=Su-ƒ=UtPtB-=UuFPh+Pvv2WM+P+RP4PWv +6B-=Ru3>+)t,&-,ȼv,>8,)t )Pἃ觼2+^uuvu蚊F=uF+ő PPp#P蠿EFDV FDT~ t}t PF Eu鬑l^~=^p#ãp#u酑+F}tPYuXHE[UEFV} P$:~u~u PY,..#F#VutPWEE+诐u>.u Pk>.u'}t} uupP"PE7>.u-}t'}t } tu<P@PaE9u6-E=ts="tc6.6H-z=.tDP(<="t=-u>-t PX6.>-t PA6 .6J-u;6-tR;6-t;6".u6D- jP} t͋D=u>-t P6F-jFP3F=u5P^w2wtPP.)FPF~uv!2+,.d# ㎋FH,FP豬=uF,+軎_P vv܎+蝎P vvvPP 魎+nTP vv鏎+PPP vvwq+2,P vvYS+#Pv A+Pd vvvP4PG +ӍP5 vv +赍P vv ֍+藍P č+腍P 鲍+sP 頍+aP 鎍+OP vvv p+1P vvX R+Pu vv: 4+PW vv +׌P9 vv +蹌P vv ڌ+蛌P F+RP 黌+|P vv v v F RP 酌+FP s+4P vIX+P{ F+Pi 4+PW vv +׋P9 +ŋP' vv +觋 P vv ȋ+艋P vv P 頋+aP vvv P u+6P vvv P J+ Pm vvvP= PP +܊P> v P+ +跊P vvvb P ˊ+茊PvvvP P霊+]!Pvv ~+?"Pvvf `+!vvR L+ $Po:+%P](+鉸'PK+׉v +Ɖv +赉v+褉*Pvv ʼn+膉-Pvv 駉+h.Pvv 鉉+JPvvq k+,Pv P+Psv& 5+2PXvvvJ +ՈP7v}+躈Pv ވ+蟈Pv È+脈8Pvv饈+f9Pvvv 鄈+E9Pvvv c+$:PvvKE+<Phvv-'+臸=PJvvv< +LJ=P)vvve +覇?PvvLJ+與@Pvv驇+jCPvv鋇+LEPvvsm+.FPvvvL+ FPovvv++솸HPNvv +ΆIP0vv+谆JPvvц+蒆MPv鶆+wPFRP阆+YP醆+GQPvvnh+)RPvvPJ+ UPmvv2,+텸POvP<+ȅXP*vv+誅YP vv˅+茅ZPvv魅+nPvvP酅+FPvvvPxPV+Pyv=Pf1+򄸡PTvvvP;+DŽ`P)vv+詄aP vvʄ+苄bPvv鬄+mvvv"镄+VcPvvvt+5cPvvvS+ePvvv;5+jPXvv+؃kP:vv+躃lPvvۃ+蜃mPvv齃+~nPvvv霃+]nPvvv{+ +ʂwP,+踂xP+覂yPӂ+蔂{Pvv鵂+v|PF+RP閂+W~PF+RP}w+8PF+RP^X+P{F+RP?9+P\F+RP +ہP=F+RP+輁-PP6\xuNс+蒁>uF鱁+r驁+j~u )钁PPvQxu++:>tn>)t 6xN+>t<++>u->u+ŀw&>u>uǘ@>u>uǘ>uǹ邀+Cw&>um>uWǘ@>uG>u1ǘ>uǹ+~|+~r"~|~xs>uFx~|W~rN~H|~w?>u>uF>uvF>ue>uOF>u7F>uVF>uVF~+~~u~u v7+>uvvv~+G~~u~u v3+>udvvvB<~+}>u1vb~+}>u v;}+}>uFv vv}+z}WeRP>uG}y}+:}>ujvvQ>uFGn^~} }+|P^vvv v^|+|+P2J|+|P5|+| P |+v| Pvv=|+U|Pvvv vF RPFRPO|+|PFRPvKdRPvs|+{FPv+PP{+{^G uFPvvP^G {+{FPv+PP{+n{^G uFPvvP{+F{FPv+PPfi{+*{FPv+PPJPq@{+{>!t 6!rFPv+PPPq {zFFFF-=wtF-=w(>-tF>F-=v2FHFO݃~t^G+F~t^GG+B~tH>tA6v bu0>t >~0}F^',F,FF;tFF~tvvfP)P J~tvvP)PIv v)P7HzP)PIyty~u+E =v\|t vWxytW׬uuutݡX FX P4]w wu\++RPv]w w뚋EFEFEFEF؁;uyE tm1u+F= uL ~ =<u~t =*u~< =!u =%u=&u=(u=vIjPPu~t}t]w]w w+PPVPv +PPVPv~ t^G=t=.t=0t8=4u;P끋^t w wi^w wSZ^w wK~u[+PPVPv u/^G=t=.t =0t=4u^w w@^w wP+PPVPv +PPVPv u^G=t=.t=0tm=4t*^t w wG^w w{^_4u +ҸRPa^_w w^_w wr=^w w.~u+PPVPv +PPVPv +PPVPv u^G=t=.t =0t)=4u1^t w w^w w+ҸRP+PPVPvX +PPVPvF uo^G=t=.t =0t)=4u1^t w w=^w w.+ҸRP7!+PPVPv +PPVPv u^t w w^w wj+PPVPv +PPVPv{ u^t w w^w w}+PPVPv> +PPVPv, uU^t w w=^w w.+PPVPv +PPVPv u^_W GFV^G=.t Q=t1=uV^_t vvEJv v v [+vv*vv =/t=0t=4t+PP~ uv5 +PPVPv( +PPVPv u?^W GFV|=s FFF=&t =^t =|tvvhvvvv^ | t+F+PPvPv t'+ҸRP^W GRP_sRP)^ t-+PPvPS@ ~ug^ww w]R~uI^wP* 4^_ | t+Ft^ uFPS ^ u"G uF+PPvPS dF+PPvPv ~tHFP FV+ҸRP9vv+ҸRP^_w w~tKt8~?t~@u*+ҸRP^_W GRPrRPv^w~ă+PPvPv ~ut~?t ~@t+Fvv^wv*ă~u(^wP ~uPv9 ~uU+PPP+PvP ^_w ww~ue+PPP+Pv! ^_w wu=?u=^u9=~u=u_=uW= uI= uAa=Cu6X=u#= u= u =u=u*=u=?u=@u=Au=Bu=Iu+=Du=Eu=Fu=Gu=Hu=Ju=Ku=Lu=Mu=NuP+jF=tHN=<t=>t$lPPjvvvmvFvv= t=t=t+zjF=t69=<t=>tP)P,j~gP9= t=t=t jEU EFV|=s FFE=.t~=t=t ="t=-tF=Cu =?ty = tr= t}=@tx=Atc=Btn=Gu=Du=Eu=Fu=Hu=Iu=Jtvvvv[vvuvvuvv]vvuvvvvuvvfvvT|uvv'mvvbuvvSvvHuvv9= tX=?t&=At!=BtI=CtO=DuvvB= uvvڃhvv|vvF=@uvvzvvƁ~Bt~ t~@u vvvv=/t=0t=4t=;tuYP@Pr+g>d$^U EWPU E؃RPXb؃EU U E;U|;E s U EE UU Eg+jgd$VFGW gQg^W GFV^GFUEFV=u+ҸRPvvQFu+F~u~u t+u~u~u ~t+F=tEF^GF؃u@tvv^w*~tvv^w:vv^wt/^WGFVRP$^WGFVRP~~u^WGFVRP݃vvv^GHEFt vvP_/~tvvvsvvvU݃vvvoeeu~u }t+FT DFVDFUEFV}u@~t%+ҸRPvvvvvvvvv~tQFu+F~u~u t+Fu~u~u ~t+F}t~t}~tvvuyj~tvvuUvvu?~tvv^w_/~tvv^wvv^wۃ++RPu~u++RP^wۃvv*^WGFVRP)^WGFVRP;܃EF^GF؋_3u^w%݃f^ux~t1~u~uWGFVRP_ۃvvvQ^ww?ۃvv&փ^GcHc~ |~w vv]~ u~u vvFX X FP.كv v PvvIP݃++RPvsڃv vۃc+bF= t4~=/t/~=*t%d=!t=%t=&t-=(t+b߸ڸո и ˸ Ƹ 뼸뷸=+t=,t=-t=.t=?t=:t=<t==t=>t|=[uy=^t=|t=t=t]=>u_X=un#= uK= u>= uJ= uG&=u<=u/=uJ=#u=<u=Eu9#=Au/=Bu'=Cu=Du=Fu =Gu=Hu=Iu=Ju+3atE u} t+QauEa>-t0v)FW;F|vuRPbPW[a+`PPt#P袎^?+E+E+-=w#VW!`W5W[WryP:߸a`6+DFuD>+(u 6.6$.8"Vu tPJ6.6-+PVDF^_:utPW3-E^G GEE;-uM ^_3t^_2t ^u+EE ^uEWGEU2^$u|EWGEEuEE_+D_&.EEE +E+EEW_+_6+6+6+vb:_+^D-EE +EE_+^PPt#P踌+E+EvvvW^+^F =tV=t=)t0=.u]-H-EE EVFEUW긃^..#F#VuuáJ-VF;.|;-wv PPP똸 ^ PPt#P⋃FtSv^t.GF^ t~^tGF^ t^G^G^G^uȋ^+G+G^FGG t-t6Ft PV)Ft +PVFt SPV~tW\+`\+P=PV6-8p\+1\}u } uU\++\Wt }u1\++[} u\++[t!} uuut#>t#[+[B-=t!=t&=t!=Rt">8,t PYW[W$ , WB,>8,)t )P&O +6[,-W+WC%P豆t,B-=RuWf =UtW装B-=fw|,-[Z,者FP,>8,]t ]P蘅v[Pv:ZZF-,8B-=#tMl=tFT=t?=t:~Pu,-,>8,)t )P-v(PvϙqZ-FPy=t= t= t=\t=Rt=St=Tt=]t=^t=_t{Y-B-=Z+F-FPvvv跒YYF,v <PvÎ9,Pt8'FP<PFP蘎v<Pv蘃B-=Pt=Su,yY9Y.-vF t:FB-=fw'J.-FPpvv&虃$Y~t.-XFB-=Rt P6+tFP=ŃQWv>PW쓃O Rv=t ^=t=t~uItF0-WFPWeWvQmXB-=#u0-W8=t= t= t=\t =Rt=Tt=]t=^t=_tvW0-膂FB-=#tq~=tgy=t`=t[~uU苃tNFθ P6+t0-FPă.PPvQRPO  WWzW#Pe=t= t= t=\t =Rt=Ttl=]t=^t=_tZ W0-2-vV6+;Fh>+=ta4-FPv4-FPvHPvvv7FP*tFB-=fv~t2-VmVFF,v?PHP<B-=fw,?PÁt,,6-ÀFPP?Pv,>8,:t :Pʀ萀6-FPEP=Pvv:PFPI?PvRv?Pv,UUF8-v F OtOFB-=fw<8-6-FP6-FPvvv耓_U~t8-U,vuFPfv,Pv|B--O= w,Pdu,T+TB-=\t = t=T^+T=]t=^t=_+TB-= t ^?T^@+jTB-=`t=aT+WTB-=bT+ITB-=zT+;TB-=t=ct=dbT+#TB-=TT+TB--T=w7T+SB-=\t:N=t6=t!= t'= u=]t=`t=at^+S=t=t=Tt=bt~=ct=dt=et=ft+tSB-=]tP~= u=u=Qu=Tt?=\uB--B=v=P}A=P}B=P}C=Pr}Dz=Pb}Ej=PR}FZ=PB}GJ=P2}H:=P"}I*=P}J6+sDPPփ+R=`uk=aus=bu(=et=ft+?RB-=vkgR+(RvvMR R-F=t;~u}t FB-=u->8,t P|^+Q-QF(.$tv9F|u \Ƈ-Q5uָ2PPz#P_5vv~Dȸ&OQ~FFىF+$GFt#^ֈF֋^,3FƋFF;|Ћ*^FVFًV+RFP1!QdP6+6+6PFPE! FPgP+P^_?#uP+P^^wEFv'FF^u-Fkv^w_F؃ Q|uIvVTt;^ uuwBP/P5^:t u?Plԃ~ut^G="ti=-td=/tY=2t5=3tSuj7uMP,ԃ++RPv4PfH"++RP^w4PNHFFD-F~t2^3u(t^u u:pPxӃ7^w%u!~u7~t~u9>-t;} t] G;.u uPoӃ~t^u uPSӃ~tA^G;F|6F=t=t!=uP҃vVWu~u<t6Wvt(^FGFG wG tG ~|O^3tu?>-t($u"^3uWou uP҃Pvvh[2PPr#P{F؋FFGFGw~uGFEWvW$~|=t= t =$uM^ uu uPу u ^G^W G؃FV^wW GFVRPG؃FV^GW FVG WFV^GWgX +҉FV^GWX L+L^~t~'u+3t2tLLEF;wtj^GF|2u؁2u ؋D;Gtu!PЃL| |1^ }^w ^T D;W u;Gt uIPYЃ~8t^G=$u~@=u/=tBF=t=$t =7tF^ t uxP uPCЃ^FGWF=tC=$tI=7uBPxЃ5=7tmT^ t uu&Pσ^G^ t u>-t uPσ^G$F=t=$u^_3uu>PF=u8=$t=7u+>-u!uf6ue='t=7u=8t+Jt}tVu tP΃+J+Ju tV4uuEJ+TJu| t uPa΃|'u P΃DD WJ+J6.6-9Pv:J+I6.vPv^_V FGW JIPK ؋FFA]wVFDTP\W GFVRP9DFVVᚃ=Du^VFWIUIF.FFFFF.FFv FPFP{KI+ I6+tu!9>+u}t]'u+IHFn#>n#~uH+H+Ƙ,ƺM*G|H+HPWEu+H" >" E+[H> t,EEW,_PEu+aH E> H> }t" FSDFF" =6 2F> u  + HE,EW,_+GvPvv?u+G^F|GV/FW/FP4DFu+G^FG^FuN^/FF^uø GFF~u@F)~tet~)tRv>GFPPv=t2Ń~t^?/tۋ^?tFPv^F7u+FFPPv~=t FFrvDFE,tEP6,vu ~)tOFE^F됸F> uM+EPuu=tN}~HE,lu=E,~unt(볋EE9,r}t+Fu}tÃ~t})t uQ=ht,?t,,EH,% K+PE+E+FE>6,t & PɃ+jE*E-t +PWF(~=t&o=t=t~upt FB-=#u-V=_2u4xtVW4D-VWG8,}t }Po\DD+,,t +PWPnFPVu vFP}F~u ,PaotFB-=Pt=Xu,ti,B-=Pt'C>+}t߅t1nFPVMun+jC>6 u:^?E=%t0=(t<=2u#8 Pu t M PVǃ6 `CF PW u~tָn PW u+B>6 uN^?E=%t5=2t%=;t:WvO+]-u^7v|^ tvvB6 +B^?]-u6>+u.^u%uGGF ]%tEB>+{t]2u߸PEPܸ(B}t WDFVTDFVDTTD;Uu;E t1t Pu <FVTDFVDTUE DTEAA^?PPx#Po>6 t~F=2tDDDD} u}t]w wu uADTVvz^_ 2t ^_ %uZPF P^ѡ(06(0FDFD E=%thEFD DDDDFD >+{uF @DDDD@(0F>6 t0x;Ftu^F(0x#(0x#F(0^_ ?E=%uCvt^GWWG-;U ~v^u+^G ^WGFVWG;Vub^GW|WGFVWG;V|;Fw}2uv^w :|;Es+ҸRP} PS\ 2t \ %uPD P?>+{uԍD +]?u u?WVu 8?>(0F }uF=(0x#(0x#>(0~t>6 uЋ] 7D=%tX=2u| u$|uuut2P7F] 듋EUm];U|;EwvtW2Fu3EUEU;T ~G|;Dr=+ҸRP P˳͋^w :^t SlFVUEFVEU P^w F8FVUEFVEU^G`6 ">=^?^7}2uaEPv} u'}u +ҸRPu2Pc6F^]w wu u>Fn~dua}%uHEF Pvq^t vu^GFt w ^tWvN==~U EFVPFP>6 ubE=(u>-t PE~|7~r/++RP,n^+ҸRP P菱n^~u~u<<^7E=.t~=t=t ="t=-tW=Pvw^7VuV( ^wDY-t|'u uF!P꼃D;.t͋D@F>-t|~ us!P~}FvP6*0:PW]uuV +ҋ]GWV ~t]G 28+7] uW,u u!P87^,0 /^_?-u*^_t^G@FPNF~ˋFPFHP627]7+F=t'=t4=t&6,0!P8%^!,76,0!^G!^"P^7u!,">-u,6!P6!PP2!t*"PWu+P+P6!u6,6,0,"P肻L,S>-u6!WԀ`薁>-uW跁W6!6!#.Sj6++6Ǒ*Ps.!PR>-t h*PX.+ҸRPP+P-P0 .0+ҸRPP)P-P0 .+ҸRPP+P"P0 .+ҸRPP)P"P0 .+ҸRPP+P.Pi0 00+ҸRPP)P.PP0 20+ҸRPP+P.P80 -+ҸRPP)P.P0 J-+ҸRPP+PP0 H-+ҸRPP)PP/ F-+ҸRPP+P/P/ ".+ҸRPP+P0P/ D-++RPP+P1P/ -++RPPP:P/ *0+ҸRPP+P;Pk/ -00-++RP6-3P2-$.++RP6.04P-&.+P6.0'P"PP+P6-'P"PP+P6".'P"PP+P6D-'P"PP+P6-'P"PPs 33)5_F؃t "P虸^EG=u33FPPv{*u v"P]~t$FPPvS*u=v #P5.F)'~;Pv)u #PPPPv*ut 9#Pٷv*~)t v*2+2Q#P讷2+2_#P蜷2+2^F=Rt=~=ItG~=-t=Dt,N^P#PY^ƇL-2^G#P讶鸱#FP^?u #P >~P#P-룋^?tã!!#댸#땸 $=Lt=Mt=NtO=Vt =Tt=Ut;=nuW=puO=wuG 1+~9ƺ F-0F=0}܋1R1vvPTPPv'i1+*1F=bt=dt=ot=ut=xt+C1 0~vFF"F$G=0uF0GF F!=9!F G-0F=0}ڀ=suX=cuFFF/=luVGP;FtPt4)FOFFvRP FvV+ЉV(PFuȀ=%uF+$Ћ^FFFN^F^FuNG=%uG^F=uF+F//FPvPPPv9&/+|/FPvvFF/+Y/:-H=tv=t8=t3\=t,~=t%=t =t=t?="t=$t =%t='u+@YB-= t~=(t~=)t=Ot=Rt=TtոPuZu:-_/.B-=u<-F.F.FPFr=Rt=TtS<-->-FPݐ6.FPFP݃FB-=$tA~= tRu=tK]=tD=t$~u9Yt2FNj^__3u>-FPeFP%.>-FPFP\=t=t= t=t=t=t=t= t="t=#tr=Qt,=(t=%t='u{T=)up=Ot=Pt?=\uv=Rul=Tud=Wu1=]uQ=^uI=_uA~u'Xt FB-=u=u=Ots<->8,;u;PWR+,B-= t7=t=t=t =t=uv~="t=$tvꛃ,=%t~='t=(t=)u+{,,,VB-=Qu~=uA=u=t=uOx,PWt,,>8,;t ;PVC,= tF= tA=#u:=Rt5=Tt0=Wt+u6.+Ptwz"=\t~=]t =^t=_uutKB-=Ot=PtlKVW%+ -@-^W%vuuwrU=tJ=tEPVu7 -FPi@-FPvvvvyxI+^UB-="t=t~=t=t= t='t =$t=%t=(t=)t=Wu|k+*,,u t ,u.$P>,*+ t܁tփ\u,,,u ?t+ u,/u),,u t+*u Q,,t^urO+)PP|#PW6d$|u..ET DE UEU >d$)+)PP~#P~WEFDu)+u)F;.ud$)R$}E;Fu L)d$u]d$ud$G~#>~#DFu؋G;.}:u Vt>.t>.uf^t]$tV_ |MtE>-u>^_G=/tL=0tG=4uIF^wv_w w^ww- ^Dr#ãr#V]߃EFF뵋DFt؋G;.|D#ã#ڋD Ft؋G;.|D #ã#ڋD Fu؋G;.}D #ã#ԡd$Fd$Gd$>.~6؋WG FV^WG ;V|;Fs^WG d$G W^|#ã|#d$Gd$G.'l'd$'=tuDFt؁$u4؋_3u(؀ u >-t$Pth$P艫^G^ u uVw^$t t@^G }+&>!t$f$PP6!u6!$P觫&+&>!t)vPv6f$9P$P6f$'&h&Fb=t;B-=tu~=u~=t)=t$=u=uǃ>+:t(-PM&,,:PPP(-+P (-(-(-(-(- (-w;P/P(-w(-e ~(-, t(->8,;uf;PXP(- S=t=t=uJ(- ==!t=uo=t=u'(-=&u\=*u9=Ot=Wu~uPuvFB-=#u(=u=u= u= un=\u=Ru=TuQ=]u=^u|=_ut6$,FPgσ,>8,;t ;PKO+PPPPvv vvȃ$D$FP*҃Pv\^_WGPcQ$ $V FV V FV V FV *-,(-l,(P_NN*-FP΃PFPeXvǃt^u+u%vvvPPv>u v™vǃ,>8,)t )P>NNFB-=t]~= tSk=tLS=tE=t@~u:Nt3Fl,(-vivFMv7%#l,v=t=t= t=t=t=t=t=t=t=t|=Rt+=#t=t=t=!t\=&t=*t=OtJ=\t=Tu{=Wus=Xuk(=]u`=^uX=_uP 2"V FV V FV V FV *-,(-vv7tv<(PoLL*-FP̃*PFPuVvŃt^u+u%vvvPPvNs vҗ,>8,)t )PWLLvȔv襗svyŃ!G!V FV V FV V FV (-,,*-,,PSvv9sK,>8,*t *PK,(PZKvtK*-FP˃*PFPWUvăt^u%uv꓃vvPPv-r v豖,>8,)t )P6K,;PJrvbăp 0 FFFV FV V FV V FV V FV -,-,-,(-vv r(PMJpJB-=#u~-=u~=u=u#~=uT~=uG=u?~<=u~=u=u~PJt-,>8,)t )PJIv]~t+PPPPvp vVv3PqvÃvƒvƒ=t= t= tG=OtP=Rt=Tu8-FPɃ+PPPPvEp (=\t~=]t=^t=_tȸ~PJu-,>8,;t ;P-Iv芔HB-=#t-FPɃPFPRvt ^ttvOvvvPPvo v=t= t= u6=\t=Ot9=Ruv=Tun=]uf=^u^=_uV~PItE-,>8,;t ;PBHHB-=#t-FP-ȃ=t= t= t=\t=Rt=Su=Tt=]t=^t=_t*-,(-(PjGG*-FPǃFP ,>8,)t )PG]G@b v,(-:GFPZʃv v,>8,:t :P@GG+O(-:PFFo/F-,FF=t K=t=ua-FPƃvUjv,>8,;t ;PF-j=t= t= u=Ot=Rt=Tt~uyGtFB-=#to=\ux~=]un=^uf=_u^^,FFP=Ƀ,;PE+Pvb^_WGP胎W -(-,>8,{t {PE EF&$>+:t).wPiFtFB--=^vσ~t -]=tQ=tL0P5Fu>(-,>8,}t }PbE~td$WG ؃^W (-B-=tJ= t=t~=t=t= t=t=t=t=tk=t=t=tY=Rt)=#t =t=!t>=&t=*t=Oux)=\um=Tuc=Wu[=Xu=]uH=^u@=_u8@,,,(PC@,PC+F+F,)PC,;PCvvNh(%~+FN~u~u~&~}VF؃FV|YFR}N؋~}BFF%f~}FfV9~| )~FVF~ |Ջ^%NǙRPvv:؊%FNǙRPFP~uӃ~u̓~t N-N0v6~G?uOFGuFG+F;u G?u+N+~FGuF+~G?u+F-~FN~FGuFX] G FDF^GF>-t*Vwƃu| t\ G;.u t%P{}%u"^w^ w7FV%,~t%P^v#ãv#FFFWV4>-t6~t0^G;Fu%WG ;Vu ;FuG ;Ft t%Pᚃ2PP#PLDFG؋FÉDFGwFG VFG WvPVq^ FF^ }%u0~u*&PvFVVFFVFV^ 7}(uG&PvFV^ W;V|;Fs^ VFW^wu(E+t^w9|u u&P}tuFuTċ~uE E >-tWWgăuL~t}t]G;.u u#&Pd~u}t]G;.u u9&P>Fty؋_ }n؋_G;Fua^t uO&P躘vPv:>-t#^G;.tv[Pux&Pʘ^G^~t^G;.uu&딸2PP#P BF؋É.Gv ^G~u~%^_G^_ ^G^6d$W+vtE E <t G^ vWv4tE7^G;Fu*{v{t u&P趗 u&P]S4FuEFuWeƒu u&P.2PP#P@F^-G GF+5'D;Eu#D ;E uTD ;Uu;E t+4uո+%t(u+y ǙVuTVWFƙNn.>V V 6V V PP#P?F&PvBF=tt=0u+PVd^wGG^G^G GGG GG'ã'+PPPP^7Fc W愃>-t 'P㕃6-vkCs-'P|vB]C>'}uEEu荄uj6X X V9u}uERPUE+E URPm~|=vuu \UE+E URPHEFUE FV>|;EwB^VF;Wu;Guwh^F uUFVVF;U~++RPV懃] w w`ERPĊE/#>#bZ^ww衊^w슃^Fu++RPV脇] w w蜅u'EFt^F#ã#F6'u D'P轓N^G t?t &PFPJPP#PR=V V EP藅^WGFVEU|u!|VFDTD TDDFFVF;T|;D sVFD TCVF;T|8;Dv1VFDT#^WG;U|;EsFF^F~u׃~tG^WG;Uu ;Euuua'P蜒#>#%~t ^D| ^?D|+=>'u''PM}uV V EPYG+~ }~|F''= u= u= u= u=t''( ( ( ((((~=td(("(&(1(6(?(G(O(T([(_(d(g(l(u(y|(s(mF=%t|(\(V(P(J(D(>(8(2(,(&( ((() )) )&)0)9)H)S)^)a)g)j)m)q)x){)~)))F''0= t7=u=u=u=t'X= uL&=u0=u.=u,= t((= u"= u = u=u=uv(=u"=u =u=uS+(=u~=u =u =u =u&J(=u=u=u=u)''{'uL=u~=u~= u=!u="u=#u=$u(1=&u='u=(u=)u(=*u~=+u=,u=-u=.tW(=0u=1u=2u=3t1(=/u~~=4u~=5u=6u=7u=8u=9t)w=;uy=<uw==uu=>tC)R=?uf~=@ub=Au`=Bu^=Ctd)#=EuU=FuS=GuQ=Htvu) =:u8=Du~=Iu*~=Ju&=Ku$=Lu"=Mu =Nt')+I vv^7;;Fug ++$ F=t =t=+P^PT3 F=t%=t'=t"+Pv|FFtЃ~tvv}~t+Pvu'렃~u5P++RPW} W{Pv}eFD<^7m+.E5P+vu8++vv^7C^ |++)}u*r+)uGF؃t +P职^G=u+kPP#PJ5FEEE |+=F=2tB=3t=4t2\D+P?-c+}3t}2tWgW~ |} }+PFF } u}u +P+~ | u uFPv vWu+uu!3PE|DD D+Zuu%4PED|DD D_+ uT D;Vu;Ft4uu)2P|VFDT EDEu ^W GFV}v+PЉ+ҸVF+^_} }/}2u(PP#P]3^W _^?+IFRPRPFV-RPRP`+!vFEFEV F EU 3+cP> +vv!PP,+vvPP++PPPPPvP+P++PPPPPvPPhF80VF>0@0F :0PPFtp@0>0&EFFF^F?uNF 0^FFN^?XtۋF++PPPPPPP+P+vvPP+PPvPvvPPF+w+F%-;>+r W}+>+>+%=u++ոF%F>+uqP++WƩt%GFu Fu+;Fr)FF;s؉7F E vz5uvu+zF-F%F%+FF Fu Fu+;Fr#FF;s؉7 F+MvFtvPvU%F׸FfWFu+vFOuF+^g+ GFFNuv+PPvPPPP+PFu F0++B+FF+FPuF[+v+P PPb:++PPvPvvPP+F80F :0F <0F>0F@0FB0vvT+v }>80F:0F <0>0~^ FF OuvvPF6040PvFu>60|60 60أL0V++FG?uD:[UWV+;&+r6080:0>0+40PPf^_] U싆 ]UFfȋFf ȋFf]UW+VF^ Ny ؃ׅy ك t؃_]UW+VF^ Ny ؃ׅyكӋt؃_]U^FgȋGfȋFgщGW]UWV+vTN^y ؃ׅy ك`t؃T^_]UWV+vTN^y ؃ׅyكӅt؃T^_]u؋+ʋ+UWV+u&GW݊*ɋ*ɊĊ*RPQ;r WWRP+_+ƃ^+X+y Mϋ_t͊ߊ+^_]U@~\$Cnon-ascii '\%03o' readgarbage char %cgarbage char \%03ofile specifierillegal combination '=%c'character constant too shortnewline in character constantcharacter constant too longstringmalformed floating constantfloating constant too long0.0bad class for char 0%onewline in %send-of-file inside %s # 7 end of file expected%s missing%s deletedint0.0 n4j$j5544nqJj$j40460g nn^a\RSTbP]Z`YOcQd[UVeWfX_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN$Header: Lpars.c,v 1.1 87/09/03 13:58:03 ceriel Exp $ACK CEM compiler Version 3.1%s on %s and pointer%s on enumoperator %s on non-numerical operand (%s)%s operand to %s%s operand to %s"asm" instruction not implemented-> applied to %sdot requires lvalueselector %s applied to %s%s on enums of different typesconversion of enum to %s incompatible pointers in %sillegal conversion of pointer to %sconversion of pointer to %s loses accuracyillegal conversion of %s to pointerconversion of %s to pointer loses accuracydubious conversion based on equal sizecannot convert %s to %sno lvalue in lhs of %sindexing an object of type %sfunction pointer calledcall of non-function (%s)illegal balancesubtracting incompatible pointersobjectillegal combination of float and pointerobject* applied to non-pointer (%s)& before array: ignored& before function: ignored& applied to non-lvalue& on register variable not allowed~ not allowed on %s operandssizeof formal array %s is sizeof pointer!object  cannot write to %s cannot create %sstdoutmaking function body for non-function%s is extern; cannot initializesize of %s unknownbad local storage classno automatic aggregate initialisationextra braces not allowedtoo many initializersbreak not inside for, while, do or switchcontinue not inside for, while or doprocentryprocexit(conversion) illegal type conversiondivision by 0modulo by 0overflow in unsigned constant expressionoverflow in constant expressionarray full_mask too small for this machinesizeof (long) insufficient on this machineYBYBYBYBYBYBYBYBYBYBYBYBYBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHFFFHFFFFFFFFFFF,P,PP,Prepeated storage class specifierrepeated size specifierunsigned specified twicestorage class ignoredregister ignoredillegal initialization of functionold-fashioned initialization, insert =no semicolon after declaratorbitfields are not implementedformal parameter list discardednon_empty formal parameter packnegative number of array elementsempty array declarationoverflow in array sizedo_decspecsno global %s variable allowed%s formal illegalshort with illegal typelong with illegal typeunsigned char not allowedunsigned short not allowedunsigned long not allowedunsigned with illegal typelineillegal # lineillegal # lineThvhThvhThThhhhhhhhiiii(warning)CRASHfatal error --etc ..."%s", line %u: %s iiijbad type +EVAL: CRASH at line %ubad type -bad type *bad type /EVAL: CRASH at line %u(EVAL) bad operator %s (EVAL) bad expression classEVAL: CRASH at line %uEVAL: CRASH at line %u(assop) bad type %s pz%s %s is ungrammaticalbad conversion to expression%s undefinedillegal use of label %s(intexpr) bad fund %s non-numerical constant expressionexpression is not constantcast in constant expressionlogical operator in constant expressionexpression comma in constant expressionڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇڇ||||| ||| ||||||||||||||||||||||||||||||||||||||||| ||| || ȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌȌ֌ȌȌȌȌݍ׍ݍ׍׍׍׍׍׍׍׍׍׍׍׍׍׍ݍ׍׍׍׍׍׍ݍݍ׍׍׍ݍݍ׍ݍ׍ݍݍ׍ݍݍݍ׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍׍ݍݍ׍ݍ׍ݍ׍ݍݍ׍׍׍׍׍׍5''5''5''5vvvvvvvvvtypebetween ? and :after :old-fashioned assignment operator, use %s#%d in %s, line %uunknown %s-type%s has size 0%s is a function; cannot be formalfunction has illegal storage class%s is also an enum tagredeclaring reserved word %sformal %s redeclared%s redeclarednon-global static function %ssize of local %s unknownredeclaration of %s with different typeinconsistent size in redeclaration of array %scannot redeclare %s to static%s redeclared to staticbad storage classcannot redeclare %s to static%s redeclared to staticbad storage classcannot redeclare %s to extern%s redeclared to extern%s was already staticbad storage class%s was implicitly declared as externbad storage classillegal redeclaration of %sbad storage class%s not in parameter listmultiple initialization of %stypedef cannot be initializedunexpected EOFarray elementstructunion initialisation not allowedunionselector0selector0initialisation of unions not allowed0check_ivaltoo many initialisersstruct member0size of %s unknownillegal initialisation constanttoo many initialisersredeclaration of label %slabel %s is also a typedef%s is not a labellabel %s is not function-widelabel %s not defined!!!setjmp/tmp/Cem.XXXXXX%s: destination file not specifieduse: %s source destination [namelist]-standard input-%s: no source file %s pointer size incompatible with any integral sizeint_size and word_size are not equalsizes of short/int/long decreasingcharintfloatdoublevoidmaximum identifier length insufficientcannot read %scannot write to %s(AppendFile) write error(AppendFile) read errorout of memorywrite failedillegal option: %c-D option ignored-I option ignoredmalformed -M optionmaximum identifier length is %d.-U option ignored-V option ignored%unexpected EOF while skipping textR$static function %s never defined, %schanged to externcannot create namelist %s FF@FF@@FF@@@@@@@FFFFFF@FFFFFFF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@F@F@@FF@@@FFFF0123456789ABCDEF%s is also a struct/union tagfields not allowed in unionsselector %s redeclaredmembermembermultiple selector %s%s is also a selector%s is also a variablerecursive declaration of struct/union %s%s declares %s in different rangeredeclaration of struct/union %sselector %s applied to alien typeambiguous use of selector %sunknown selector %slong in switch (cast to int)float/double in switchcase statement not in switchmultiple case entry for value %lddefault not in switchmultiple entry for default in switchidentifiertype_identifierstringfilespecifierintegerfloating!=&&++---><<<===>=>>||asmautobreakcasecontinuedefaultdoelseenumexternforgotoiflongregisterreturnshortsizeofstaticstructswitchtypedefunionunsignedwhileentryfortrancharintfloatdoublevoidarrayfunctionpointerfieldnewlineglobalimplicitformallabelerroneousparcommainitcommacastpostfix ++postfix --+=-=*=/=%=<<=>>=&=^=|=int2intint2floatfloat2intfloat2floatbad tokent*x*}************ *!*"*#*$*%*&*'*(*)**+ +++,++asmautobreakcasecontinuedefaultdoelseenumexternforgotoiflongregisterreturnshortsizeofstaticstructswitchtypedefunionunsignedwhileentryfortranmaximum identifier length insufficientfunction cannot yield functionfunction cannot yield arraycannot construct array of unknown typearray elements have size 0size of %s unknownN0Stack overflow p0pgi:%܋@ãPSQ3PKAF>na ~vvTiPMFv9FuB~t6N!^%F=w<ipa~unFEe^FF=FF+k^F*F=|-^* ‰FFvIF;Fw(;FsuFFFċV‹؋FFG;~|~P8BF +F@+L+PPvFċ‹؋4 P ;sFċ‹؋FPBG;~|F;F vCFFĉF1^F*F=|-^* ‰FFF4 FiidžrZ^G%i+V^F*䍖Ӌډ=|7‹؋-^* ӋډFG;>i|‹^G%i+V^F*䍖Ӌډ=|7‹؋-^* ӋډFG;>i|‹naH i+qiroUI#‹7'I; )G;>i|;>i}%tvvwJFF;F r ;>i|naH i+\irZH‹7H;tvvJFF;F rG ;>i|naH i+dž&is$+P‹؋7P@t‹؋7PKuVdž&-i @ꍖӋ);|vv&IFF;F r}u"+PvvSH FF;F rB‹؋‹؋‹ءiG ;>i}i;na+napnaH3p ih iWh_}dž LJi;p|዆pnadžp ꍖӋ;|ًpH i;>i|is‹؋7P+PIu4dž‹7n:;|Fcu"+PvvSlF FF;F rB‹؋‹؋‹ءiG džpuMPV<F +F@P`ndžjnl+džH;sDn‹7+Pv‹7‹7}E G;|;s+P+P+PvvF ;snj n8P$<lnnt6+‹78G;|F;F wjt j8p;iuMth~ s F @F +,Ǻ ihp iWh_Gna+p;|ɋp)navvnaH i vviPEFF;F s)+=j‹7vv‹7‹7C FG;|j7$^G teF*䉆=|-^* ‰F^F*䉆=|Z-^* ‰F9^F*䉆=|-^* ‰Fdžna+iH iB7P:tvvCFF;F rW isdž + -r 7P P:t G ‹^F*䉆=|-^* ‰F8.P W_na+iH iis`?u*G;uevvBFF;F r`- -+Nj؀?u׹‹؋;tG|Ѓ v^F*䉆=|-^* ‰FP:uPPJ/ -+|iNj؀?uPP׹‹7.Gdž + -r& t G)G G ً^G teF*䉆=|-^* ‰F^F*䉆=|Z-^* ‰F9^F*䉆=|-^* ‰FdžP8~ tdžF㋇S V -+P:.u9 -+Vċ^ӋډFP P<t   u~u:na;i~ubPCvviP-@FF;F r~u8u-FF+;~|Fċ‹؋VӋډGۍW_F+;~|PFċ‹؋+P:;taFċ‹؋V^ӋډFdžFH9}3F‹؋+VċӋڋ+;uNGndž׹‹GG|~u F<Pj4F +F@dž+PPF‹7+F‹؋F‹؋pa㉇ipat +PvPP% džF‹76,;s+P+P+PvvA ;sF‹؋P 4;F} F;F vgF PS+tRdž+PP*t(PvvPP% FF;F r U+pa㋆ipa^F*䉆=|-^* ‰F^F*䉆=|-^* ‰F~uO4 ^G%^F*䉆=|-^* ‰F~t4( Ou^F*䉆=|-^* ‰FP3^F*䉆=|-^* ‰FP3F +F@PvvPPH# FF;F rN^F*䉆=|-^* ‰F8.PW_<)^G%+d^F*䉆=|-^* ‰FǺ ꍖxP2PǺ ꍖxP9G;|+#ruPnaH iPm9naG;>i|+0na ihǺ ꍖxWh_naG;|+;>pa|+PPiv'Gߋ^G%vva-i v;~W>ta0v+ ihǺ iWh_O}̋v+tav+ vav )va+;v|V^F*䉆t=|-^* ‰tF^F*䉆=|-^* ‰FǺ va؋t8.PW_=t =t-=t}Ǻ vaGǺ vaGGǺ vaGqhǺ va؋hGǺ va؋GW맋Ǻ vaGǺ va؋G~~tꋆvF^F*䉆=|-^* ‰F^F*䉆=|-^* ‰F5FF;F rX%~u.NOvJNFv>NFP*vWMvWMNO+Ov NP~*vWM(ON~}~r~y|~wqVF%+҅ubVF ؀ju)vv.PVF jPNGVF jNvv1PFPGFP'ݸ$0N^Fth^G8.PVFt>~u8^G8.PVFt~u FuF^=(w^tna+G iraF؋ -^WJ‹؊F=t =t;=t6F^WJ‹؋WFVFLLRMF^WJ‹؋F΋^GHkF^G^_+}+ F^GF^GH㋇iF^ub+WJxF~| ~| ~|+)FFF|;s(NЙ!F!VF܋Fܙv^;~ҋVF#F#VFމVutVF;Vu;FuFFF|;FsNЙ!F!VF܋Fܙ;V~܋VF#F#VtKtD6^GkV~tvF؅u}؋WG^O+}##uuSF^W^G  l؋WG+^G  l؋WGVF;Vt;Ft{mvvkIteWF;FtWIVF;Vt;;Fu>0vv.I.F;Fu!VF;V}~;FwVF;V}~;FsVF;V~};FrVF;V~};Fv~u~u^G8.PF~u܃~tԋVFFVFvv_VF+FVkvvvvIYvvvvJGvvvv/J5VFNu%VFNu ~u~tVF^uG ؋-^G ؋-F^G㋇4~uhZF^na+G iF؋GFڋ^t+WJ‹؋FڋFFvvvv"F܅}F~uFFFvv"F܅7FVF؃HF+1ƺ+PǺ+P+tI㋇l㉇lG}6FlFWu+;}ۊ++;tFFlFllu vPB1=t vP-1E+uEPP6m7E+[EEREta i+va =}@>@ltJl| HlJlEJlHlEU6Jl6HlEE~uE6Jl6Hl] FvHE~u0EEv(EEJlHlEUw~tEh(C>@lt>ta~6i3PH/@lBl=tb=u=u=tP6 naH iP+F6BlNmPIP6mO5~=t =t=t6BlOuX6X`PnmP;`PHlF?PJlHlFV`Pw>HlVFHlJlWVvwlP^?PDPP3=uVPOFFF?Pu&~tFFVFPnmPnmu'~}!FV‹؋JlHlWF FFfV^댸 P>Jluj>Hluc Pq>Jlu>Hlt fPv- PO>Jlu>Hlt tPT-P-=uP8->Jlu9>Hl u2P>fu P,+Pf>Jlt>Hlt>fu P, P=tJlHlFډV܅|FV PHlFظ PqHlFօ|=~ Pu, PN=uFHlFԸP2=t P@,vvvvvv P 6Jl6Hly PPlNmPPPQPP@NmP+P>ZPPNmPP6m1`Pn6Hl#f`PTBo ?+P] /+P46BlNP+Dl-= w(6BlP*+B?u )P+Fu V8P*B?+?6>l4}5|0>Dl$|'>Dl|LHlJl>|Ӂ|W:+>6>lQ4}|EHlJl>Wl>F-= w6>l 4HlJlF|>6>l3LlVFLFu͸PFl`P봸`PJlHlFVVF+=6>l36>lx3|ƹ ==6>lP3FV6>l?3+ F V6>l(3 F V6>l3|Ǚ F VS=+=`P>Jl|>Jl|>Hlv MP(6Hl6mNl6>l2G}G<Jl|G+6Hl{PW빸~른%Jlu->Hlu&PDvnmPP6m-nmIPv7FV)F~+ҸRPvvZm|硎m뽃>Jl|>Hlv6Jl6HlNlP*RP6HlBJlHlz+:+P:+:F;\t$F\|^P6m,:+n:~>nmtnmPNmPP6mm,:NmnmGFu+/:>nmtnmPP6m5,nmH:+ :>nmtnmPP6m,':+9>^t(6b6`P6m+^`b9+96XvvPNlPv2 NlP~9+9^^u>^u|u+fF>^t fVb` F VVF`b>^_99~u~t P$NlP(FVPFPP6m*9+8>Hltt P$>u'P6h*IP6m*u8+8UP6m*F=t&=t=ujP6mt*tP6mf*~8v~P6mR*+,8~tZ8N ~ t~ uF F F n ~|n F +7mmmmm7+77+7PvH6u9>mumVFmm6mP)~|Mvv7>mumVFmm6mP)~|vvP6mK)c7+$7>mu">mu>mt 6m96m0>mu">mu>mt 6m6m6mP9)66VF=u-PbF=t*PNmPP6m(ӸP5=u6+k6~uhm%6h`Pv(mu vbP!o6+066mu*Z6+6RRumGt rP!16 51-=wT6mV^3GFna+F iF؃?u؋G؋+4vXGFGFna+F iF؋ -VJ‹؊=t =tI=t)FVJ‹w7P6m-';FVJ‹7FVJ‹؋؋+4GFHkk닋GFHkGFG*FFH㋇iF~t+VJ‹؋FF؋+4RGFGFna+F iF؋G+VJ‹؋؋+4P6m%Gt33F8.PsVF=t =t=t=vvP6m%3F؋+4P6mj%v+<36m P0e3%3^ -F؋G㋷4c=3~l6mW0NFU‹w7P6m$'=uԋFU‹7P6m$Ft }FU‹؊=t=uFU‹؋؋+4랸F2P_ v11@PG Evu0+ƹF؋WFVEֹ‹؋VFWF~ʉ>2+1>vu\0u1=u++1^m=wtK^GP" P3F^?-t^G=puŋ^P& ^P &SSS2Sd+&SSS2S6S6SS+SS+S6S6SS+SS+Snt@~|~~6m2 PV^7^w"+PPP6 :Pʃ >du N P' +P$0G0+Vuc0"0vvt^G؃+t>^?tr^?ux^G+P^G+Pu^t1^w^G+F^G+VWY^G+F^v^G+PGt+/^w^G+FVWv~_^F+[FV‹؋+^W‹؋^WtSF-+PF~-s^tG -FF~}ӋFF؀?uiF^?u=G+PvPt^G+FVWv_^6=:u7Pvo tuE7PvS u j>r}twna iFVWv_^na@ iFVWv_^na+Pv v vE4 Pȃ ;v wu u .na+ f-G*=|DG* ‹~u}.;vu)F*F va؋G*;t+3-F9v|FF va؃uFLJkF va7FF؋Fk=u4F va؋WGFVF؋VFkk%F va؋GFF؋FkF9v}FG*F=|-G* ‰F~ttatI>vaivAva-i )ta+FiVW6va~_^va F G;>ta|vaivaF3G F3GFF‹؋*㋇PFu O}+F‹؋;uEPDP:Ft*D*T +{*F+}uFE ~tE*+}E‹؃?tvvE‹7Fϸ*F+}uE >*F+E‹؃?t E‹7PvFF|ʋF+)+:EV‹؋Vt-+P-r)o)F+EFEV‹GF~|߿+eE;FtHX}tE -FF~}5DF؀?uEV‹؋;Fuԋ-+P-r(+(+'E+Eֹ‹GF|-r((PFءmãmVFGWFGF GF G G {(;(~u^ヿSu^㋟S؋+^;GtFv^w wwww F^㋇SF^㋇SHF؋F;G^㋇SHF؋F^㋇SH8EF؋G;F}'EF׹VW_OċǹF؋FǹF؋FGFFu>SuS؋+^;GtF+P^w wwww FSFSHF؋F;G~gSH8EF؋G;F}'EF׹VW_OċǹF؋FǹF؋FG&N&]+F~t/㋇SV‹؋+FwRP]㋇SV‹؃~Q㋇SV‹؋?㋇SV‹؋E uuuE ؋+4FF;S}MF<%+w%>mUE;Vu ;FuE %=uJ%>m 5WumF>F&^㋇SV‰FGF^F;S|F~~%+$vu P$+$v$+$~mG;> |F $+$> u PFF@P ㉿m $+H$^^;sp$ +$> }cAPP6 mP+ .NjG;> |Fi.P^wFF ta i9FrFiN^?tB -F+FNj؀?u.PF׹‹7G|̓F na i9FrF+QFF؋ -F+FNj؀?u.PF׹‹7G|̓F~-r+&.Nj؀?um+LJmG;> |Ծmv^?t ރF m9Frދ-m ""+ HFDF;mrD9~~#FF;muӋFƋ";~uF;muF++"naEna PEPiP1papaPPiPraPPkPPP+Ptata PPiPvax lzi| ~!+~!Ena PiPEPpaPiPPnraPkPPTP+PPAta PiPP%xvaz l|i~6!+ ~~~߃ރnu =uEE@FDV‹؋VtDu?u?=~1+6FDV‹؋Vtσ~uW raF>raF8.PуVVW_^FraVF~u5^F~|FV‹GF׋F9F؋-=w ^na+G iFu:~)^G+F^WJ‹؋^Ge^^?tŋ^WJϋ^^GƋ^G8.PЃVvvRF^뎋^^G㋇iF^t+WJ‹؋F^FM^G^F~|7FVB‹؃?uFV‹GoFVB‹؋8.PσV~uFV‹؋VFW~FV‹؋FFPF9F؋-=w" ^u;v~)^G+F^WJ‹؋^G^^?tŋ^WJϋ^^GƋ^^tF +WJ‹؋F ^F 뗡naFF-i @na^G^FFVB‹؃?uFV‹GoFVB‹؋8.PA΃V~uFV‹؋VFW~FV‹؋FF~}SFna ^^;t^?u?u -+DNj؊=tF׹‹؋WFVF׹‹؋W;Vu<;Fu7v=uzF׹‹7F׹‹7tA+I^G^;Gu6=uF׹‹؋V߹Ӌ;uG}1@FF4 %=u=u=u>nat+~uonaFFnaH iF+G*F=|-G* ‰F+PF7Pvt~tOGFFG%Fna;F}d;Fuh~t_d~t@ +F<vFvFF;F;F} c+FFn ;v}%F;Ft뱸F8.Pn˃VF8.PN˃VS+RPSRPvvRPFVS+RPSRPvvRPFVj++^㋇7V+=uE؋+7 ؋-=u+PvuS -F+}FƋ؀?u+PvEֹ‹7F͸pnaH iF+F FF+FH V‰FF F~FF;F~͋F)naiFiv Pv v^G4 Pq FFiF.na iFF V‹~naFF;F|paFdž i-dž"R"w7PWu"|FG㋇S-+P$tuՃunaH i2+Ǚ .dž020H ꍖ4‰0 W_00;.~ċ.)nai,ipa*dž00㋇i$0Ӌډ00;*|؋"|)pa-+i+PP6ipa+PPvv"G4 P葰  "w wV ,idž05na i0 ꍖ4W_na00;.|*padž00;*}0$0‹؋0㉇i0փ" "Ssn ;~w  ZS~t+P7Pvu =t}u/+PvFPuT+PvFPTu-$P i]㋇SFS^-+VvFPu+PvFPtii‹؉7iF^?ui?tsS^Ss+]+Nvvvvv v vvvd+%* P6h6vvvvv v vvv6h2 P6h+P~+F;F~F~~PhPPP9>lbt~u5v0Pv9FP0PPjF;FtFvvvH0FF~FFhbjb~^? u FF+F;F|>hbtGF= tU%F㋇0FF+=|= uFhbQ^GF~t7^7W^tF-nb^F^7_F= thb~uG^F;~sKF+F_+ <tGF;t+2++PPvPvvPP  lbFF^㋇xaFu؊W‰F%Fヿ0uFnb^㉇0"^㋇0F؃u>FnbG^Fnb^LJpbFF~}cP^G+ vPvP?PFnd~}ndƇpd-ndF؉F~undƇpd0ndndƇpdpd'~F~u~E0ndpdndF)Fƙ +McPz :FFFG؊5hu=-u2GF*+Ҹ RPFP+҉FVVFFVFVG-0= rƃ~tVF؃VF++ヿhthG|+F hvFHnFPv [vFFFF+ǙNƉFF84vVhFr|)~WvVWvV)~;vrI;vr~WvvV~v+~WvvkvvhF|t)~F;Fw;vs)~WVvPf)~FFWF+PvFljFF;FvPFGFFFN^#F^G^FFFF N + FPvv^G@tS  + FPv6hhG@tS + vGP =u +e vt+ vvx+? +o G}F;huLJh}vY^7:^G tt w)~ v+ F+(|"P=wuKNPvF|2gGヿhu͋^=auNPvF}$+=ruN+PvF}ܸP++RPv PFtG؋FFGP^GuO^O ^GGFhF + vvPP   ^GuGu+0^~ww7F^;GuGGGF ^O+Q +PPPPPvP+Pa q 0 +FGh= t= t= t= t= t=-uGF ƺ vG-0F= r~t + +PPPPPvPP   F6VF<>F 8PP( Ft ><+a vvPP  D ^Gt`^Gto[Gt PFP P^w^7Q^GuO몋^O렋F* ^GG^GuGGH؊ +PPvPvvPPF + iF%-;>ir W}+ >i>i%=uiiո) F%F>iuqPiiWƩt%GFu Fu+;Fr)FF;s؉7F E vz5uvu+F-F%F%+FF Fu Fu+;Fr#FF;s؉7 F+WvFtvPvU%F׸FfWFu+vFOuF+^g+ GFFNu+PPvPPPP+PFu Di+LiFFiFPuFe FFFFFFFPvFPFP+PF  v=Du =Ou$=Xu'=cu*v%P<vGP,L=9~-0nF܋F F܉F\G=0}d=9~\F 0‰FԃDFVF FPvvvUvFPPFPvvFPDFV+뱃DFV}+҉FVF뜃DFV}+҉FVF{TDdTD뻃TDЃDFvFP(DFvPePFPvvv3 G=tt=%tFFFF G=-uFG=0uF0G=0|v=.u=du=ou=suq=uu=xuF~u~u ^ 0G~ u~}VF؃FVF+FNjG |+~ uN+Ҹ RPvv"FFNj؋FFNj؊FV+Ҹ RPVF+FVRPFV~u-VF%+ҍV׋ڈVFFV~u-VF%+ҍV׋ڈVFFVG~t<~t3FEDFƋ؀?u~u FƋ %FƋ؀? } FƋ؀0 FƋ؀7FN}~t FNj-GEFƋ؊^ F N}^ UF F~~F ;F~FFFF~8NvF PoF;FFNtv^FPH^?uۃ~})~ 0u#v.P'FFvF PF9F|jF^GtGuGt PFP^7|F^GA^GGH؊F^GG=|%Guww7:F^GGF~t7~~ ^G;Ft~} ^O^O^GF*~G=u FG<uF+a;t++n=tGF$~ FG<uF8FFF^?u+F+F6F 8F :FF@vvT+v }>6F8F :<~^ FF OuvvPF42PvFu>4|4 4أJV++FG?uD:[UWV+;&ir468<i2PPf^_] U싆 ]UFfȋFf ȋFf]UW+VF^ Ny ؃ׅy ك{t؃_]UW+VF^ Ny ؃ׅyك=Ӌt؃_]U^FgȋGfȋFgщGW]u؋+ʋ+UWV+u&GW݊*ɋ*ɊĊ*RPQ;r WWRP+_+ƃ^+X+y Mϋ_t͊ߊ+^_]$Header: codegen.c,v 1.1 87/03/31 14:25:27 erikb Exp $K 8 e :TJ No regs available$Header: compute.c,v 1.1 87/03/31 14:25:29 erikb Exp $2T "0Nl$6Haz0~Au%D%D < +776   90   aaradfadiadpadsaduandaspassbeqbgebgtbleblmblsbltbnebracaicalcffcficfucifciiciucmfcmicmpcmscmucomcsacsbcufcuicuudchdecdeedeldupdusdvfdvidvuexgfeffiffilgtoincineinlinniorlaelallarldcldeldfldllfrlillimlinlnilocloelofloilollorloslpblpilxalxlmlfmlimlumonngfnginoprckretrmirmurolrorrttsarsbfsbisbssbusdesdfsdlsetsigsilsimslislusrisrustestfstistlstrststeqtgetgttletlttnetrpxorzeqzerzgezgtzlezltznezrezrfzrl`````|```` $Header: equiv.c,v 1.1 87/03/31 14:25:36 erikb Exp $$Header: fillem.c,v 1.6 87/08/18 10:45:01 ceriel Exp $!!!O!!!!!!!!"#&x%[&%"%%#%F#V''n'}''''h''''''' ) )-)-)J)A) ) )S)J) ) ) ) ) ))O*O*l*l*l*x*i*i*l*O***** rCan't open %sBad format %s%sunknown instruction byteNo table entry for %d%s: Unknown opcode %dhol%dbad word sizebad pointer sizetoo many parametersmes 3 not allowed heremes 3 not allowed hereBad type in register messagetoo many parameters.globl %s .globl %s %s: No table entry for %dunexpected EOFbad argument type %dstring/identifier too longI%03x%x_%d%d_%s%dbad BSS size%s: .zerow %d/2 bad BSS initializer.word %s .word %s %s %s = %s %s: %s: .word %D %D+hol%dbad icon/ucon size .word %d,%d bad fcon sizeWarning: dummy floating point constant(s) .word 0,0 push bp mov bp,sp push ax push ax sub sp,#%d sipush si mov si,%D(bp) push di mov di,%D(bp) jmp .sdret jmp .dret jmp .dsret jmp .sret jmp .cret .define %s .text.data.data.bss$Header: gencode.c,v 1.4 87/09/03 15:01:50 ceriel Exp $/300 1'11wCan't create %sWrite error on output%s%D%s%s%D%s%s%s%D%s%s%D%s%s$Header: glosym.c,v 1.1 87/03/31 14:25:40 erikb Exp $$Header: main.c,v 1.2 87/08/18 10:32:32 ceriel Exp $Unknown flag %cUsage: %s EMfile [ asfile ]Bombed out of codegen$Header: move.c,v 1.1 87/03/31 14:25:42 erikb Exp $$Header: nextem.c,v 1.1 87/03/31 14:25:43 erikb Exp $#:):#:#:#:):#:#:#:#:):):#:$Header: reg.c,v 1.1 87/03/31 14:25:45 erikb Exp $$Header: regvar.c,v 1.1 87/03/31 14:25:46 erikb Exp $$Header: salloc.c,v 1.1 87/03/31 14:25:48 erikb Exp $Out of memoryString table overflow$Header: state.c,v 1.1 87/03/31 14:25:49 erikb Exp $$Header: subr.c,v 1.1 87/03/31 14:25:50 erikb Exp $1FFF2GFHHHHError: ,L,,,'L'L, ' , "$, !, "%,"*,"+,,,-" ,,' ,' ')  ),,' ,'  ,' ')  ),-H !,"$,"%,"*,"+,!,"$, "%,!"*,""+,#!L$"$L%"%L&"+L'"*L(!'    25A  6  aI 6 9  L)L*"$L+ !L, "%L-"*L."+L/, ! 0   G!$ K 0  L!" 0  !# 0   L!' # 0 ' #  LA# 1 ##  A$# 1 #&#  "+-q! A%! 1 A# 1 ##  A$# 1 #$#  "+-q A%! 1 #%!  A*" 1 #*"  A# 1 A$# 1 A%! 1! A*" 1" A+$ Q 1# a# 1 2$ a$# 1 2% a%! 1 2& a*" 1 2( a+$ U 13 24 !'     25A   6  AMq q:L10Mq q: AMn n;L10Mn n; a# 1 2, ## :  a$# 1 25 #&# :  "+Mq!qC a%! 1 26 A&# -o:,0bcB !  0,0deA " 6 1,1fgA !  0,02"A  " 6 1,12")#$ 1  6L10np )#$ 1  6L10st)%& 7 9 uL72xy )%& 7 9 uL72z{A '  6 ,8A ( 6 1,1fgA  ( 6 1,12"B))*  0,0|}B ))*  0,0qr)+, 7 9 uL72xy ,)+, 7 9 uL72z{A -  6 ,8A1 .  ,0dA1'1 /  ,8fA 0 9L98A1'1)12  ,8 3 L98A1'1)12  ,9 4 L98! * 0 ,02AI5*6 1  6L10G! 7 0 ,0A)78  6 L10A- 9 1 6,1Gai:;<=  6 9 L21! > 0 ,0A)?@  6 L10A- A 1 6,1Gai:BC=  6 9 L21- -` -Q A1'1': D )  ,8f E L98A1'1': D )  ,9 F L98-j mI EjD ! G 0 ,0A- H 1 6,1Gai:IC=  6 9 L21 J   K  ! L    M   N  ! O    P   Q  ! R    S   T  ! U    V   W  ! X    Y   Z  ! [    \   ]  ! ^   ".,;"/,<"*,="+,>"0,?"1,@! _  0,0!,A" ,B".,C"/,D"*,E"+,>"0,?"1,@! `  0,0!,A" ,B".,;"/,<"*,="+,>"0,?"1,@!,A" ,B! a  0,0""B2/,FB*/,GB2.,HB*.,IA. b J,KfgB20,LB21,MA0 b J,NfgA. c  O,PdeA0 c  O,QdeB.2,RB.*,SB/2,TB/*,UB.$ d  O,V2B +,WA*,XA !  0,0deA*,YA " 6 1,1fgB2.,ZB2/,[B2+,\A. f J,KA ( 6 1,1fgA  ( 6 1,12"! _ 0 ,0g   $ K h  2" i  "! ` 0 ,0j   $ K k  2" l  " : $ K : " :  m   n  ! o   ,:L::l::::::: ]^ :_)p 2! :_Iqr  !s t  !$ K u  A$ uv: w  x y  $ K z  { |  { |{ |  '`{ }  ~ |  ~ |~ |  '`~ }     $ K  $ : :  mI q ' mIDq,'-6 ,'-) ,' mIDq,'-6 ,'-) ,-6 -) s y  $ K  ! t  !$ K  ! t  !$ K    $ K !#  !' #  #   ' #  mA h #   ' #  #   ' #  #  ' #  !#  !' #  !#  !' #  #  ' # !# a !' # b #  a ' # b I GI o #  a ' # b #  a ' # b # a ' # b !# a !' # b !# a !' # b #  ' # !"  A")  "  "I  !"  ' mF Dn ,'-5 ,'-( ," i  " l  "  !"  !"  " !' # b ' # b F GF o ' # b ' # b ' # b !' # b !' # b ' # a34 9 ,2-% -% a34 9 ,2A34  A34  A34  A34  A34  ! ,8"0'0 ,8!)1L8r"0'0)1L98r!5 1L8qA'',0mE E% mE E% !'':L0A'',0B  0,0deA 6 1,1fgA  0,02"A  6 1,12") 1  6L10np ) 1  6L10st) 7 9 uL72xy ,) 7 9 uL72z{)À  !   A  0,0deB 6 1,1fgA  0,02"A  6 1,12")ǀ 1  6L10np )ǀ 1  6L10st)ɀ 7 9 uL72xy ,)ɀ 7 9 uL72z{)À  !   B  0,0deA 6 1,1fgA  0,02"A  6 1,12")΀ 1  6L10np )΀ 1  6L10st)Ѐ 7 9 uL72xy ,)Ѐ 7 9 uL72z{)À  !   ! ,02A)Ԁ  6L10"h)À  !   ! ,0A- 6,1Ga:;<=  6 9 L21! ,0A- 6,1Ga:ۀ;<=  6 9 L21A-)H 1 6,1hA-)H 1 6,1q!)G 0 ,0hh!)G 0 ,0qh! 0 ,0hh! 0 ,0qh! ^ ,8A3 6 ,8!)  !)  !-'c  ,! ^   A3 6  - M ! 7  -,0! 7  M,0!)77  -,0!)77  M,0!'d  -,0!'d  M,0! 7  -,0B6)1'1' 0 ) -Le!)77  -,0B6)1'1' 0) ) -Le!'  -,0B7)1'1' 0' ) -Lea&I( 6 9 ,2a*I 6 9 ,2m9 p m9 H  ,_A  6    A  6    B':  ,""A':  ,""A5 ':  ,2"A 5':  ,2" ,8-  ,8B )  0,0deA ( 6 1,1fgA )  0,02"A  ( 6 1,12"I+, 7 9 u,7I 1  6,1 ^ ,^! ,^    !   B':  ,""A':  ,""A5 ':  ,2"A 5':  ,2"!': 0)  ,!': 0)  ,!': 0)  ,!': 0)  ,!': 0)  ,!': 0)  ,A 0) 6 ,1A 0) 6 ,1A 0) 6 ,1A 0) 6 ,1A 0) 6 ,1A 0) 6 ,1aI  9 ,2aI  9 ,2aI  9 ,2aI  9 ,2aI 9 ,2aI  9 ,2A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I   ,A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I  ,A':I   ,B':I   ,A':I   ,B':I   ,A':I   ,B':I  ,A':I   ,B':I  ,A)   B)  A)   B)  A)   B)  A)   B)  A)   B)  A)   B)  A)   B)  A)   B)  A-D,1A-~D,1A)ƀ  A)ŀ  A)ƀ  A)ŀ  A ) I  A ) )  i  i  i  i  A)  B)  A)  B)  "8)   g!9)   g" )  fg"8)   g!9)   g" )  fg")!   g!)"  fg")!   g!)"  fg")!   g!)"  fg")!   g!)"  fg # A) $  B)%  A) &  B)'  A) (  B)(  A) )  B))  A) '  B)&  A) %  B)$  ! 0 $  ! 0 &  !: 0 (  !: 0 )  ! 0 '  ! 0 %   *  !9 +  ,8L98 ,   -   !5 A54  .   /  "'  0  GB''  )00   ,f 1  ""! 2  AI3  -" '] 4   !)q4   A;iq4 6  A 5  6  a<I5 6 9  A 6  6  a<I6 6 9  !L00!=L00A1010 ^ 7  ! 7   A;I7 6  A''L01''''1072 ^ 8  ! 0^ 8  )9:  ;   < , =  >  ,f ? , @ ,! A   B  A>5 C ,8a<>5IC ,8-X ! D  ,0! E  ! F  ! G   H  ! I  !0'0,!. J  O,Ofg!&0 0,!&0  0,!2,g!0'0,!0 0h K ,2!=0 K ,2 0,G L M N L M L L O M M N P 1 Q 1 L M L M R  S  T  U  V  V  0 W )XY )XY  : 0h W VZ[\] )J^  O  0O ^  _  0 W `Za[b]  cdef g h@ijkl mn o0 p@qr  $   &%'     ( $" !        "  ,, "( 34! 7!  ,<=":. <A!DEH H:IJHHNOMPH"HSRT""/?Z\[^]`_Za\^2`Z2\"ihkjmloqirk!"Zh\v^w`q^r`"^h`v~`~\$ $ 2Z\ $"$\ G V"eV h $  " D "HI D"DD D %* #  "" % %      Z  \H"`2^\\<Z\hZ\;\S%T(T*T0T5T=TATCTETWT_TaTdTnTxTTTTTTTTTTTTTTTTTTTUUU%U/U9UCUMUWU^UhUrU|UUUUUUUUUUUUUUUVVV$V.V8VEVOVVVaVlVvVVVVVVVVVVVVVW WW#W-W8WCWMWXWcWmWtW{WWWWWWWWWWWWWWWXXX#X(X,X:X?XGXLXQX`XeXiXmXrXwXXXXXXXXXXXXXXXXXYYYY%Y3Y9YFYKYWY]YgYoY~YYYYYYYYYYYYYZZZ&Z-Z6ZBZMZWZ`ZgZqZ{ZZZZZZZZZZZZZZ[ [[[&[/[8[B[L[V[`[j[t[~[[[[[[[[[[[[[[\ \\\$\.\6\A\K\V\_\i\t\~\\\\\\\\\\\\\\]]]%]0];]E]K]R]]]c]j]p]w]]]]]]]]]]]]]]]]]]^^^%^0^=^K^W^c^n^u^{^^^^^^^^^^^^^^^_ ___)_3_>_G_V_g_t_}____________ ``"`-`9`C`M`X`a`k`u`````````````` a aaaaaaa"a%a(a+a.a1a4a7ax@ @@ CC[xZA 8  ` ``(<@ [  [[`xcCC @@             !  " & &("&   + -./0:; > ?@BC V W XY    !             6     V5?2 =@2 5@2 ?52@=2fde&fgAfAde9de222A2 2" A" |   2 A 2  E<I I F FFIICA\A!G',16;:@9CLFwO#KO$NO%QO'WN#gN$jN%pN'y&H%H$H*ƀ̀ҀVH1K%K8?6=>!'-3M9JI:pF<Hq>GqS_' nfoihs|hoāp% ׁ"p$*4>JTp*ao}p1s%eςcd+4D%Tdt*85`% -@`*>T`8jTQ%zQ*f-%-*xY%Y*U%tU*Ej'Ej6j%Fj*VElkElzl%l*bR.%.*Z%|Z*k M IEkEmJm%&m*6\*KfS8[x_*g_o_8wP*PrP8,*,,8T*TT81*1\180*0080$ #(-.OI&Y& i2gy~=++,2,L,f,,,,+f,,,,--,,--,,--j---^SbStSxS~SSSSSSSSSSS($Header: table,v 1.17 87/08/20 15:46:14 ceriel Exp $#(bp)()(bp_)()+41: mov ,4()loop 1b2+2call .loicmp ,#2jne .unknown+2+pop pop (bp)pop pop ()pop ()pop ()pop +pop ()pop pop call .sti()+mov ,add ,add ,add ,adc ,add ,adc ,call .adisub ,sub ,neg sub ,sbb ,call .sbimul mul call .mli4cwdidiv call .dvi4call .rmi4neg sbb ,#0sal ,#1rcl ,#1sal ,cljcxz 1f2: sal ,#1rcl ,#1loop 2b 1:sar ,#1sar ,#1rcr ,#1sar ,cl2: sar ,#1rcr ,#1div call .dvu4call .rmu4shr ,#1shr ,cl2: shr ,#1call .adf4call .adf8call .adfcall .sbf4call .sbf8call .sbfcall .mlf4call .mlf8call .mlfcall .dvf4call .dvf8call .dvfcall .ngf4call .ngf8call .ngfcall .fif4call .fif8call .fifcall .fef4call .fef8call .fefinc dec add ,#add ,add ,add ,-sub ,inc inc (bp)inc dec dec (bp)dec call .zrf4call .zrf8call .zrf1: push bxsar cx,#11: push bxadd ,add (bp),adc (bp),sub ,#sub (bp),#sal ,#1,clsar neg neg (bp)(bp)sbb (bp),#0add (bp),#and and (bp),or or (bp),not not (bp)add (),add (),neg (neg ()inc (inc ()dec (dec ()),#add (),#and (and (),or (or (),not (not ()add (add (),neg (neg ()inc (inc ()dec (dec ()),#add (),#and (and (),or (or (),not (not ()add ,adc +2,neg neg +2sbb +2,#0add ,#and ,or ,not call .ciicall .cuucall .cifcall .cufcall .cficall .cfucall .cffcbwand ,and ,and ,and ,and ,and ,mov cx,#call .andor ,or ,or ,or ,or ,or ,call .iorxor ,xor ,xor ,xor ,xor ,xor ,call .xornot not call .comrol ,#1rol ,cladc ,#0ror ,#1ror ,clneg cxadd cx,#32and ,#1and ,#1call .inntest ,#je jne shl ,clcall .setmul sal ,#1sal ,clsal ,clmul 4+add ,sub ,mul 4+call .iaarcall .sar2call .isarcall .lar2call .ilarcmp ,je 2fjl 1finc jmp 2f1: dec  2:call .cmi4call .cmu4or ,sub ,sbb ,call .cmscall .cmf4call .cmf8call .cmfjb 1fjge 1finc  1:jg 1fjne 1fje 1fjle 1for ,#1 1:cmp ,or ,#1 1:jae 1fjbe 1fja 1fjb ja jbe jae je jne cmp ,#cmp ,#1:cmp ,cmp ,cmp ,cmp ,je  1:test ,test ,testb ,#testb ,#test ,#cmpb ,#cmp ,#jmp jl jg jle jge je jne call call ()call .lfr6call .lfr8call .ret6call .ret8pop add sp,#add sp,add sp,call .blmjmp .csa2jmp .csb2call .dupcall .exgmov bx,#jmp .gtomov hol0+4,#mov ,.ignmaskmov hol0,#inc hol0mov ,spmov ,.reghpcall .moncall .nopcall .rckxchg .trppc,mov .ignmask,mov bp,mov sp,call .strhpcall .trpadd ,#xorb ,mov ,movb ,movb ,lea ,xor ,xorb ,or ,cmp ,#0orb ,cmpb ,#0push push .data 1: .word  .textpush 1bpush simov si,spmovb 3(si),#0pop sipush push bppush axlea ax,xchg 2(si),axCCalahblbhclchdldhaxcxdxbxsidibp$Header: var.c,v 1.1 87/03/31 14:25:58 erikb Exp $ixddddddddddddddddd ee"e-e;eBeLeZegepezeeeeeeeeeeeeef fff+f9fCfIfVfbfkfvf{fffffffffffffgg gggg$g)g2g:g@gEgJgOgUg\gcgggogug{ggggggggggggggggggggggggggggggghhhpush axretmov bp,sppush bppop bpmov sp,bp.textxor ax,axpush 4(bp)pop bxpop sicbwmovb al,(bx)pop axxorb ah,ahmov ax,#1call _callm1add sp,#16mov bx,4(bp)push 6(bp)mov -2(bp),axI0013:call .cuumov ax,-2(bp)add 4(bp),#1or ax,axjmp I0011mov bx,8(bp)push dxmov cx,#2mov bx,#2I0011:I0012:push -2(bp)mov ax,4(bp)mov ax,-4(bp)add sp,#6and ax,#255push bxmov bx,-2(bp)loop 2bjcxz 1f.word 4112mov ax,(bx)mov -4(bp),axjmp I0013.datamov bx,6(bp)mov (bx),axje I0012.word 8224.bssmov ax,#2call _lencall _callx.word 28494.word 0push -4(bp)movb (bx),almov bx,axmov -2(bp),#0I0016:.word 514.word 257mov push .word pop add 4(bp)-2(bp)(bx).define .globl movb xor jmp cmp 6(bp)-4(bp)-6(bp)#16_callm1call 8(bp)xorb and sub -8(bp)jne .cuulea inc _M+10#255loopjcxzax,#bx,#cx,#ax,bx,cx,dx,si,di,bp,axbxcxdxsidibpspdec neg _execve,#0Error in cg: buffer too small  AAAAAABBBBBB JJBJJhhhRStack overflow p0O܋@ãPSQ1PH+oMM+aMM+YM>t P M:Mu (t+ƀtt*PP<= vG M\u6u (t+<un\ ~}V5POVE/tu 6(t+*u/==u!=>u7=|uTl >t@Ƙt0u 'uJF=u 5u o't+=<t#~@=!t=&t3&u>t>PXP?Ebt"  |t  u &t+>u>tK?Ƙu~u .&t+>u5>t>Ƙu,u %t+>u>t>Ƙuu %t+>u>tU>Ƙuu 8%t+>u?>t>Ƙ u6u $t+>u>t=Ƙ@uu $t+>u>t_=Ƙuu B$t+>tL;s>t=Ƙu #t+>u>uPP#u؃uP9u;s Ƙtf#t+>u>tEEy+R$EPu'Mdždždžu "t+'tyPCP7v P"EUS+ uV|ƙu ""t;'uk uU\uu !uc_+čdž dždž0tƘu !t+xtXu%džu i!t}zdžrRPE9s Ƙu u+V|xltLu!u t+"PPEP^+D$u O t41u, tۀ<tفu-+*uu t+/u$HDDPY!FFu t+;~t% u@vP vP FFFvvM!FCt̓\uVu =t+ u'tfu_WWLǘVVڈF9vuVv FtuB>u6=bt =ft%=nt =rt=tth c ^Y T O+FƹU‹u At+>t F~|*{B+tEE%ZB~u >u+B&~} PO:~tv7<P-P3U;6<P8PAJAFPK>(t PmFPA+vA(((;Ft v:A+MA +P;(((㋇Vp|XA+A~u>(tbP(L(㋇Vp} +P^㋿V*q*(;Ft v@@FEtF~#p%p+F؊D#u(;FuNF@L@Fpヿ*tFn@ǹF؊DFu+pFp%V ヿhuO}+PF+?vvt^^(GFpGH㋇*VډLJ*O}޿㋇hUVډLJhO}*?+_?*.vtJEF؋㉇hO}F؋㉇*O}^GF(GHpA?+?F=^uJ=,u =%u=&u=*u=+u=-u=/u=<u=>u4=u8 =|u=uZ=u=u= u6= u"= u= ul}u=t~ u~u~uP:~u!~ tv vu5>~ tv vu5|>U*>v vu5F>UFV ۋU+FV ΋UNt뺋UNt릋U;V |;Fr+;Fw |;FwzU;V }ًU;V ~;Fs;Ft뽋U;V }뱋U;V t륋U;V u;Fu딋U#F#V U3F3V U F V }u=u\~ u~taJV F+<F=!t+=-t=~t;FrBFuVF+FVFVFVF+FVމFVVF;V}FuF'9FrXvvFF㋇RP;)FVvv^㋇RP;9V|;Fr>VF+FVFVFVF;V|;Fr>VF+FVFVFVF;V|;Fr VF+FVFVFVF;V}ًFFvPvvv^+ҸRPvvvv.;RPi;fPP+::FP5F=uF:+T:FP =u=u=tx!P 3pvPu 3v8QtE@;6/1P;+FP=tvo9Pvuwv7E-= vu P Jo96$u$92~+#uFP=uPvfFv+7~tI^G-=w;{/r96u!o296u`2vu uea96ut88&FtvF;&u>vu>ttz8+ 68FPF=t=uFF0Pg Fz1x~t^FP~u+xPvuuvCP )vGrr㡂F7H7FFuaP0u t+(uKPFPeF=u0v5u t+W/<udž}dž!P~~F+P+PvPv P7 6+6>| ~Pl Ƈr6+X6r㡂;~ ؀rtP/ Z6+6/r㡂;~ ؀rt PR rp6+5[/r; P5+5(u/55 FuP+Pv vt3t }t+3Ft.}5+>5t0PVe t}t] E EV3P[y.+54FHFP=uFM.44FFFu st+V-)t+ :P4+Ƙ^FF9Fr yPE>t^GEF!5^7u 5PnF9Fs׃V,)u+Fs,t^u t+V,<t'FƘ^FF9Fr XPyu ;uS3ut#vttuPEF؀?u؊؀F^?u؀F^?t~؀F^?ti؀F^?tT؀F^?t?؀ F^?t*؀@F^?tFP P PuEFDFDF DF D Dk2+,2F=t&߃7vuF+Ћ™62+L1PCFFu u@<u z t+ u5FF Fu B t+FF\F9vtVvFu t+*u4vFF Fu t+FF/F9vtI+F9Fw ǘ^F>tN^vFPbFt VVڈF9vu&FV+BVFFFF;sVvF^FVFVڈuN<u\uS/u~t;<u4FFǘ^Fu uǘVVڈF9vuVvb Ft] t+tVFFFvv FFH^F/+E/G= t= uF< t< t;uGF=u=t= t= uGF< t< t<u<t< t< uF=t+.+.v66P$ P .+. PFPv$ PH  P$ P.+m. PFPv$ P  P$ P{.+<. PqFPv$ P  P$ PP@.+. P6FPv$ P * P$ PJP.+-F=>tC~=+t/d=!t=%t=&t2=(t =*t+-߸ڸո и ˸ Ƹ 뼸=,t=-t=/t=:t=<t=t=?t=^t=|t=t=tw=t= t= t= uy= tX+,tPk-+,p=t v),HvH>()t)Pٸ,p=t9=t4=t =t=u7FP#vvv,hvut뤸<,hjv[, 6Q;F^lFP7lFPv*HPvvvvFtp=vPFuj+ +FFFFJv?PHP<p=t=t=t&=t=uJv?PFtuJLnFPaL>(:t :PnFP*^u?tVFVF^W++*v' +*Npv@=tC=t,PFt-u BFPvv,Pvtp=uN*+c*p=t=^*+H*p=t=t*+5*p=f*+'*p= X*+*p= t=t=@*+*p= 2*+)p-= wj *+)p-=w ^)+)>(t Pp^W)+t)v)b)  u  2P P6 ~tO;6 v~ Pi F)6  GG^FNuF    ) (~ F sGF3FF=uۋF*FG?u+FFF F؋Fu/~|cvvvF^^^FF E+&> tEEW_P#u+& E> R&> }t FSD$F =6 2$> u  +M&EEW_+%vPvvu+&^F%VFWFP4"Fu+%^FG^FuN^/FF^uøL%FF~u@F ~tet~ tRv GFPPvBt2Ń~t^?/tۋ^?tFPv^F7u+%FPPvt FFrv"FEtEP6vu ~ tOFE^F+U$u+$FEFEE'$> uS+}~bEPuu tN}~HElu=E~ut(뭋EE9r}t+Fu}tÃ~t} t u5t?t#B E+_#/Pvuu^?t ?/u2;u, $}uF+BRPF/G#uป +">$t P+ #+"r㡂;~ >$t PMr㋇r+""v3Fu+F""VFFFuG^FNuF"+@"vvuFuF^""~^GFs~GNu"!^?u)fP#+ljnu^7^7^vr&v^GFsvFOuF!+]!P P$ PfPx!8!vvPTPPv3O!+!F=bt=dt=ot=ut=xt+)!  ~vFF"F G=0uF0GF F!=9!F G-0F=0}ڀ=suX=cuFFF/=luVGP;FtPt4FOFFvRPFv_V+ЉV(PFuȀ=%uF Ћ^FFFN^F^FuNG=%uG^F=uF+FFPvPPPv+bFPvvFF~>~FGuFX+F;u G?u++N+++GV;uE=u+~G?u+F-~G?uOFGuF` ~+FN~u~u~&~}VF؃FV|YFR}N؋~}BFF%f~}FfV9~| )~FVF~ |Ջ^ NǙRPvvr؊ FNǙRPFP~uӃ~u̓~t N-N0+o }ul r++MF=t =t=+PPW\++PK+ vv^7^ |&++vv^7;Fu+F=t%=t'=t"+Pv|FF tЃ~tvvj}~t+Pvu'렃~u5P++RPW} W{Pv|}eFD<^77+E5^zP"x| ~n xGp ;^_?-u6^_t*^G@F؀?-uFvNF~FPFHP6&|<+F=t=u^?>(=} ^6z~ PFP+PWuu¸ P6z Pt vdW^F=Iu~=-t'=Ct1=Dt3^GP Pv ^Ƈib~؀<uӋ؊>tG=u=u8F G~+PvdPPv+PV:P /==tv e^?uv~~;|~I| PF+x؋VډG;>||6xFx| >  u|x؋Fx؉7Gvء xIFPl ^?t P>l @~@PPl @>l |6Pl ^?uPvu}u] E E=MuY=Pt=Ut++9"Ǻ -0^^0}ً+SPP P\xL8Fdž>uD6qPfP;vuF?uu t74[;vuQF u_u+#tNj;u F;uF>t66PsP ;vuF?uXu t+*t$>u;vupF/;vu_F*;vuCǘF>t;vu&ǘFu 2t+/u@>t;vuǘF$u u^u t+ u5t7*uE>t;vt+";vu`F/ǀt'u-PP PP/us<-=vV;vuǘFndž;vuǘFu t+ tou^\uN;vuǘFu t+ u  'udžt[;tR;vu;ǘF utZuƒ.u>;vuǘFu t+>uƒet;vujǘFu vt++t-u4;vu,ǘFu 8t+>u;vuǘFu t+>u[;vuǘFu t+xtXuA;vulǘFu xt+>u>u;vuǘFu *t+>ul >tǘu u t+>u>tǘuu rt+>u5>t=ǘuiu t+>u>tǘuu t+>u>tǘuu |t+>u?>tGǘ usu *t+>u>tǘ@u!u t+>u>tǘuu t+>tL;s>tJǘu :t+>uPPqt6؃t.Pt#tu;vuF?u܋u t=>u;vu9ǘFuEu+;vuǘFt/u ,uD t6uP߃uuPX߃+>t|uD uD|dFu Ft+FPF~(uWFD teP^7FPP P|F~t^tFFPv^ãwV PP P)F؉wD tWM|DFDFL FPvWF^Gvv`^ã+ u]G=Ft=LtFPCރ 6DD\"6D@PPtĸ P+RPDt{D뢸 ^_GWeF^_GF}^tL^%FFFHF؋F^?tKV֋ڈF9~u WVaFӋ^V֋ڈFF9~u WV6^?txF^FF@PV  +E x 8 >:F]g ]t]O}t u  > ~>>$ + ^_D,B,,+P)P(P>B,,sB,B,+ P܃D,D,u!6,F؀<t< t<uD,9>D,t(^wPۃD,LJ,1D,9>D,|,r +3 ~u>B,,sB,B,Ft2gǘB,B,F@P)P(PHu t"iϋuu+#t>B,,sB,B, tu >t+*u>B,,sB,B,//~uF>B,,sB,B,+ PۃD,>D, | PڃD,B,,G>B,,sǘB,B,$>B,,sǘB,B, Pڃu dt+u;u\uY>B,,sǘB,B, 3PKڃu t>B,,sUǘB,B,P+ uTPgك>B,,sƘB,B,;t>B,,s<fPك⸇Pكt+u$Pكu \t+F;u~tg>B,,sXSPVP=(uU(= ua="uv='un>B,,sO=,u=/u=u۸Pg؃>+D/uuu tJG9‹u t$<uumu++*t/+vu 5t uP׃v+<t܁tփ\u,u t+<u/u)u t+*u5t^urO+~ |t~}nF&'[= tP= tK= tFrJ(E3@:;H6P1S,V'Y"\_beh F&&eF=t= t~= t=t=t=t= t=t=t=t=ti= t= t= t= tR+cP>+vv!PP+vvPP++PPPPPvP+P+_+PPPPPvPPn~>FJ,VFP,R,F L,PPFtFR,P,+vvPPH +PPvPvvPPF+~F%-;>~r W}+>~>|%=u~~ոaF%F>|uqP|~WƩt%GFu Fu+;Fr)FF;s؉7F E vz5uvu+F-F%F%+FF Fu Fu+;Fr#FF;s؉7 F+vFtvPvU%F׸)FfWFu+HvFOuF+^g!+ GFFNu+PPvPPPP+PFu X,+FFFPuFX+PPPPPP PPiF>H,|tH,أ^,^R,P,FV~t^WVF++PPvPvvPP+FJ,F L,F N,FP,FR,FT,vvT+v }>J,FL,F N,P,~^ FF OuvvPFH,F,PvFu>H,|H, H,أ^,V++FG?uD:[UWV+;&rH,J,L,P,F,PPf^_] U싆 ]UFfȋFf ȋFf]UW+VF^ Ny ؃ׅy كt؃_]UW+VF^ Ny ؃ׅyك]Ӌt؃_]UWV+vTN^y ؃ׅy كt؃T^_]u؋+ʋ+UWV+u&GW݊*ɋ*ɊĊ*RPQ;r WWRP+_+ƃ^+X+y Mϋ_t͊ߊ+^_]\ijnon-ascii '\%03o' readgarbage char %cgarbage char \%03ofile specifierillegal charactercharacter constant too shortnewline in character constantcharacter constant too longstringImpossible character classnewline in %send-of-file inside %sgarbage at end of line%s missing%s deleted@8__ x$Header: Lpars.c,v 1.1 87/08/19 11:26:04 ceriel Exp $% by 0/ by 0    "&*.26:>BFJNRVZ^bday mon dd hh:mm:ss year JanFebMarAprMayJunJulAugSepOctNovDecThuFriSatSunMonTueWed%s %s %d %02d:%02d:%02d %d %s: unknown control#line without linenumber%s: unknown controlillegal # linebad include syntaxcannot find include file "%s"#define: illegal macro nametoo many nested #if/#ifdef/#ifndef#elif without corresponding #if#else without corresponding #if#endif without corresponding #ifillegal #ifdef constructionillegal #undef construction#define: bad formal parameterformal parameter buffer overflowformal parameter buffer overflowformal parameter "%s" already used#define: bad formal parameter listredefine "%s""%s", line %d: %s (warning) CRASH fatal error -- !!!!!p!p!p!p!p!p!p!p!!!!!!!p!!!p!p!p!p!p!p!p!p!p!#####################################    # & , 3 ; @ defineelifelseendifififdefifndefincludelineundefmaximum identifier length insufficient__DATE____LINE__0__FILE__defined.unexpected EOFmissing #endifunexpected EOFOut of memory %0123456789ABCDEF@./usr/includeuse: %s [options] [source]%s: no source file %s stdinillegal option: %cidentifier missing in -D%s1malformed option -D%smalformed -M optionmaximum identifier length is %dminimum identifier length is 8/8*?*?*?U;E8E879%s 1 "%s" #%s %d "%s" #non-ascii character readmacro %s is recursivemacro %s is assumed recursivemacro %s needs arguments10"(macro_func)actual parameter buffer overflowargument mismatch, %sactual parameter buffer overflowactual parameter buffer overflowactual parameter buffer overflowactual parameter buffer overflowactual parameter buffer overflow(getact) too many actualsactual parameter buffer overflowactual parameter buffer overflowactual parameter buffer overflownewline in stringactual parameter buffer overflowactual parameter buffer overflowactual parameter buffer overflowunterminated macro callactual parameter buffer overflowunexpected EOF while skipping textidentifierstringfilespecifierinteger!=&&<<<===>=>>||erroneousbad token`,Stack overflow | This is the C run-time start-off routine. It's job is to take the | arguments as put on the stack by EXEC, and to parse them and set them up the | way _main expects them. .globl _main, _exit, crtso, _environ .globl begtext, begdata, begbss, endtext, enddata, endbss .text begtext: crtso: mov bx,sp mov cx,(bx) add bx,*2 mov ax,cx inc ax shl ax,#1 add ax,bx mov _environ,ax | save envp in environ push ax | push environ push bx | push argv push cx | push argc call _main add sp,*6 push ax | push exit status call _exit .data begdata: _environ: .word 0 .bss begbss: .globl endtext, enddata, endbss, _end, _edata .text endtext: .data enddata: _edata: .bss endbss: _end: .globl _main, _stackpt, begtext, begdata, begbss, _data_org, _exit .text begtext: jmp L0 .zerow 7 | kernel uses this area as stack for inital IRET L0: mov sp,_stackpt call _main L1: jmp L1 | this will never be executed _exit: jmp _exit | this will never be executed either .data begdata: _data_org: | fs needs to know where build stuffed table .word 0xDADA,0,0,0,0,0,0,0 | first 8 words of MM, FS, INIT are for stack | 0xDADA is magic number for build .bss begbss: ebcmp.s#_bcmp _bcmp _bcmp: cwd iv 1 I0016 jl I001C #2 #2 je I0016 I001C: jl I001B je I001C I001B: jmp .dsret bsearch.s#_bsearch _bsearch _bsearch: #0 jbe I0012 shr 1 mul 10() 12() () I0016 jge I0019 shr 1 I0019: 10() , 1 shr 1 jmp .dsret bzero.ss#_bzero _bzero _bzero: cwd iv 1 or jl I0016 () #2 jl I0015 () I0016 I0015: jmp .dsret ctermid.s#_ctermid _ctermid _ctermid: _1: .zerow 10/2 or I0013 #_1 _2 _strcpy .s _2: 25647 30309 29743 31092 .word 0 .text cuserid.s#_cuserid _cuserid _cuserid: _1: .zerow 10/2 or I0013 #_1 _geteuid _getpwuid or I0016 () () _strcpy jmp .dsret execlp.s#}_execvp _execlp _execlp _execlp: _execvp .c _execvp _execvp: ,#104 _1 _getenv or I0023 #_2 I0023: cmpb ,#47 I002A #_3 I002A: 58 _index or I002C -100() _strcpy I002D I002C: -100() -100() _strncat 1() I002D: cmpb -100() je I002F _4 -100() _strcat I002F: -100() _strcat -100() _access I0029 _environ -100() I0029: or I002A _errno,#2 mov ax,#-1 .ds _1: 16720 18516 _2: 12090 26978 14958 29999 29299 25135 28265 _3: _4: .word 47 .text ffs.s.s#J_ffs _ffs _ffs: or I0013 #1 I0018: test #1 je I0016 sar #1 I0018 jmp .dsret fgetc.s#W_fgetc _fgetc _fgetc: testb 4(),#24 je I0013 -1 testb 4(),#1 I0016 -1 2() jg I0019 testb 4(),#4 je I001C () _read 2(), I001D I001C: 024 6() () _read 2(), I001D: 2() jg I001F 2() I00112 or 4(),#8 3 I00112: or 4(), I00113: -1 I001F: 6() 8(), I0019: 2() 2(), testb 4(),#4 je I00115 I00115: 8() 1 8(), jmp .sret fputc.s#_fputc _fputc _fputc: testb 4(),#24 je I0013 -1 testb 4(),#2 I0016 -1 testb 4(),#4 je I0019 () _write 2(),#1 I001A I0019: ___cleanup,#__cleanup 8() 1 cl, 8(), 2() 2(), 2(),#1024 jl I001A testb 4(),#128 I001A 2() 6() () _write 6() 8(), I001A: or je I00110 jle I00112 2(), je I00113 I00112: jge I00117 or 4(), 8 I00117: or 4(),#8 I00118: -1 I00113: 2() I00110: al, jmp .dsret getcwd.s##_getcwd _getcwd _getcwd: ,#82 _1: .zerow 128/2 _6: .zerow 16/2 _7: .zerow 30/2 or I0013 _errno,#22 _1 -30() _2 _stat -1 I0017 I0017: -2 61440 16384 je I001D I001D: -7 -80() _3 _chr -1 I00110 I00110: -60() _4 _stat -1 I00113 I00113: -5 61440 16384 je I00116 I00116: -60() -30(), I00119 -7,#1 I00119: -7 je I0011C -5 -2, I0011C I001C I0011C: _5 _open pop bx pop -82(), -82(),#-1 I00123 I00123: -80() I00122 6 -7 -82() _read 16 I00122 -7 7 -7 -2, I00123 -80(),#1 I00123 I00127: _6 4 -7 _6 _strncat _7 _6 _stat -1 I0012D -82() _close I0012D: _7 -30(), I00123 _7+2 -2, I00123 -80(),#1 I00123 I00122: -82() _close -80() I00134 I00134: _1 _strlen 15 127 jle I00137 _errno,#34 I00137: _8 _1 _strcat 4 -7 _1 _strncat add ,#6 -60() -30(), -5 -2, I001D I001C: _1 _strlen , jge I0013A _errno,#34 I0013A: _1 _strlen I0013D _9 _strcpy I0013D: () I00140: 47 _1 _rindex -32(), -32() je I0013F -32() _strcat -32() I00140 I0013F: _chr je I00143 I00143: .s _2: 46 _3: 11822 _4: 46 _5: 46 _8: 47 _9: .word 47 .text getlogin.s#o_getlogin _getlogin _getlogin: _1: .zerow 10/2 _getuid _getpwuid or I0013 () _1 _strcpy _1 jmp .sret lsearch.s#3_lfind _lsearch _lsearch _lsearch: mul 10() I0015: jbe I0012 12() () I0013 10() I0015 10() _bcopy ,#1 .ds _lfind _lfind: mul 10() I0025: jbe I0022 12() () I0023 I0021 I0023: 10() I0025 I0022: I0021: jmp .dsret memccpy.s#f_memccpy _memccpy _memccpy: 10() or jl I0012 , I0013 jmp .dsret memchr.s#o{_memchr _memchr _memchr: or jl I0012 , I0013 -1() jmp .dsret memcmp.s#y_memcmp _memcmp _memcmp: , I0016 jl I0015 or je I0016 I0015: jmp .dsret memcpy.s#b_memcpy _memcpy _memcpy: ,#6 cwd iv 1 , jae I001D jbe I001D I0017: jl I001A al,() (),al I0017 I001A: jl I0014 #-2 #-2 () (), I001A I001D: jl I00110 #2 (), #2 I001D I00110: jl I0014 (),al 0 I0014: jmp .dsret memset.s#e_memset _memset _memset: or jl I0012 (),al jmp .dsret strchr.s#_strchr _strchr _strchr: I0014: al,() al, I0013 cmpb I0014 jmp .sret strcspn.s# _strcn _strcn _strcn: I0013 I0016 _strlen I001B: cmpb () je I0018 I001F: cmpb () je I0019 al,() al,() I001D I001D: I001F I0019: I001B I0018: jmp .dsret strpbrk.s#_strpbrk _strpbrk _strpbrk: or I0017 I0017: -1(),al je I0016 I001C: cmpb () je I0017 al,-1() al,() I001A -1() I001A: I001C jmp .dsret strrchr.s#_strrchr _strrchr _strrchr: I0014: al,() al, I0013 cmpb I0014 di jmp .dsret strspn.s# _strn _strn _strn: I0013 I0019: cmpb () je I0016 I001D: cmpb () je I001A al,() al,() I001B I001A I001B: I001D I001A: cmpb () I0017 I0017: I0019 jmp .dsret strstr.s#')_strstr _strstr _strstr: ,#6 or or I0013 ,al I0017: -1(),al je I0016 al,-1() al, I0017 , , I001E: cmpb I001D -1() I001D: je I001E I0017 jmp .dsret strtok.s#2_strtok _strtok _strtok: _1: _2 or I0013 _1 I0019 I0019: cmpb () je I0018 I001E: cmpb () je I001B al,() al,() I001C I001B I001C: I001E I001B: cmpb () I00113 I0018 I00113: I0019 I0018: cmpb () I00116 I00116: , I00119: cmpb () je I00118 I0011E: cmpb () je I0011B al,() al,() I0011C () 1() _1, I0011C: E I0011B: 9 I00118: _1, .ds _2: .word 0 .text swab.ss#E_swab _swab _swab: sar 1 , jl I0012 -1(),al (),al al,-1() (),al jmp .dsret ttyname.s#_ttyname _ttyname _ttyname: ,#78 -4 _fstat jge I0013 -4 61440 8192 je I0016 _1 _open or jge I001C I001C: 6 -1 _read jle I001B -1 -4, je I001F I001C I001F: _2 _file_name _strcpy 4 -1 _file_name _strncat -7 _file_name _stat jge I00112 I001C I00112: -7 61440 8192 je I00115 I001C I00115: -7 -4, I001C -7 -4, I001C -6 -36(bp),ax jne I001C _close _file_name I001B: _close .s _file_name: .zerow 40/2 _1: 25647 30309 47 _2: 25647 30309 .word 47 .text regexp.s#._regexec _regcomp _regcomp _regcomp: ,#10 I0013 _1 _regerror _regparse, _regnpar,#1 _regze _regze+2 _regcode,#_regdummy 56 _regc -10() _reg I0016 _regze+2 _regze 32767 .cmi4 jl I0019 _2 _regerror I0019: _regze 48 _malloc or I001C _3 _regerror I001C: _regparse, _regnpar,#1 46() _regcode, 56 _regc -10() _reg I001F push ax I001F: 40() 41() 42() 44() 47() _regnext cmpb I00112 #3 cmpb (),#8 I00115 al,3() 40(),al 6 I00115: cmpb (),#1 I00116 al,41() 41(),al I00116: testb -10(),#4 je I00112 I00120: or je I0011D cmpb (),#8 I0011E 3() _strlen , jg I0011E 3() , 3() _strlen , I0011E: _regnext I00120 I0011D: 42(), 44(), I00112: .ds _reg: ,#10 ,#1 je I0023 _regnpar,#10 jl I0026 _4 _regerror I0021 I0026: _regnpar , _regnpar 20 call _regnode I0024 I0023: I0024: -10() _regbranch or I0029 I0021 I0029: or je I002C _regtail I002D I002C: I002D: testb -10(),#1 I002F ,#65534 I002F: -10() 4 or I00212: _regparse cmpb ,#124 I00211 _regparse -10() _regbranch or I00215 I0021 I00215: _regtail testb -10(),#1 I00218 ,#65534 I00218: -10() 4 or I00212 I00211: je I0021B 30 I0021C I0021B: I0021C: _regnode , _regtail I00220: or je I0021D _regoptail pop bx push _regnext I00220 I0021D: je I00222 _regparse _regparse cmpb ,#41 je I00222 _5 _regerror I0021 I00222: I00223 _regparse cmpb je I00223 _regparse cmpb ,#41 I0022A _6 _regerror I0021 I0022A: _7 _regerror I0021 I00223: I0021: .ds _regbranch: ,#8 6 _regnode I0033: _regparse cmpb je I0032 _regparse cmpb ,#124 je I0032 _regparse cmpb ,#41 je I0032 _regpiece or I0038 I0031 I0038: 1 or or I003B 4 or mov (bx),ax I003C I003B: _regtail I003C: I0033 I0032: or I003E 9 _regnode I003E: I0031: .ds _regpiece: ,#8 _regatom or I0043 I0041 I0043: _regparse -3(),al cmpb -3(),#42 je I0046 cmpb -3(),#43 je I0046 cmpb -3(),#63 je I0046 I0041 I0046: testb ,#1 I004B cmpb -3(),#63 je I004B _8 _regerror I0041 I004B: cmpb -3(),#43 je I004F 4 I00410 I004F: I00410: cmpb -3(),#42 I00412 testb ,#2 je I00412 0 _reginsert I00413 I00412: cmpb -3(),#42 I00416 6 _reginsert 7 call _regnode _regoptail _regoptail 6 _regnode _regtail 9 _regnode _regtail I00413 I00416: cmpb -3(),#43 I00419 testb ,#2 je I00419 1 _reginsert I00413 I00419: cmpb -3(),#43 I0041D 6 _regnode _regtail 7 _regnode _regtail 6 _regnode _regtail 9 _regnode _regtail I00413 I0041D: cmpb -3(),#63 I00413 6 _reginsert 6 _regnode _regtail 9 _regnode di,ax push di _regtail _regoptail I00413: _regparse _regparse cmpb ,#42 je I00422 _regparse cmpb ,#43 je I00422 _regparse cmpb ,#63 I00423 I00422: _9 _regerror I0041 I00423: I0041: .ds _regatom: ,#8 _17: I00532 12 I0052A 36 I0055 40 I00524 41 I0052A 42 I0052D 43 I0052D 46 I0056 63 I0052D 91 I0057 92 I0052E 94 I0054 124 I0052A () _regparse _regparse I0052 I0054: _regnode I0053 I0055: _regnode I0053 I0056: 3 _regnode or (),#3 I0053 I0057: mov bx,_regparse cmpb ,#94 I0059 5 _regnode _regparse I005A I0059: 4 _regnode I005A: _regparse cmpb ,#93 je I005B _regparse cmpb ,#45 I00510 I005B: _regparse _regparse _regc I00510: _regparse cmpb je I005F _regparse cmpb ,#93 je I005F _regparse cmpb ,#45 I00514 _regparse _regparse cmpb ,#93 je I00516 _regparse cmpb I00517 I00516: 45 _regc I00510 I00517: _regparse al,-2 , , , jle I00520 _10 _regerror I0051 I00520: , jg I0051D _regc I00520 I0051D: _regparse I00510 I00514: _regparse _regparse cbw push _regc I00510 I005F: _regc _regparse cmpb ,#93 je I00522 _11 _regerror I0051 I00522: _regparse or (),#3 I0053 I00524: _reg or I00526 I0051 I00526: 5 or () (), I0053 I0052A: _12 _regerror I0051 I0052D: _13 _regerror I0051 I0052E: _regparse cmpb I00530 _14 _regerror I0051 I00530: 8 _regnode _regparse _regparse _regc _regc or (),#3 I0053 I00532: _regparse _15 _regparse _strcn , jg I00534 mov ax,#_16 _regerror I0051 I00534: _regparse -7(),al ,#1 jle I00537 cmpb -7(),#42 je I00536 cmpb -7(),#43 je I00536 cmpb -7(),#63 I00537 I00536: I00537: or (),#1 ,#1 I0053D or (),#2 I0053D: 8 _regnode I00540: jle I0053F _regparse _regparse _regc I00540 I0053F: _regc I0053 I0052: _17 .csb2 I0053: I0051: .ds _regnode: _regcode #_regdummy I0063 _regze,#3 adc _regze+2 I0061 I0063: al, (),al () () _regcode, I0061: .ds _regc: _regcode,#_regdummy je I0073 _regcode al, movb (bx),al inc _regcode I0074 I0073: _regze,#1 adc _regze+2 I0074: .c _reginsert: ,#6 _regcode,#_regdummy I0083 _regze,#3 adc _regze+2 .ds I0083: _regcode _regcode,#3 _regcode , I0086: , jae I0085 al,() I0086 I0085: al, (),al () () .ds _regtail: ,#6 ,#_regdummy I0093 .ds I0093: I0098: _regnext or I009A I0095 I009A: I0098 I0095: cmpb (),#7 I009D , I009E I009D: , I009E: 8 sar cl 1(),al 2(),al .ds _regoptail: si mov si,4(bp) or je I00A2 #_regdummy je I00A2 cmpb (),#6 je I00A3 I00A2: .s I00A3: 3() _regtail .s _regexec _regexec: or je I00B2 I00B3 I00B2: _18 _regerror I00B1 I00B3: cmpb 46(),#156 je I00B7 _19 _regerror I00B1 I00B7: 42() je I00BA I00BD: 42() _index or je I00BC 44() 42() _strncmp I00B10 I00BC I00B10: I00BD I00BC: or I00BA I00B1 I00BA: je I00B16 _regbol, I00B17 I00B16: _regbol I00B17: cmpb 41() je I00B19 _regtry I00B1 I00B19: cmpb 40() je I00B26 I00B1F: al,40() _index or je I00B1D _regtry je I00B22 I00B1 I00B22: I00B1F I00B26: _regtry je I00B25 I00B1 I00B25: cmpb I00B26 I00B1D: I00B1: .ds _regtry: ,#6 _reginput, _regstartp, 20 _regendp, 20 ,#10 I00C5: jle I00C2 () #2 () #2 I00C5 I00C2: 47 _regmatch je I00C7 _reginput 20, I00C1 I00C7: I00C1: .ds _regmatch: ,#12 si push di .data _21: I00D63 39 I00D62 I00D7 I00DB I00DF I00D1B I00D20 I00D45 I00D6 I00D13 I00D6 I00D51 I00D51 I00D63 I00D63 I00D63 I00D63 I00D63 I00D63 I00D63 I00D63 I00D63 I00D2F I00D2F I00D2F I00D2F I00D2F I00D2F I00D2F I00D2F I00D2F I00D63 I00D3E I00D3E I00D3E I00D3E I00D3E I00D3E I00D3E I00D3E I00D3E I00D3: or je I00D2 _regnext al,() I00D5 I00D7: _regbol _reginput, je I00D6 I00D1 I00DB: _reginput cmpb je I00D6 I00D1 I00DF: _reginput cmpb I00D11 I00D1 I00D11: _reginput I00D6 I00D13: 3() , _reginput push ax movb al, je I00D15 I00D1 I00D15: _strlen , ,#1 jle I00D18 _reginput _strncmp je I00D18 I00D1 I00D18: _reginput _reginput, I00D6 I00D1B: _reginput cmpb je I00D1C _reginput 3() _index I00D1D I00D1C: I00D1 I00D1D: _reginput I00D6 I00D20: _reginput cmpb je I00D21 _reginput 3() _index je I00D22 I00D21: I00D1 I00D22: _reginput I00D6 I00D2F: al,() 20 , _reginput , _regmatch je I00D31 sal 1 _regstartp I00D34 sal 1 _regstartp mov ax,-8(bp) mov , I00D34: I00D1 I00D31: I00D1 I00D3E: al,() 30 , _reginput , _regmatch je I00D40 sal 1 _regendp I00D43 sal 1 _regendp I00D43: I00D1 I00D40: I00D1 I00D45: cmpb (),#6 je I00D4B 3() I00D6 I00D4B: _reginput , 3() _regmatch je I00D4D I00D1 I00D4D: _reginput, _regnext or je I00D49 cmpb (),#6 je I00D4B I00D49: I00D1 I00D51: -5() cmpb (),#8 I00D53 al,3() -5(),al I00D53: cmpb (),#10 I00D56 I00D57 I00D56: I00D57: -12() _reginput -10(), 3() _regrepeat pop bx mov , I00D59: -12() , jl I00D58 cmpb -5() je I00D5B _reginput al,-5() I00D5C I00D5B: _regmatch je I00D5C I00D1 I00D5C: -10() _reginput, I00D59 I00D58: I00D1 I00D62: I00D1 I00D63: _20 _regerror I00D1 I00D5: _21 .csa2 I00D6: I00D3 I00D2: _22 _regerror I00D1: .ds _regrepeat: ,#6 _24: I00E13 3 5 I00E4 I00EB I00E10 I00E13 I00E13 I00E7 _reginput 3 , I00E2 I00E4: _strlen I00E3 I00E7: al,() I00E3 I00E7 I00EB: cmpb () je I00E3 al,() _index je I00E3 I00EB I00E10: cmpb () je I00E3 al,() _index I00E3 I00E10 I00E13: _23 _regerror I00E3 I00E2: _24 .csa2 I00E3: _reginput, .ds _regnext: #_regdummy I00F3 I00F1 I00F3: 8 al,1() sal cl cl,2() ch,ch or I00F6 I00F1 I00F6: cmpb (),#7 I00F9 I00F1 I00F9: I00F1: .ds _strcn: ,#6 ,#0 mov si,4(bp) I0105: cmpb () je I0102 I0109: cmpb () je I0106 al,() I0109 I0101 I0106: I0105 I0102: I0101: .ds _regendp: .zerow 2/2 _regstartp: .zerow 2/2 _regbol: .zerow 2/2 _reginput: .zerow 2/2 _regze: .zerow 4/2 _regcode: .zerow 2/2 _regdummy: .zerow 2/2 _regnpar: .zerow 2/2 _regparse: .zerow 2/2 _1: 21838 19532 24864 26482 28021 28261 116 _2: 25970 25959 28792 29728 28527 25120 26473 _3: 30063 8308 26223 29472 24944 25955 _4: 28532 8303 24941 31086 10272 41 _5: 28277 24941 25460 25960 8292 10536 _6: 28277 24941 25460 25960 8292 10536 _7: 30058 27502 28448 8302 .word 28261 100 _8: 11050 28448 25968 24946 10 25376 30063 08 25120 8293 28005 29808 121 _9: 25966 29811 01 10784 11071 _10: 28265 24950 26988 8292 23899 29216 28257 25959 _11: 28277 24941 25460 25960 8292 23899 _12: 28265 25972 28274 27745 29984 28786 _13: 11071 8234 28518 27756 30575 8307 28526 26740 28265 103 _14: 29300 26977 26988 26478 23584 _15: 9310 23342 10536 16252 10795 92 _16: 28265 25972 28274 27745 25632 29545 29537 25972 114 _18: 21838 19532 28704 29281 28001 29797 29285 _19: 28515 .word 29298 28789 25972 8292 29296 26479 24946 109 _20: 25965 28525 31090 25376 29295 30066 29808 28521 110 _22: 28515 29298 28789 25972 8292 28528 28265 25972 29554 _23: 28265 25972 28274 27745 26144 30063 30060 112 .text jregsub.s#_regsub _regsub _regsub: ,#10 I0013 _1 _regerror .ds cmpb 46,#156 je I0018 _2 _regerror .ds I0018: I001B: -5(),al je I001A cmpb -5(),#38 I001E I001F I001E: cmpb -5(),#92 I00111 al,() 48 jl I00111 al,() 57 jg I00111 48 , I001F I00111: ,#-1 I001F: jge I00116 cmpb -5(),#92 I00119 cmpb (),#92 je I00118 cmpb (),#38 I00119 I00118: -5(),al I00119: al,-5() (),al I001B I00116: sal 1 je I001B 20 sal 1 bx,ax cmp (bx) je I001B 20 sal 1 sal 1 -10(), sal 1 -10() _strncpy -10() -10() je I001B cmpb -1() I001B _3 _regerror .ds I001A: () .ds _1: 21838 19532 28704 29281 8301 28532 29216 26469 30067 98 _2: 24932 24941 25959 8292 25970 25959 28792 26144 01 29728 8303 25970 29543 25205 _3: 24932 24941 25959 8292 24941 25460 8296 29811 26994 26478 .word 0 .text getpwent.s#@_getpwent _setpwent _getpwnam _getpwuid _endpwent __pw_file: 25903 25460 28719 29537 30579 100 __pw: _setpwent -1 _setpwent: __pw jl I0013 __pw _lseek ,#8 I0014 __pw_file _open __pw, I0014: __bufcnt __pw .c _endpwent _endpwent: __pw jl I0023 __pw _close I0023: __pw,#-1 __bufcnt .c _getline: __pw jge I0033 _setpwent jge I0033 I0031 I0033: __buf,#__pwbuf I0038: __bufcnt jg I003A 024 __buffer __pw _read __bufcnt, __bufcnt jg I003D I0031 I003D: __pnt,#__buffer I003A: __pnt __pnt push ax mov __buf __buf __pnt cmpb ,#10 I0038 __pnt __bufcnt __buf __buf,#__pwbuf I0031: .c _skip_period: I0043: __buf cmpb ,#58 je I0042 __buf I0043 I0042: __buf __buf .c _getpwent _getpwent: _getline I0053 I0051 I0053: __buf _pwd, _skip_period __buf _pwd+2, _skip_period __buf _atoi _pwd+4, _skip_period __buf _atoi _pwd+6, _skip_period __buf _pwd+8, _skip_period __buf _pwd+10, _skip_period __buf _pwd+12, _pwd I0051: .c _getpwnam _getpwnam: _setpwent I0063: _getpwent or je I0062 () _strcmp jne I0063 I0062: _endpwent or je I0069 I0061 I0069: I0061: .s _getpwuid _getpwuid: _setpwent I0073: _getpwent or je I0072 4(), I0073 I0072: _endpwent or je I0079 I0071 I0079: I0071: .s _pwd: .zerow 14/2 __bufcnt: .zerow 2/2 __buf: .zerow 2/2 __pnt: .zerow 2/2 __buffer: .zerow 1024/2 __pwbuf: .zerow 256/2 .text qsort.s.s#_qsort _qsort _qsort: 10() _qcompar, mul _qsort1 .s _qsort1: ,#10 I0025: , ja I0027 .ds I0027: sal 1 cwd iv mul , I002B: jbe I00212 _qcompar () -10(), -10() jg I00212 -10() jge I002F I002B I002F: _qexchange I002B I00212: , jbe I00211 _qcompar () -10(), -10() jge I00215 jbe I00218 push -4(bp) _qexchange , I002B I00218: , _q3exchange ,#8 I00212 I00215: -10() I0021B , _qexchange I00212 I0021B: , I00212 I00211: jbe I0021E _q3exchange ,#8 , I002B I0021E: _qsort1 , I0025 _qexchange: I0033: mov ax,8(bp) jle I0032 al,() al,() (),al (),al I0033 I0032: .ds _q3exchange: I0043: 10() 10() jle I0042 al,() al,() (),al (),al I0043 I0042: .ds _qcompar: .zerow 2/2 .text popen.s# p_popen _pclose _popen _popen: ,#10 cmpb (),#114 I0013 I0014 cmpb (),#119 I0016 I0014 I0014: #2 je I0018 _pipe jl I0018 _fork , jge I0019 I0018: I0019: I001E -10(),#_pids I00113: -10(),#_pids+40 jae I00110 -10() je I00111 -10() _pids cwd iv _close I00111: -10(),#2 3 I00110: sal 1 _close or 1f 1: or 1f 1: sal 1 _dup2 or 1f 1: sal 1 _close pop bx xor _3 _2 _1 _execl ,#10 27 _exit I001E: sal 1 sal 1 _pids, or 1f 1: sal 1 _close sal 1 _fdopen .ds _pclose _pclose: ,#10 _gnal , 3 _gnal -10(), _fclose I0023: _wait #-1 je I0022 sal 1 _pids, I0023 I0022: #-1 I0029 ,#-1 I0029: _gnal -10() ax,#3 push ax _gnal sal 1 _pids .ds _pids: .zerow 40/2 _1: 25135 28265 29487 104 _2: 26739 _3: 25389 .word 0 .text scanf.s#,_scanf __doscanf _sscanf _fscanf _scanf _scanf: __io_table __doscanf ,#8 .c _fscanf _fscanf: __doscanf ,#8 .c _sscanf _sscanf: __doscanf ,#8 .c _rnc: _rnc_code je I0043 _rnc_arg _rnc_arg _ic, _ic I0044 _ic,#-1 I0044 I0043: _rnc_arg _fgetc _ic, I0044: .c _ugc: _rnc_code je I0053 _rnc_arg I0054 I0053: _rnc_arg _ic _ungetc I0054: .c _scnindex: I0063: al, je I0062 cmpb (si),#0 jne I0063 I0061 I0062: I0061: .s _iswhite: #32 je I0074 #9 je I0074 #10 je I0074 #13 I0073 I0074: I0071 I0073: I0071: .s _isgit: ,#48 jl I0083 ,#57 jg I0083 I0081 I0083: I0081: .c _tolower: #65 jl I0093 #90 jg I0093 #32 I0093: .s __doscanf __doscanf: ,#24 10() _1: I00A30 7 91 I00A8B 99 I00A64 100 I00A34 111 I00A31 115 I00A76 117 I00A34 120 I00A35 _rnc_arg, _rnc_code, _rnc _ic,#-1 I00AA ,#-1 I00A5 I00AA: movb al,() _iswhite je I00A9 I00AA I00A9: cmpb () I00AD I00AF I00AD: _ic jge I00A11 I00A5 I00A11: cmpb (),#37 je I00A14 I00A17: _ic _iswhite je I00A16 _rnc I00A17 I00A16: al,() _ic, je I00A1A I00AF I00A1A: _rnc I00AA I00A14: -12(),#1 cmpb (),#42 I00A1D -12() I00A1D: al,() _isgit je I00A20 -1,#1 -1 I00A25: al,() _isgit je I00A21 0 mul -1 48 -1, I00A25 I00A20: -1 I00A21: al,() _tolower 108 1f 1: -1, -1 je I00A27 I00A27: cmpb (),#99 je I00A2A I00A2D: _ic _iswhite je I00A2A _rnc I00A2D I00A2A: -20(bp),#0 movb al,() I00A2F I00A31: ,#8 I00A32 I00A34: ,#10 I00A32 I00A35: , -1 je I00A39 -1,#2 jb I00A32 I00A39: _ic,#48 I00A32 _rnc _ic _tolower 120 I00A3C -1 2 -1, -20(),#1 _rnc I00A32 I00A3C: _ugc _ic,#48 I00A32: -10() -1 I00A3F -1,#65535 I00A3F: -1 je I00A42 _ic,#43 I00A42 _rnc I00A4A I00A42: -1 je I00A4A _ic,#45 I00A4A -10(),#1 _rnc I00A4A: -1 1 -1, je I00A49 _ic _isgit je I00A4D _ic 48 , jle I00A4D _ic 48 _ic, I00A4E I00A4D: , I00A49 _ic _tolower 97 jl I00A49 _ic _tolower 102 jg I00A49 _ic _tolower add ax,#-87 _ic, I00A4E: cwd .mli4 _ic cwd adc , , _rnc -20(),#1 I00A4A I00A49: -12() je I00A56 -10() je I00A59 sbb I00A59: -1 je I00A5C #2 2, I00A56 I00A5C: #2 I00A56: -20() je I00AF -12() je I00A30 I00A30 I00A64: -1 I00A69 -1,#1 I00A69: -1 1 -1, je I00A68 _ic jl I00A68 -12() je I00A6D _ic () () I00A6D: _rnc -20(),#1 I00A69 I00A68: -12() je I00A70 #2 I00A70: -20() je I00A30 -12() je I00A30 I00A30 I00A76: -1 I00A7B mov -14(),#65535 I00A7B: -1 1 -1, je I00A7A _ic _iswhite I00A7A _ic jle I00A7A -12() je I00A80 _ic () () I00A80: _rnc -20(),#1 I00A7B I00A7A: -12() je I00A83 #2 I00A83: -20() je I00AF -12() je I00A30 I00A30 I00A8B: -1 I00A8D -1,#65535 I00A8D: cmpb (),#94 I00A90 -22(),#1 I00A91 I00A90: -22() I00A91: -2, I00A93: -2 cmpb ,#93 je I00A92 -2 cmpb je I00A92 -2 I00A93 I00A92: -2 cmpb I00A97 I00A5 I00A97: -2 I00A9A: -1 1 -1, je I00A99 _ic _iswhite I00A99 _ic jle I00A99 _ic _scnindex xor ax,-22(bp) je I00A99 -12() je I00AA0 _ic () () I00AA0: _rnc -20(),#1 I00A9A I00A99: -2 (),#93 -12() je I00AA3 #2 I00AA3: -20() je I00AF -12() je I00A30 I00A30 I00A2F: _1 .csb2 I00A30: I00AA I00AF: _ic jl I00A5 _ugc I00A5: .ds _rnc_code: .zerow 2/2 _rnc_arg: .zerow 2/2 _ic: .zerow 2/2 .text system.s#vJ_system _system _system: ,#6 _fork or I0013 _3 _2 _1 _execl ,#10 27 _exit or jge I0019 _exit I0019: _wait je I0018 #-1 je I0018 I0019 I0018: #-1 I001D ,#-1 I001D: .ds _1: 25135 28265 29487 104 _2: 26739 _3: 25389 .word 0 .text fgets.s#a_fgets _fgets _fgets: 1 , jbe I0012 _fgetc #-1 (),al #10 I0013 #-1 I001A , I001A I001A: () jmp .dsret fprintf.s#_fprintf _printf _fprintf _fprintf: __doprintf testb 4(),#64 je I0013 _fflush .s _printf _printf: __io_table+2 __doprintf __io_table+2 testb 4,#64 je I0023 __io_table+2 _fflush I0023: jmp .cret puts.s.s#mz_puts _puts _puts: __io_table+2 _fputs -1(),al __io_table+2 0 _fputc al,-1() cbw jmp .cret fputs.ss#\_fputs _fputs _fputs: cmpb () _fputc jmp .sret fread.ss#_fread _fread _fread: ,#6 je I0013 , jbe I0013 , I001A: 10() _fgetc #-1 je I001C I0019 I001C: I0019: 1 , I001A I0016 jmp .dsret freopen.s#e_freopen _freopen _freopen: _fclose je I0013 _fopen jmp .cret fclose.s#+H_fclose _fclose _fclose: I0015: #20 jge I0012 sal 1 __io_table, I0013 sal 1 __io_table I0012 I0015 #20 jl I001A -1 I001A: _fflush () _close testb 4(),#32 je I001D 6() je I001D 6() _free I001D: #2 jle I00111 _free I00111: jmp .dsret fopen.s#u_fopen _fopen _fopen: ,#8 _1: I0011B 3 97 I001F 114 I00117 119 I001B I0015: sal 1 __io_table #20 jl I0013 I0015 I0019 I001B: or ,#2 438 _creat , jge I001A I001F: or ,#2 _open , jge I00111 _errno,#2 I00113 438 _creat , jge I00111 I00113: I00111: _lseek ,#8 I001A I00117: or ,#1 _open , ,#0 jge I001A I0011B: I0019: _1 .csb2 I001A: 0 _malloc or I0011D I0011D: 2() (), 4(), 024 _malloc 6(), 6() I00120 or 4(),#4 I00121 I00120: or 4(),#32 I00121: 6() 8(), sal 1 __io_table, jmp .dsret fseek.s#_fseek _fseek _fseek: ,#10 ,#65535 ,#-1 4(),#-25 testb 4(),#1 je I0013 10(),#2 jge I0016 6() je I0016 testb 4(),#4 I0016 2() , , 10() I001B () _lseek ,#8 -10(), , cwd -10() sbb adc , , I001C I001B: cwd sbb , , I001C: or jle I001E cwd .cmi4 jg I001E 6() cwd 8() cwd sbb .cmi4 jl I001E 8() 8(), 2() 2(), I001E: cmp 10(),#1 I0016 cwd adc , , 10() () _lseek ,#8 , , 2() I0014 testb 4(),#2 je I0014 _fflush 10() () _lseek ,#8 , , I0014: ,#65535 I00119 ,#-1 I00119 -1 I00119: jmp .dsret ftell.s#B_ftell _ftell _ftell: ,#6 testb 4(),#1 je I0013 2() I0014 testb 4(),#2 je I0016 6() je I0016 testb 4(),#4 I0016 8() 6() I0014 -1 65535 I0014: () _lseek ,#8 , jge I001B I001B: cwd adc , dx jmp .dsret fwrite.s#_fwrite _fwrite _fwrite: je I0013 , jbe I0013 I001A: 10() _fputc 10() testb 4, je I0019 I0019: 1 or I001A I0016 jmp .dsret gets.ss#_gets _gets _gets: __io_table _fgetc #-1 #10 (),al #-1 I0017 I0017: () jmp .dsret printdat.s#*\__io_table ___stn __stderr ___stdout __stdout __stn __stn __stn: 1 ___stn ___stn __stdout __stdout: 1 66 ___stdout ___stdout __stderr __stderr: 2 6 __io_table __io_table: __stn __stdout __stderr ___stdout ___stdout: .zerow 1024/2 ___stn ___stn: .zerow 1024/2 .text setbuf.ss#6_setbuf _setbuf _setbuf: 6() je I0013 testb 4(),#32 je I0013 6() _free 4(),#-101 6(), 6() I0017 or 4(),#4 I0017: 6() 8(), 2(),#0 jmp .sret ctime.ss# _localtime _ctime _gmtime _days_per_month: 31 28 31 30 31 30 31 31 30 31 30 31 _months: _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _days: _13 _14 _15 _16 _17 _18 _19 _ctime _ctime: ,#8 2 , _tm+10 _tm+8 _tm+6,#1 _tm+4 _tm+2 _tm 0864 .dvi4 4 adc #0 7 cwd iv _tm+12, 4 _tm+10 cwd iv #2 I0016 482 34048 I0017 481 3184 I0017: .cmi4 jl I0012 _tm+10 cx,-2(bp) sub sbb , _tm+10,#1970 0864 .dvi4 _tm+14, _days_per_month+2,#28 4 _tm+10 cwd iv or I001C _days_per_month+2 I001C: _tm+8 sal 1 _days_per_month cwd 0864 #1 .mli4 .cmi4 jl I001F _tm+8 _tm+8 sal 1 _days_per_month cwd 0864 #1 .mli4 sbb , , I001C I001F: 0864 .cmi4 jl I00112 20864 sbb 1 , _tm+6 I001F I00112: 3600 .cmi4 jl I00115 sub ax,#3600 sbb 0 , _tm+4 2 I00115: 60 .cmi4 jl I00114 60 sbb 0 , _tm+2 5 I00114: _tm, _tm+8 sal 1 _tm+10 _tm _tm+2 _tm+4 _tm+6 _months _tm+12 sal 1 _days _20 _buf _rintf ,#18 _buf .c _localtime _localtime: _ctime _tm .c _gmtime _gmtime: _ctime _tm .c _buf: .zerow 26/2 _tm: .zerow 18/2 _1: 24906 110 _2: 25926 98 _3: 24909 114 _4: 28737 114 _5: 24909 121 _6: 30026 110 _7: 30026 108 _8: 30017 103 _9: 25939 112 _10: 25423 116 _11: .word 28494 118 _12: 25924 99 _13: 30035 110 _14: 28493 110 _15: 30036 101 _16: 25943 100 _17: 26708 117 _18: 29254 105 _19: 24915 116 _20: 29477 9504 8307 12837 8292 12325 25650 9530 12848 14948 12325 25650 9504 2660 .word 0 .text fdopen.ss#7(_fdopen _fdopen _fdopen: ,#6 _1: I001E 3 97 I001C 114 I001D 119 I001B I0015: sal 1 __io_table #20 jl I0013 I0015 I0019 I001B: or ,#2 I001A I001C: or ,#2 _lseek ,#8 I001A I001D: or ,#1 I001A I001E: I0019: _1 .csb2 I001A: 0 _malloc or I00110 I00110: 2() (), 4(), 024 _malloc 6(), 6() I00113 or 4(),#4 4 I00113: or 4(),#32 I00114: 6() 8(), sal 1 __io_table,si push si I0011: jmp .dsret getgrent.s#e_endgrent _getgrnam _getgrgid _setgrent _getgrent __gr_file: 25903 25460 26415 28530 28789 __gfd: _setgrent -1 _setgrent: __gfd jl I0013 __gfd _lseek ,#8 I0014 __gr_file _open __gfd, I0014: __bufcnt __gfd .c _endgrent _endgrent: __gfd jl I0023 __gfd _close I0023: __gfd,#-1 __bufcnt .c _getline: __gfd jge I0033 _setgrent jge I0033 I0031 I0033: __buf,#__grbuf I0038: __bufcnt jg I003A 024 __buffer __gfd _read __bufcnt, __bufcnt jg I003D I0031 I003D: __pnt,#__buffer I003A: __pnt __pnt movb al,(bx) push __buf __buf __pnt cmpb ,#10 I0038 __pnt __bufcnt __buf __buf,#__grbuf I0031: .c _skip_period: I0043: __buf cmpb je I0042 __buf cmpb ,#58 je I0042 __buf I0043 I0042: __buf __buf .c _getgrent _getgrent: _getline I0053 I0051 I0053: __buf _grp, _skip_period __buf _grp+2, _skip_period __buf _atoi _grp+4, _skip_period _grp I0051: .c _getgrnam _getgrnam: _setgrent I0063: _getgrent or je I0062 () _strcmp I0063 I0062: _endgrent or je I0069 I0061 I0069: I0061: .s _getgrgid _getgrgid: _setgrent I0073: _getgrent or je I0072 4(), I0073 I0072: _endgrent or je I0079 I0071 I0079: I0071: .s _grp: .zerow 6/2 __bufcnt: .zerow 2/2 __buf: .zerow 2/2 __pnt: .zerow 2/2 __buffer: .zerow 1024/2 __grbuf: .zerow 256/2 .text sprintf.s#y_rintf _rintf _rintf: ,#10 -10(),#-1 ,#130 , , -10() __doprintf -10() _fputc si jmp .sret doprintf.s#W __doprintf __itoa: 11 I0014: v #48 #57 jle I0016 #7 (),al v , I0014 11 I001A: or I001A .ds _ltoa: 11 I0024: 10() cwd .rmu4 #48 #57 jle I0026 #7 I0026: (),al 10() cwd .dvu4 , , .cmu4 I0024 11 I002A: movb al, or I002A .ds __doprintf __doprintf: ,#36 _2: I00359 13 68 I0033E 79 I00339 85 I00337 88 I00334 99 I0034C 100 I0033F 101 I0034B 102 I0034B 103 I0034B 111 I0033A 115 I0034D 117 I00338 120 I00335 I0035: or I0037 .ds I0037: #37 je I003A _fputc I0035 I003A: -12() -12() -1, -2 cmpb ,#45 I003D -2 I003D: -30(),#32 cmpb ,#48 I00310 -30(),#48 I00310: -22() I00315: #48 jl I00317 cmp di,#57 jg I00317 #48 I00318 I00317: #42 I00312 ,#2 I00318: 0 mul -22() -22(), -22(), I00315 I00312: -2 -2 #46 I0031E I00323: #48 jl I00325 #57 jg I00325 #48 I00326 I00325: #42 I0031E ,#2 I00326: 0 mul -2 -2, -2, -2 I00323 I0031E: -32() #108 je I0032B #76 I0032C I0032B: -32() cmpb je I0032C I0032C: I00332 I00334: -32() I00335: I00336 I00337: -32() I00338: #10 I00336 I00339: -32() I0033A: #8 I00336: -32() je I0033C ,#4 2 _ltoa ,#8 I00333 I0033C: ,#2 push di push __itoa I00333 I0033E: -32() I0033F: -32() je I00341 ,#4 2 -3, -3, -3 jge I00344 (),#45 -3 -3 sbb -3 I00344: 0 -3 -3 _ltoa ,#8 I00333 I00341: ,#2 -20(), -20() jge I00347 (),#45 -20() I00347: 0 -20() __itoa I00333 I0034B: -30(),#32 (),#63 I00333 I0034C: -30(),#32 ,#2 (),al I00333 I0034D: -30(),#32 ,#2 -1, -1 I0034F -1,#_1 I0034F: -2 I00352 -2,#32767 I00352: -1 I00357: cmpb () je I00333 -2 jl I00333 I00357 I00359: mov ax, (),al I00333 I00332: _2 .csb2 I00333: -1 -20(), -22() -20() -22(), -22() jge I0035B -22() I0035B: -2 I0035E -22() I0035E: -22() jge I0036B -1 cmpb ,#45 I00369 -30(),#48 I00369 -1 -1 _fputc -20() I00369: -30() _fputc -22() I00369 I0036B: -20() jl I0036E -1 -1 _fputc I0036B I0036E: -22() je I0035 -30() _fputc -22() I0036E _1: 28200 27765 10604 .word 0 .text printk.ss#G: _printk _itoa: 11 I0014: v #48 #57 jle I0016 #7 (),al v , I0014 11 I001A: or I001A .ds _ltoa: 11 I0024: 10() cwd .rmu4 #48 #57 jle I0026 #7 I0026: (),al 10() cwd .dvu4 , , .cmu4 I0024 11 I002A: movb al,(bx) or I002A .ds _printk _printk: ,#38 _2: I00359 13 68 I0033E 79 I00339 85 I00337 88 I00334 99 I0034C 100 I0033F 101 I0034B 102 I0034B 103 I0034B 111 I0033A 115 I0034D 117 I00338 120 I00335 -1, I0035: or I0037 .ds I0037: #37 je I003A _putc I0035 I003A: -12() -12() -1, -30() cmpb ,#45 I003D -30() I003D: -32(),#32 cmpb ,#48 I00310 -32(),#48 I00310: -2 I00315: #48 jl I00317 cmp di,#57 jg I00317 #48 I00318 I00317: #42 I00312 -1 -1,#2 I00318: 0 mul -2 -2, -2, I00315 I00312: -2 -2 #46 I0031E I00323: #48 jl I00325 #57 jg I00325 #48 I00326 I00325: #42 I0031E -1 -1,#2 I00326: 0 mul -2 -2, -2, -2 I00323 I0031E: -3 #108 je I0032B #76 I0032C I0032B: -3 cmpb je I0032C I0032C: I00332 I00334: -3 I00335: I00336 I00337: -3 I00338: #10 I00336 I00339: -3 I0033A: #8 I00336: -3 je I0033C -1 -1,#4 2 _ltoa ,#8 I00333 I0033C: -14(bp) add -14(bp),#2 _itoa I00333 I0033E: -3 I0033F: -3 je I00341 -1 -1,#4 2 -3, -3, -3 jge I00344 (),#45 -3 -3 sbb -3 I00344: 0 -3 -3 _ltoa ,#8 I00333 I00341: -1 -1,#2 -22(), -22() jge I00347 (),#45 -22() I00347: 0 -22() _itoa I00333 I0034B: -32(),#32 (),#63 I00333 I0034C: -32(),#32 -1 -1,#2 (),al I00333 I0034D: -32(),#32 -1 -1,#2 -1, -1 I0034F -1,#_1 I0034F: -2 I00352 -2,#32767 I00352: -1 I00357: cmpb () je I00333 -2 jl I00333 inc I00357 I00359: (),al I00333 I00332: _2 .csb2 I00333: -1 -22(), -2 -22() -2, -2 jge I0035B -2 I0035B: -30() I0035E -2 I0035E: -2 jge I0036B -1 cmpb ,#45 I00369 -32(),#48 I00369 -1 -1 _putc -22() I00369: -32() _putc -2 I00369 I0036B: -22() jl I0036E -1 -1 _putc I0036B I0036E: -2 je I0035 -32() _putc -2 I0036E _1: 28200 27765 10604 .word 0 .text putc.sss#d_fputc _fputc _fputc: testb 4(),#24 je I0013 -1 testb 4(),#2 I0016 -1 testb 4(),#4 je I0019 () _write 2(),#1 I001A I0019: ___cleanup,#__cleanup 8() 1 cl, 8(), 2() 2(), 2(),#1024 jl I001A testb 4(),#128 I001A 2() 6() () _write 6() 8(), I001A: or je I00110 jle I00112 2(), je I00113 I00112: jge I00117 or 4(), 8 I00117: or 4(),#8 I00118: -1 I00113: 2() I00110: jmp .dsret ungetc.ss#_ungetc _ungetc _ungetc: or jl I0012 testb 4(),#1 testb 4(),#4 je I0013 -1 2(),#1024 jl I0018 -1 I0018: 6() 8(), I001B 8() I001B: 2() 2(), 8() 8() jmp .dsret getc.sss#_fgetc _fgetc _fgetc: testb 4(),#24 je I0013 -1 testb 4(),#1 I0016 -1 2() jg I0019 testb 4(),#4 je I001C () _read 2(), I001D I001C: 024 6() () _read 2(), I001D: 2() jg I001F 2() I00112 or 4(),#8 3 I00112: or 4(), I00113: -1 I001F: 6() 8(), I0019: 2() 2(), testb 4(),#4 je I00115 I00115: 8() 1 8(), jmp .sret strcmp.ss#_strcmp _strcmp _strcmp: al,() al,() je I0016 al,() al,() cmpb () I0019 I0019: jmp .dsret access.ss#{I_access _access _access: 33 _callm3 ,#8 jmp .cret chdir.ss#C_chr _chr _chr: 2 _callm3 ,#8 jmp .cret chmod.ss#D_chmod _chmod _chmod: 5 _callm3 ,#8 jmp .cret chown.s#+S_chown _chown _chown: 6 jmp .sret chroot.s#9K_chroot _chroot _chroot: 61 _callm3 ,#8 jmp .cret creat.s#^E_creat _creat _creat: 8 _callm3 ,#8 jmp .cret dup.ss#?_dup _dup _dup: 41 jmp .cret dup2.s#O_dup2 _dup2 _dup2: 64 41 jmp .cret exec.s#`_execl _execle _execn _execv _execl _execl: _environ .c _execle _execle: I0023: #2 je I0022 I0023 I0022: () .s _execv _execv: _environ .c : ,#2068 -2062() -206 -2050(), -2052(), I0043: -2050() -2050(),#2 je I0046 -2062() I0043 I0046: -2052() -2052(),#2 je I0045 -206 I0046 I0045: -206 -2062() sal 1 6 -204 -2062() -2064(bp) lea 0() jb I0049 _errno,#7 -1 I0041 I0049: -204 -2062() (), #2 -2060() I004E: -2062() -2060(), jge I004B -204 -206, -206 (), #2 ,#2 -205, I00410: -205 cmpb je I004F -205 -205 (),al 0() jb I00410 _errno,#7 -1 I0041 I004F: () -2060() I004E I004B: () #2 -2060() I00418: -206 -2060(), jge I00415 -204 -206, -206 (), #2 ,#2 -205, I0041A: -205 cmpb je I00419 -205 -205 (),al 0() jb I0041A _errno,#7 ax,#-1 push ax I0041 I00419: () -2060() I00418 I00415: () #2 -204 cwd iv sal 1 -206, -204 -206 59 I0041: .ds _execn _execn: _1: .zerow 6/2 _1 6 59 jmp .sret exit.s# __exit _exit ___cleanup _exit _exit: ___cleanup je I0013 ___cleanup () .c __exit __exit: .c ___cleanup ___cleanup: .zerow 2/2 .text cleanup.s#B__cleanup __cleanup __cleanup: I0015: #20 jge I0012 sal 1 __io_table je I0013 sal 1 __io_table _fflush I0015 jmp .sret fflush.s#B_fflush _fflush _fflush: testb 4(),#4 I0012 testb 4(),#2 I0013 2() jg I0017 I0017: 2() 6() () _write 2(), I001A 2() 6() 8(), I001A: or 4(), -1 jmp .dsret fork.ss#?_fork _fork _fork: jmp .cret isatty.s#q_isatty _isatty _isatty: _M+8,#29704 _M+4, 54 jge I0013 jmp .cret fstat.s#Q_fstat _fstat _fstat: 8 si jmp .sret getegid.s#0u_getegid _getegid _getegid: 47 or jge I0013 _M+4 jmp .sret getenv.s#:*_getenv _getenv _getenv: ,#6 _environ I0013 _environ , I0019: je I0016 I001B: al,() al,() I001A cmpb () je I001A I001B I001A: cmpb () I0017 cmpb (),#61 I0017 1() I0017: ,#2 I0019 jmp .dsret geteuid.s#Hs_geteuid _geteuid _geteuid: 4 or jge I0013 _M+4 jmp .sret getgid.s#UV_getgid _getgid _getgid: 47 si jmp .sret getpass.s#{_getpass _getpass _getpass: ,#10 _prints -10() 9704 _ioctl ,#65527 -10() 9705 _ioctl 9 _pwdbuf _read cmpb _pwdbuf,#10 _pwdbuf _read _pwdbuf , -10() 9705 _ioctl _1 _prints _pwdbuf .ds _pwdbuf: .zerow 10/2 _1: .word 10 .text close.ss#PD_close _close _close: 6 jmp .cret getuid.s#T_getuid _getuid _getuid: 4 si jmp .sret gtty.ss#;_gtty _gtty _gtty: 9704 _ioctl jmp .cret stty.ss#;;_stty _stty _stty: 9705 _ioctl jmp .cret ioctl.s#$_ioctl _ioctl _ioctl: ,#42 _1: I0018 4 29704 I0016 29705 I0014 29713 I0015 29714 I0017 _M+8, _M+4, I0012 I0014: cl,2() ch,ch -10(), , cl,3() ch,ch -1, -12(), 8 -10() 2: sal 1 rcl #1 1: or -1 or -12() , +2, 4() cwd _M+14, _M+14+2, al,1() 8 sal cl al,() or _M+6, 54 I0015: cl,() ch,ch -1, -1, cl,1() ch,ch -22(), -20(), cl,2() ch,ch -2, -2, movb cl,3() ch,ch -30(), -2, cl,4() ch,ch -3, -32(), cl,5() ch,ch -3, -3, 16 -22() -20() 2: sal 1 rcl #1 1: 4 -1 -1 2: sal #1 rcl 1 1: or or 8 -2 -2 2: sal #1 rcl 1 1: or or -30() -2 2: sal #1 rcl 1 1: or or , +2, -3 -3 2: sal 1 rcl #1 1: 8 -3 -32() 2: sal #1 rcl 1 1: or or _M+14, _M+14+2, 54 54 pop bx mov 8 +2 2: sar 1 rcr #1 1: 0 2(),dl +2 2: sar 1 rcr #1 1: 0 3(),dl _M+14 _M+14+2 65535 #0 4(), 16 _M+14 _M+14+2 2: sar 1 rcr #1 1: #65535 0 -42(), -40(), -42() -40() 0 (),al 8 -42() -40() 2: sar #1 rcr 1 1: #0 1(),al I0017: 54 4 +2 2: sar 1 rcr #1 1: 0 (),dl 16 +2 2: sar 1 rcr #1 1: 0 1(),dl 8 +2 2: sar 1 rcr dx,#1 loop 2b 1: 0 2(),dl +2 2: sar 1 rcr #1 1: 0 3(),dl 8 _M+14 _M+14+2 2: sar 1 rcr #1 1: 0 4(),dl 8 _M+14 _M+14+2 2: sar 1 rcr #1 1: 0 5(),dl I0018: #-1 _errno,#-22 _1 .csb2 jmp .dsret abort.s#dD_abort _abort _abort: 6 _getpid _kill jmp .cret kill.s#B_kill _kill _kill: 37 jmp .cret link.s#'`_link _link _link: 9 jmp .dsret lseek.s#B_lseek _lseek _lseek: _M+4, , +2, 10() _M+6, 9 or je I0013 cwd +2 dx jmp .sret malloc.s#\_calloc _malloc _free _realloc _grow: __top 1023 64512 __top, ja I0012 _brk je I0013 __top -2, -2() __top _free __top, .s _malloc _malloc: ,#12 I0023 ,#2 I0023: -12() I0028: -12(),#2 jae I0025 65534 2 -10(), __bottom I002A 4 _sbrk -2 #2 __bottom, __top, -2() I002A: __empty I002F: or je I002C -2() , -10() , jae I00211 I002D I00211: 2() jae I00214 ax,-6(bp) mov -2(), -2(), () (), (), I00214: je I00217 () I00218 I00217: () __empty, I00218: I0021 I002D: , () I002F I002C: -10() _grow I0026 I0025 I0026: -12() I0028 I0025: I0021: .ds _realloc _realloc: ,#12 65534 2 -10(), -2 , -12(), __empty I0035: or je I0032 , jae I0037 I0032 I0037: , I0033 -2() -2, je I003D () I003E I003D: () __empty, I003E: -2 , I0032 I0033: , () I0035 I0032: -10() mov di,bx cmp -, jb I00310 2() jae I00313 -2(), -2, _free I00313: I0031 I00310: _malloc or I00316 I0031 I00316: -12() _bcopy _free I0031: .ds _bcopy: I0043: je I0042 (),al I0043 I0042: .ds _calloc _calloc: mul , _malloc or I0053 I0051 I0053: I0058: 1 , je I0055 () I0058 I0055: I0051: .ds _free _free: push si push __empty I0065: or je I0062 , jae I0063 I0062 I0063: () I0065 I0062: , or je I006A (), I006B I006A: __empty, I006B: or je I006D -2, I006D -2() -2, () I006D: or je I00613 -2(), I00613 -2 -2(), (), I00613: .ds __empty: .zerow 2/2 __top: .zerow 2/2 __bottom: .zerow 2/2 .text brk.s.s#K_brk _sbrk _brk _brk: 7 or I0013 _M+18 _brkze, -1 .s _sbrk _sbrk: _brkze _brkze jle I0025 ja I0022 I0025: jge I0023 jae I0023 I0022: -1 I0021 I0023: _brk I0029 I0021 I0029: -1 I0021: jmp .dsret brk2.ss#]_brk2 _brk2 _brk2: _get_ze 66 jmp .dsret brksize.s#)-_brkze endbss, _brkze _brkze: endbss mknod.s#S_mknod _mknod _mknod: 4 jmp .sret mktemp.s#_mktemp _mktemp _mktemp: ,#6 _getpid cmpb cmpb (),#88 I0015 10 cwd iv #48 (),dl cwd iv I0016 I0015: jmp .dsret getpid.s#F_getpid _getpid _getpid: 0 jmp .cret mount.s#c_mount _mount _mount: 1 jmp .dsret open.s#B_open _open _open: 5 _callm3 ,#8 jmp .cret perror.s# _perror _sys_errlist _sys_nerr _sys_errlist _sys_errlist: _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 _31 _32 _33 _34 _35 _sys_nerr _sys_nerr: _perror 35 _perror: _errno jl I0012 _errno,#35 jl I0013 4 _36 _write I0014 _slen _write _37 _write _errno sal 1 _sys_errlist _slen _errno sal 1 _sys_errlist _write mov ax,#1 push _38 _write I0014: .s _slen: I0023: cmpb je I0022 I0023 I0022: .ds _1: 29253 28530 8306 48 _2: 8308 30575 25966 114 _3: 29472 25461 8296 26982 25964 28448 8306 26980 25970 29795 29295 121 _4: 29472 25461 8296 29296 25455 29541 115 _5: 28233 25972 29298 28789 25972 8292 31091 29811 28005 25376 27745 108 _6: 12105 8271 29285 28530 114 _7: 29472 25461 8296 25956 26998 25955 28448 8306 25697 29284 29541 115 _8: 29249 8295 26988 .word 29811 29728 28527 27680 28271 103 _9: 30789 25445 26144 29295 24941 8308 29285 28530 114 _10: 24898 8292 26982 25964 28192 28021 25954 114 _11: 25376 26984 08 25970 110 _12: 27936 29295 8293 29296 25455 29541 25971 115 _13: 8308 28261 30063 26727 25376 29295 101 _14: 25936 28018 29545 26995 28271 25632 28261 25961 100 _15: 24898 8292 25697 29284 29541 115 _16: 27714 25455 8299 25956 26998 25955 29216 29029 26997 25970 100 _17: 28493 28277 8308 25956 26998 25955 25120 29557 121 _18: 26950 25964 .word 25888 27000 29811 115 _19: 29251 29551 11635 25956 26998 25955 27680 28265 107 _20: 29472 25461 8296 25956 26998 25955 _21: 8308 8289 26980 25970 29795 29295 121 _22: 29513 24864 25632 29289 25445 28532 31090 _23: 28233 24950 26988 8292 29281 30055 25965 29806 _24: 26950 25964 29728 25185 25964 28448 25974 26226 28524 119 _25: 28500 8303 24941 31086 28448 25968 8302 26982 25964 115 _26: 8308 8289 31092 25968 29303 29801 29285 _27: 25940 29816 26144 27753 8293 30050 31091 _28: 26950 25964 .word 29728 28527 27680 29281 25959 _29: 29472 24944 25955 27680 26213 8308 28271 25632 30309 25449 101 _30: 27721 25964 24935 8300 25971 27493 _31: 25938 25697 28461 27758 8313 26982 25964 29472 29561 25972 109 _32: 28500 8303 24941 31086 27680 28265 29547 _33: 29250 27503 28261 28704 28777 101 _34: 24909 26740 24864 26482 28021 28261 116 _35: 25938 30067 29804 29728 28527 27680 29281 25959 _36: 28233 24950 26988 8292 29285 28274 2671 _37: 8250 _38: .word 10 .text pipe.ss# _pipe _pipe _pipe: 42 or jl I0013 _M+4 (), _M+6 2(), jmp .dsret prints.s#WD_prints _Buf _Bufp _prints _prints: ,#14 _1: I00119 2 99 I001E 115 I001F _Bufp,#_Buf , cmpb () cmpb (),#37 je I0016 _put I0019: al,() 48 jl I0018 al,() 57 jg I0018 al,() 48 0 mul I0019 I0018: al,() I001C I001E: ,#2 _put I001F: -10(), ,#2 -10() -12(), I00111: -10() -10() -13(),al je I00110 al,-13() _put 1 I00110: -10() -12() dec ax sub ax, jle I0013 I00117: je I0013 32 _put 7 I00119: 37 _put _put I001C: _1 .csb2 _Bufp _Buf _Buf _write .ds _put: _Bufp,#_Buf+128 jae I0023 _Bufp al, _Bufp I0023: .c _Bufp _Bufp: .zerow 2/2 _Buf _Buf: .zerow 128/2 .text read.ss#P_read _read _read: 3 si jmp .sret setgid.s#CH_setgid _setgid _setgid: 46 jmp .cret setuid.s#QF_setuid _setuid _setuid: 3 jmp .cret sleep.s#oi_sleep _alfun: .c _sleep _sleep: _alfun 4 _gnal _alarm _pause jmp .cret alarm.s#C_alarm _alarm _alarm: 7 jmp .cret pause.s#C_pause _pause _pause: 9 jmp .cret signal.s#a)_gnal _vectab _gnal _gnal: sal 1 2 _vectab sal 1 2 _vectab, _M+4, #1 or I0013 I0014 _begg I0014: _M+14 48 ,#1 I0017 #1 I0017: jge I001A I001A: .ds _vectab _vectab: .zerow 32/2 .text catchsig.s#)_begg _begg _vectab, _M mtype = 2 _begg: ds es 18 _vectab _M+mtype back: _M+mtype es ds dummy i dummy: stat.sg.s#^_stat _stat _stat: 8 si jmp .dsret stime.s.s#N_stime _stime _stime: 2 , +2, 5 jmp .cret strcat.ss#_strcat _strcat _strcat: , cmpb () je I0016 cmpb () je I0015 (),al I0016 I0015: () jmp .dsret strcpy.ss#o_strcpy _strcpy _strcpy: , cmpb () (),al () jmp .dsret strlen.ss#Z_strlen _strlen _strlen: cmpb () di jmp .dsret strncat.s#_strncat _strncat _strncat: jle I0013 cmpb je I0015 I0016 I0015: I0019: (),al je I0013 I0019 () jmp .dsret strncmp.s#_strncmp _strncmp _strncmp: jg I0016 I0015 cmpb -1() je I0018 I0016 I0018: I0015: al,-1() al,-1() jmp .dsret strncpy.s#_strncpy _strncpy _strncpy: jle I0013 (),al je I0015 je I0015 I0016 I0015: je I0013 I001D: je I0013 () I001D jmp .dsret sync.s.s#RB_sync _sync _sync: 36 jmp .cret time.s.s#_time _time _time: ,#6 3 _M+2 jl I0012 or je I0013 _M+2 _errno, -1 65535 +2 , , or je I0017 (), 2(), I0017: dx jmp .dsret times.ss#_times _times _times: 43 _M+4 _M+4+2 (), 2(), _M+8 _M+8+2 4(), 6(), _M+12 _M+12+2 8(), 10(), _M+16 _M+16+2 12(), 14(), di jmp .dsret umask.ss#E_umask _umask _umask: 60 jmp .cret umount.s#I_umount _umount _umount: 2 _callm3 ,#8 jmp .cret unlink.s#I_unlink _unlink _unlink: 0 _callm3 ,#8 jmp .cret utime.s#_utime _utime _utime: _M+4, () 2() , +2, 4() 6() _M+14, _M+14+2, _M+18, 30 jmp .dsret wait.s#_wait _wait _wait: 7 or jl I0013 or je I0013 _M+4 (), si jmp .dsret stderr.s#o_std_err _std_err _std_err: cmpb () _write jmp .dsret write.s#,E_write _write _write: 4 jmp .cret syslib.s#lq_sys_newmap _sys_kill _tell_fs _sys_times _sys_abort _sys_exec _sys_get _sys_g _sys_fork _sys_copy _sys_xit _sys_xit _sys_xit: -2 .c _sys_get _sys_get: -2 , .c _sys_g _sys_g: _M+4, _M+6, _M+14, 3 -2 .c _sys_fork _sys_fork: 4 -2 .c _sys_exec _sys_exec: push bp 7 -2 .c _sys_newmap _sys_newmap: 5 -2 .c _sys_copy _sys_copy: 2(),#6 -2 _sendrec je I0073 32768 _1 _panic I0073: .s _sys_times _sys_times: 8 -2 _M+4 _M+4+2 (), 2(), _M+8 _M+8+2 4(), 6(), _M+12 _M+12+2 8(), 10(), _M+16 _M+16+2 12(), 14(), .s _sys_abort _sys_abort: push 9 -2 .c _sys_kill _sys_kill: _M+4, _M+6, 1 -2 .c _tell_fs _tell_fs: 10() .c _1: 31091 24435 28515 31088 25376 28257 29735 29472 28261 100 .text call.ss#{_errno _callx _callm3 _len : _M+4, 10() _M+6, 12() _M+8, 1 , 1 _M+12, 1 _M+14, .c _callm3 _callm3: 10() _M+4, _M+6, 10() _M+8, # #14 jg I0023 I0026: je I0023 10() 10() (),al I0026 I0023: .ds _callx _callx: _M+2, _M _sendrec or je I0033 I0031 I0033: _M+2 jge I0036 _M+2 _errno, -1 I0031 I0036: push _M+2 I0031: .s _len _len: I0043: cmpb je I0042 I0043 I0042: .ds _errno _errno: .zerow 2/2 .text atoi.ss#^_atoi _atoi _atoi: ,#6 al,() __c_, __c_,#32 je I0014 __c_,#9 je I0014 __c_,#13 je I0014 __c_,#10 je I0014 __c_,#12 I0012 I0014: cmpb (),#45 I001D ,#1 I001D: 48 ,#10 jae I001C 0 mul I001D I001C: je I00110 I00110: .ds __c_: .zerow 2/2 .text message.s#2_M _M _M: .word 0 .text sendrec.s#:_send, _receive, _sendrec _send, _receive, _sendrec SEND = 1 RECEIVE = 2 BOTH = 3 SYSVEC = 32 _send: *SEND L0 _receive: *RECEIVE L0 _sendrec: *BOTH L0 L0: int SYSVEC itoa.s.s# _itoa _itoa _itoa: ,#6 _next jge I0013 _next _next _qbuf,#45 I0016 _next _next _qbuf,#48 I0017 #10000 I0019: or jle I0017 cwd iv I001B or jle I001C I001B: 48 _next _next _qbuf,al ,#1 I001C: mul , 10 cwd iv I0019 I0017: _next _qbuf _qbuf .ds _qbuf: .zerow 8/2 _next: .zerow 2/2 .text stb.s.s#l___stb ___stb ___stb: jle I0013 I0017: (),al I0017 jmp .dsret abs.s.s#mM_abs _abs _abs: or jge I0013 jmp .sret atol.s.s#@_atol _atol _atol: ,#8 al,() al,__ctype_+1 testb al,#8 cmpb (),#45 I0019 #1 I0019: 48 , ,#10 jae I0018 0 .mli4 , adc , , I0019 I0018: or je I001C sbb 0 I001C: dx jmp .dsret ctype.ss#__ctype_ __ctype_ __ctype_: 8192 2056 2056 8200 2080 1040 1028 1028 1028 1028 4100 16705 16705 16705 16962 16962 16962 .word 32 .text index.ss#}_index _index _index: I0014: al,() al, I0013 cmpb I0014 jmp .sret bcopy.ss#\_bcopy _bcopy _bcopy: (),al jmp .dsret getutil.s#0_get_base, _get_ze, _get_tot_mem _get_base, _get_ze, _get_tot_mem endbss _get_base: ds _get_ze: endbss _get_tot_mem: cli es 6384 L1: es, seg es ()xA5A4 seg es () 0xA5A4 L2 4096 0xA000 L1 L2: es sti rand.s.s#_rand _srand _seed: 1,0 _srand _srand: _seed, _seed+2, .c _rand _rand: 0077 838 _seed+2 _seed .mli4 12345 adc #0 65535 #32767 _seed, _seed+2, _seed 32767 #0 cx jmp .cret rindex.s#_rindex _rindex _rindex: I0014: al,() al, I0013 cmpb I0014 di jmp .dsret setjmp.s#;_setjmp, _longjmp _setjmp, _longjmp _setjmp: *2 , *2, *4, _longjmp: * * L1 L1: L2: *0() je L3 *0() or L2 hlt L3: *0() ,*2 *4 , adi.s.s#(q.a .a: 2 1f 1: 4 9f adc 9: .trpilin .trpilin and.s.s#(D.and .and: sar 1 1: () stow 1b cii.s.s#*.cii .cii: #1 2f #2 2: je 8f #2 je 1f #4 9f 2 9f 8: 1: 4 9f cwd 9: EILLINS = 18 .fat EILLINS .fat cms.s.s#+`.cms .cms: sar 1 repe cmp je 1f 1: , cmu4.ss#+p.cmu4 .cmu4: xchg 2() ja 1f jb 2f ja 1f je 3f 2: -1 3: 1: com.ss#+7.com .com: sar 1 1: not 1b csa2.ss#,.csa2 .csa2: 2 4 ja 1f sal 1 6 test jnz 2f 1: test jnz 2f ECASE = 20 .fat ECASE .fat 2: csb2.ss#,.csb2 .csb2: 2 1: 4 jl 4f 1b 2 2: test jnz 3f ECASE = 20 .fat ECASE .fat 3: 4: 2b cuu.ss#-.ciu .cui .ciu: .cui: : je 8f #2 je 1f #4 9f 2 9f 8: 1: 4 9f 9: EILLINS = 18 .fat EILLINS .fat _dup.ss#'B.dup .dup: , sar 1 rep mov dvi4.s#-.dvi4 yl=6 yh=8 xl=10 xh=12 .dvi4: yl() yh() cwd 7f jge 1f je 7f 1: xl() xh() jge 2f sbb not 2: v xchg v 9: jge 1f sbb 0 1: ,#8 7: jge 1f yl() sbb 1: xl() xh() jge 1f sbb not -2() 1: 16 1: shl 1 rcl #1 rcl 1 ja 3f jb 2f yl(), jbe 2f 3: 1b 1f 2: yl() sbb 1b 1: 9b dvu4.s#-#.dvu4 yl=6 yh=8 xl=10 xh=12 .dvu4: yl() yh() or 7f xl() xh() v xchg v 9: ,#8 7: xl() xh() 16 1: shl 1 rcl #1 rcl 1 ja 3f jb 2f yl(), jbe 2f 3: 1b 9b 2: yl() sbb 1b 9b exg.s#.J.exg .exg: , #4 sar 1 1: xchg () 1b 2: fakfp.s#/.mlf,.dvf,.ngf,.adf,.sbf,.cmf,.zrf,.fif,.fef .mlf8,.dvf8,.ngf8,.adf8,.sbf8,.cmf8,.zrf8,.fif8,.fef8 .mlf4,.dvf4,.ngf4,.adf4,.sbf4,.cmf4,.zrf4,.fif4,.fef4 .cif,.cfi,.cuf,.cfu,.cff .mlf: .dvf: .ngf: .adf: .sbf: .cmf: .zrf: .fif: .fef: .mlf4: .dvf4: .ngf4: .adf4: .sbf4: .cmf4: .zrf4: .fif4: .fef4: .mlf8: .dvf8: .ngf8: .adf8: .sbf8: .cmf8: .zrf8: .fif8: .fef8: .cif: .cfi: .cuf: .cfu: .cff: EILLINS = 18 .fat EILLINS .fat gto.ss#0!.gto .gto: 4 ,2 @ iaar.s#1].iaar .iaar: #2 .unknown .unknown mul 4 ilar.s#1Q.ilar .ilar: .unknown #2 .unknown .lar2 .lar2 inn.s#1.inn .inn: 8 v 2 jae 1f testb al,bits jz 1f 2f 1: 2: , bits: .byte 1,2,4,8,16,32,64,128 ior.s#2D.ior .ior: sar 1 1: or () stow 1b isar.s#2P.isar .isar: 2 .unknown .unknown .sar2 .sar2 lar2.s#3.lar2 .lar2: 4 imul sar 1 jnb 1f ah,ah lodb 1: 4 , rep mov loi.s#4r.loi .loi: sar 1 jnb 1f ah,ah lodb 1: , rep mov mli4.s#4o.mli4 yl=2 yh=4 .mli4: mul yh mul yl mul yl ,#4 mon.s#5.mon .mon: .stop .stop nop.s#5.nop .nop: rck.s#6].rck .rck: jl 2f 2 jg 2f 2: ERANGE = 1 .error ERANGE .error rmi4.s#8.rmi4 yl=6 yh=8 xl=10 xh=12 .rmi4: yl() yh() cwd 7f jge 1f je 7f 1: xl() xh() jge 2f sbb 2: v xchg v 9: xh() jge 1f sbb 0 1: ,#8 7: jge 1f yl() sbb 1: xl() xh() jge 1f sbb 1: 16 1: shl 1 rcl #1 rcl 1 ja 3f jb 2f yl(), jbe 2f 3: 1b 9b 2: yl() sbb 1b 1: 9b rmu4.s#87.rmu4 yl=6 yh=8 xl=10 xh=12 .rmu4: yl() yh() or 7f 1: xl() xh() 2: v xchg v 9: ,#8 7: xl() xh() 16 1: shl 1 rcl #1 rcl 1 ja 3f jb 2f yl(), jbe 2f 3: 1b 9b 2: yl() sbb 1b 1: 9b sar2.s#9.sar2 .sar2: xchg 4 imul sar 1 jnb 1f stob 1: rep mov , sbi.s#9~.sbi .sbi: 2 1f 1: 4 9f sbb 9: .trpilin .trpilin set.s#:.set .set: , sar 1 1: 4(_), 1b 8 v jae 2f dl,bits() orb 4(),dl 2: ESET = 2 .error ESET .error bits: .byte 1,2,4,8,16,32,64,128 sti.s#;g.sti .sti: sar 1 jnb 1f stob 1: rep mov , strhp.s#<.strhp .reghp, .limhp, .fat EHEAP = 17 .strhp: .reghp, .limhp jb 1f 01000 0177000 .limhp, jae 2f 1: 2: EHEAP .fat xor.ss#>B.xor .xor: sar 1 1: () stow 1b error.s#..error .error: 1 sal cl .ignmask .trp test .ignmask 2f .trp 2: unknown.s#=>.unknown .fat EILLINS = 18 .unknown: EILLINS .fat fat.sn.s#/,.fat .fat: .trp .stop .trp .stop trp.sn.s#=p.trpvz .trpilin .trpcase .trprang .trpset .trpnofp .trpheap .trp .M: .zerow 24/2 .trpvz .trpilin .trpcase .trprang .trpset .trpnofp .trpheap .trp .trpvz: 6 #.Mvz .Trp .trpilin: 8 #.Milin .Trp .trpcase: 0 #.Mcase .Trp .trprang: #.Mrang .Trp .trpset: #.Mset .Trp .trpnofp: 8 #.Mnofp .Trp .trpheap: 7 #.Mheap .Trp .Trp: .trppc xchg .trppc test jz 2f 2: 2 .Write _exit .trp: #21 jae 1f sal #1 .Mtable test jz 1f 2f 1: .Mtrp+14 6 1: #7 '0' ,dl sar #1 sar #1 sar #1 1b #.Mtrp 2: .Trp .Write: .M+2,#4 .M+4, .M+6, .M+10, .M .M 3 int 32 .Mtable: , .Mrang, .Mset, 0, 0, 0, .Mvz, 0 , 0, 0, 0, 0, 0, 0, 0 , .Mheap, .Milin, .Milin, .Mcase .Mvz: .asciz "Error: Divion by 0 \n" .Milin: .asciz "Illegal EM instruct'n\n" .Mcase: .asciz "Err in EM case instr \n" .Mrang: .asciz "Variable out of range\n" .Mset: .asciz "Err in EM set instr \n" .Mnofp: .asciz "Floating pt not impl.\n" .Mheap: .asciz "Heap overflow \n" .Mtrp: .asciz "EM trap 0000000 octal\n" stop.s.s#<.stop .stop: _exit ret6.s.s#66.6 .area .6: .area .area+2 .area+4 ret8.s#7@.8 .area .8: .area .area+2 .area+4 .area+6 lfr6.s#3:.lfr6 .area .lfr6: .area+4 .area+2 .area lfr8.s#4D.lfr8 .area .lfr8: .area+6 .area+4 .area+2 .area retarea.s#7.area .area: .zerow 8/2 blm.sa.s#)B.blm .blm: 2 4 rep mov ,#4 vars.s.s#=.reghp, .limhp, .ignmask, .trppc .reghp, .limhp, .ignmask, .trppc .reghp: endbss .limhp: endbss .ignmask: 0 .trppc: 0 return.s#8.define .sdret, .dsret, .sret, .dret, .cret .text .dsret: pop di .sret: pop si .cret: mov sp,bp pop bp ret .sdret: pop si .dret: pop di jmp .cret .cmi4.ss#*.define .cmi4 .text .cmi4: pop bx | return address pop cx pop dx pop ax push si mov si,sp xchg bx,2(si) pop si cmp bx,dx jg 1f jl 2f cmp ax,cx ja 1f je 3f 2: mov ax,#-1 ret 3: xor ax,ax ret 1: mov ax,#1 ret .crypt.s#{_crypt _crypt _crypt: ,#76 _1: .zerow 14/2 I0015: #67 jge I0012 -67(_) I0015 cmpb 1 I0017 cl, I0017: al,1 sal cl 128 cwd iv -7, I001C: cmpb je I0019 #8 jge I0019 I00111: #7 jge I001E #1 sal cl test je I00113 4 I00113: I00114: 3 sal cl -67() 1 I001E: 4 cwd iv cwd iv sal cl test je I00116 push ax jmp I00117 I00116: I00117: 56 -67() I001C I0019: testb al,#1 je I00119 A I00119: I0011A: -3(),al al,1 testb al,#1 je I0011C D I0011C: I0011D: ,al test -7,#1 je I0011F I00120 I0011F: I00120: -1(),al I00122: -7 -7 1 #65 I00127: or jl I00124 -67() al,-67(_) I00127 I00124: al,-1() -67(),al I00122 I00121: I0012B: #12 jge I00128 2 _1 I0012F: #6 jge I0012C 2 _1 -7, -7 6 mul ax,di lea bx,-67() cmpb je I00131 sal cl 2 I00131: I00132: or -7 I0012F I0012C: 2 _1 -7, -7 48 2 al,_1 57 jle I00134 2 _1 -7, -7 7 I00134: 2 al,_1 90 jle I00129 2 _1 -7, -7 6 I00129: I0012B I00128: bl, _1,bl bl,1 _1+1,bl _1+13 _1 jmp .dsret portio.s#{_port_out, _port_in, _peek _port_out: 4 6 out _port_in: 4 in 6 _peek: es es, seg es es eclosedir.s*$TR_closer _closer _closer: or 6() I0013 _errno,#14 -1 () 6() _free _free _close jmp .dsret opendir.s*${R_openr _openr _openr: ,#6 _1: .zerow 30/2 _open or jge I0013 _1 _fstat I0015 _1+4 61440 16384 je I0016 I0015: _close _errno,#20 8 _malloc or je I0019 024 _malloc 6(), 6() I001A I0019: _errno , or je I001E _free I001E: _close _errno, I001A: (), 4() 4() 2(), jmp .dsret rewinddir.s*$R_rewindr _rewindr _rewindr: or 6() I0013 _errno,#14 .s 4() 4() 2(), () _lseek ,#8 jmp .sret telldir.s*$R_tellr _tellr _tellr: or 6() I0013 _errno,#14 -1 65535 4() 2(), jge I0017 2() 6() 6 4 I0017: () _lseek ,#8 dx jmp .sret seekdir.s*$R}_seekr _seekr _seekr: or 6() I0013 _errno,#14 .ds 4() 2(), jge I0016 2() 6() 6 4 .cmi4 jle I0017 2() I0017: #1 I001D: 4() 2(), jl I00111 _readr je I001F 2() I00111: 2() 6() , 6 4 .cmi4 jg I001F I00117: 4() 6() , jae I00114 4, I00115 6, I00115 6() 2(), .ds I00115: 8 , 7 I00114: 4() 2(), I001D I001F: or I0011C _errno,#22 .ds I0011C: mov 4(si),#0 4() 2(), () _lseek ,#8 or je I0011F .ds I0011F: or I001D jmp .dsret readdir.s*$R7_readr _readr _readr: or 6() I0018 _errno,#14 I0018: 4() 2(), jl I001A 4() 4() 2(), I001A: 4() I001D 024 6() () _getdents 4(), 4() jg I001D I001D: 2() 6() 2() 8() 2(), 2() or () je I0018 jmp .dsret getdents.s*$lR~_getdents _NameLen: 14 1 I0015: cmpb () jbe I0012 I0015 .ds _getdents _getdents: , _1: .zerow 30/2 _2: .zerow 514/2 I0023 _errno,#14 -1 I0021 I0023: _1 _fstat je I0026 -1 I0021 I0026: _1+4 61440 16384 je I0029 _errno,#20 -1 I0021 I0029: _lseek ,#8 , , jge I002C -1 I0021 I002C: _errno , I00211: , I002E I00214: 512 _2 _read -12(), -12(),#-1 jne I00212 _errno,#4 je I00214 I00212: -12() jg I00217 -12() I0021 I00217: #_2 I0021C: -12() _2 jae I00219 () je I0021A 10-0 4 2() _NameLen 4 cwd iv sal cl -1, -1 jbe I00221 _errno,#22 -1 I0021 I00221: () (), 2(), _2 cwd adc 4(), 6(), -1 8(), al,16() -15(),al 16() 10-0 -1 2() 10() _strncpy al,-15() 16(),al -1 I0021A: I0021C I00219: -12() _2 jbe I00211 _errno,#5 -1 I0021 I002E: mov cx,-2(bp) mov _errno, I0021: jmp .dsret etermcap.s#&_tputs _tgetflag _tgetent _capab _tgoto _tgetstr _tgetnum _tgetent _tgetent: ,#8 _strlen , _capab, _1 _getenv or I0013 #_2 I0014 cmpb (),#47 je I0014 _3 _getenv or je I0019 _strcmp I0019 _strcpy I0019: #_4 I0014: _5 _fopen I00110 -1 I00110: 024 _fgets je I001F I00113: _strlen 2 cmpb (),#92 I00112 024 _fgets jmp I00113 I00112: I00118: cmpb (),#124 je I00115 8 I00115: I0011C: cmpb (),#32 je I0011A cmpb (),#9 je I0011A cmpb (),#13 je I0011A cmpb (),#10 I00119 I0011A: C I00119: _strncmp I00110 cmpb ,#124 I00110 _fclose I001F: _fclose .ds _tgetnum _tgetnum: _capab or je I0022 I0027 I0022: -1 I0021 I0027: cmpb (),#58 je I0026 I0027 I0026: I002C: cmpb () je I0029 I002E: cmpb (),#32 je I002F cmpb (),#9 je I002F cmpb (),#13 je I002F cmpb (),#10 I002D I002F: I002E I002D: _strncmp I00225 I00217: cmpb () je I00216 cmpb (),#58 je I00216 cmpb (),#35 je I00216 I00217 I00216: cmpb (),#35 je I0021C -1 I0021 I0021C: I00221: cmpb () je I0021E al,() 48 jl I0021E al,() 57 jg I0021E al,() 0 mul 48 I00221 I0021E: I0021 I00225: cmpb () je I002A cmpb (),#58 je I002A I00225 I002A: I002C I0029: -1 I0021: .ds _tgetflag _tgetflag: _capab or je I0032 or I0037 I0032: -1 I0031 I0037: cmpb (),#58 je I0036 I0037 I0036: I003C: cmpb () je I0039 I003E: cmpb (),#32 je I003F cmpb (),#9 je I003F cmpb (),#13 je I003F cmpb (),#10 I003D I003F: I003E I003D: _strncmp I00317 I0031 I00317: cmpb () je I003A cmpb (),#58 je I003A I00317 I003A: I003C I0039: I0031: .ds _tgetstr _tgetstr: ,#6 _6: I0041F 12 48 I00432 49 I00432 50 I00432 51 I00432 69 I00429 92 I0043A 94 I0043A 98 I0042D 102 I0042E 110 I0042A 114 I0042B 116 I0042C _7: I0043B 92 2 I00426 I0043B I00425 _capab or je I0042 I0047 I0042: I0041 I0047: cmpb (),#58 je I0046 I0047 I0046: I004C: cmpb () je I0049 I004E: cmpb (),#32 je I004F cmpb (),#9 je I004F cmpb (),#13 je I004F cmpb (),#10 I004D I004F: I004E I004D: _strncmp I0043D I00417: cmpb (si),#0 je I00416 cmpb (),#58 je I00416 cmpb (),#61 je I00416 I00417 I00416: cmpb (),#61 je I0041C I0041 I0041C: () I00421: cmpb () je I0041E cmpb (),#58 je I0041E al,() I00423 I00425: al,() 64 () I0041F I00426: al,() I00427 I00429: () ,#27 I0041F I0042A: () ,#10 I0041F I0042B: () ,#13 I0041F I0042C: () ,#9 I0041F I0042D: () ,#8 I0041F I0042E: () ,#12 I0041F I00432: I00436: cmpb () je I00433 al,() 48 jl I00433 al,() 57 jg I00433 al,() 3 sal cl #48 , I00436 I00433: () I0041F I0043A: () al,() jmp I0041F I00427: _6 .csb2 I0043B: () al,() I0041F I00423: _7 .csa2 I0041F: () I00421 I0041E: () () I0041 I0043D: cmpb () je I004A cmpb (),#58 je I004A I0043D I004A: I004C I0049: I0041: .ds _tgoto _tgoto: ,#8 _8: .zerow 24/2 _9: I0053 5 37 I005F 43 I005B 100 I00511 105 I00510 114 I00515 _10: I00516 37 I0058 #_8 I0055: cmpb () je I0052 al,() I0056 I0058: al,() I0059 I005B: I005D I005E I005D: I005E: , al,() add cx,-8() (),cl I0053 I005F: (),#37 I0053 I00510: ,#1 I0053 I00511: I00513 I00514 I00513: I00514: , , 10 cwd iv 48 (),al cwd iv #48 (),dl I0053 I00515: ,#1 I0053 I0059: _9 .csb2 I00516: al,() (),al I0053 I0056: _10 .csa2 I0053: I0055 I0052: () _8 .ds _tputs _tputs: or I0066 I0061 I0066: cmpb () je I0065 () I0066 I0065: I0061: .s _capab _capab: .zerow 2/2 _1: 17748 19794 16707 80 _2: 25903 25460 .word 29743 29285 25453 28769 _3: 17748 19794 _4: 25903 25460 29743 29285 25453 28769 _5: 114 .text   Dn,%P@أPSQP;UPPVW~~82[ƋFDDUPVvWD0ǃ~ut1[8Vr[[CUPV^J[ƋFDCUPVvW t3h~HhQ:[ƃu hh96p,t6p,6r,u>hȋhp,p,뚃>hu1P6r,Fr,r,VX?UVWFFF,6H uYFDP\Gt\^^\Gt\^^o\Guf\^^T| tMu6]Gu4]^^"]Gu]^^X<=붻X<1DPDP16ttd,[[)DRPW,[[D0-lRPB,[[X;D0=~ ~PLP,[[Fv/DF^Gu^g>,uI>,tB^GF,9N}+^,,^w^XXYOF̋^O,,>,u,>,t ,|, t1>,}*}u ,uu,XY,,=11Ƀ>,|A,'\Gu\^^'V[X:Fvv>*tHGu HgNHNHH*u<6~H+[F~u /PP+[[<+~HP*P*,[[F~uP*[P'[P&[PO'[HIs5 tD%=uV'[46~HP2[[v!-[F~t6~Hv{2[[v@+[F~u ?PPk*[[*P87[F~t APPM*[[;U;UVW6HU[HHsH5 t=Dt3\^^\^^DuL\ 7 [4뿃I;UPVW~ tR}u2u}ttLDuL\ 7[}u;D]0K%0=0u:=:U VWHFF5=uD0F~tx\GtFF~t<^97u3^_D9Gu#^7q[~5F\^-\D9Gu\Gu\uF FF~t~t 45[5O~^K%0=0u F|u~%9UPPVW6:+*[6:+*[Ɓ| 9UV6:+*[FVvv6:+*[1Z[ ˉV^vv6:+*[Y[ ӉN^6:+g*[Ɓ| F V9U6:+#*[=t9UPP'[6,-XC6X8UP/ P&[1Pv,PV PPv,PB P X$6X8UP0P&[,-RP6*-6(-,X5XZt8Uv@P,P*]8UVW,GljO t6:+O)[F&-sFFF$8UVvV6:+$)[,-P,-P6:+)[P|[PtPm[PfzP]qVW,-PK(-*-P;=tDP%[PTP%[PP6X4V@X4Xo7UPV6:+t([ƃuPL ~ 6,-P8| 6,-P"}|,-PV[PX7UPV6:+ ([Ɓ} |x,-PV[PX6UPPVW*VPdP$[>*t~P$[6>,-PU[D1PP,P DH 6HP$[D6,-[D\ t 6,-PX$[[\w H 6H[6,-[ uL6ZXh3Ku 1P[@P2P$[1P[%K%= t4>,-|>,-},-lQs[Pf[Ƌ,-LPR[6,-[DP:[Ƌ(-*-LTP[6,-[DP[1PP,PDvP[ƸP1P,PDVP[1PP,PD,-L2P[1PP,PbD(-*-LTrX2DH 6HUVvFN-vvFNXY t'|uy46:+|%[LBT\ˈU4UVWP[F^F.PYPD"[,-(-*-1P8[Ɖ5(-*-LT/BP[Ɖ56,-N[DF^P[Ɖ51PP,PJDP[Ɖ5P1P,P%D,-(-*-P[Ɖ51PP,PD(-*-LTPk[Ɖ5FVDPvvXPB[Ɖ5P4[Ɖ5 P&[Ɖ5FVFDDPFRP? FX)0~t NuF~tF2UVvW~ ~ t4O uP [|tP [DTu2UbVW|>*u 7vsP_ [P[e1P[YP[ƸP3[DAFF~t@~t:>HNt=~FN t ^F5^H^6H1P{[1PX[1Pt[[Pc}P([*Pt[[++Pt[[+ +H\7[V8[1P[FiX.>*~HPFP+1P,[HP5HH.,-(-*-(-*-HHP[XI.*H>*~<HHF~%}^LJHFFPHP+j0*1P>*u,P[bP_>Hu_>HuX:Pk[N,-(-*->Hu>Ht(-*-9Hu9HtZP4[(-*-HHX|-H>*u*1P PX*-FDH 6H1PX/U>*uP[/UVW1~v<tF!3FFFp/UVWHPv[1XÉ߃=tSdPv S2* u85D3Ft vP8[[~uDt vP [[LV\=v)[@FFtF~d~Fdv[Ɖ5vvD P)FD~uLLVX.UPPVW%F1ÐHރ<tF9Gu44)lj+Pi%[ t6:+pP4" u 4rP[[I.FP.-P[[}1-UVvF<tP**LX+F-U=tP[>*t+P*P'[P$[[~H>~Hu*PPu[[<+~HP[C-UVv0=| 0-&'('-UVW++9+u9 +u&'++9+u 9 +u&' N~u[ ^^^މF0ǁuF0ljF0 ljv~O t FS6[F?uF0ǁuF0ljF0 ljO tFS[F?uFvv>FF01NFF01NFF01N4'X.)~u xP'PQ[[~^GO0 NFf^㋇|F%^G^㋇|F^G^㉿|Ff+U>>'uC>'P+UVWHP [HHsG5 t<\ ?u.\ G0F~t~u \ GDt [4*U~|vvFN؃QPXZ*UVW~u P'P<[[vVF9Fu39Vu.~|~}FlPC[(P7[ƋFDP%[ƋFNDLVP [ƋFDV1^ .F^~.FrX^F9uH^_GO +FNQP[[FV tvvvv) }^FNFNF u P'PH[[F FuPk[Ɖ|NFN+EM FNF9Fu9VuP<[ƋFD|P'[ƋFNDL|V@'X&XD)UNFVFNЉFN>+u>+t-vv>+u >+uPPX1Z[!!ˉV^+++V^ ыFV#F#VRNV^#V#^Y ى(UVvWPP'P[[dÁ S[ù~&^C'~tt~tt~t J'H&dÁ S{[ù,&^&~tt~tt~tJ'%/P'X%FFF4P'P-[[DFV\.F%F9Ft J'%~uF9FtFFFN9Ft9NtFFF9Ft FFo~uF9Fu^FFQFN9Fu9Nu>FF1F9Ft J'$&vvvv&1 ~AșFVF9Ft J'$vvvv&1 |AșFVF9Ft J'$vvvvJ&1 }AșFVF9Ft J'K$vvvv&1 AșFVYF Ft ^$NdÁ SH[ù#^$~t J'#^#F Fu ^#dÁ S[ù#^j$~t J'#^#FN F NFNFN3F3NFNFN#F#NFNrFVvvS#FVZvvvv"FVBvvvvD#FV*NFVFVNFVFVFN؃FNv     v1PP{$1 uAșFVFNЉFN~|~| J'e"FFFFFNFNFNr~|"~uFF&F9FtJ'"S~| J'"AFN+FNFN#+ +NV++NVvv[[1 uAșFVdÁ S[ù!^\"1~t@FVFN3F3NQP1PPA#1 |AșFV\4FF~u^uudÁ Sb[ù!^!~u~|vv1PP" | J' ^FV_ËOFNJ' FFFN-ǃ } F VFVGFN#F#N tFN#F#N9Fu 9NuP1PXFVqFF~ } F VFVGFN#F#NQP1PP!1 uAșFV!vvvvlFV\'X^vF vF!UVW~G0F~uG0FG0 FFFFFFN uG0FG0F~uG0FG0 FF~t&fv S[[ù  1P[Ɓ~u\w ^7vFDi^7~~ Nv4^^7^7F tFVb[vh UVW^F0F~u"^F0F^F0 FF~u ~}1PF9Ft1PF^7F9F}$ t D^FPY9t1P{F4ԋF9Ft1PfF^7.FF9F|DPD0-lEUDEUDLEMzDEn\GDE\GO EMO\GDED\GW EU,\GDE\GO DLEM'XGF4(^F0F~u"^F0F^F0 FF~t5fÁ S [ù^~uF Fu1PvvvPX\UVWF~F=uu5vD0F4 t3FL01N4 tFL01NF FFF~}^FË㋇|FF~te ^^^1P^FùY9u&F@^PSW tF~F^GO0 NNm~~t F~}~t P'P [[U+ +t  + +uh(P [t>*u>*t>*u u:, 6H"[>*t6H[:>Ht(P [U VWFH~Hsl^? t]] u] 9t MP(P [[D u LtDFDtDFFDdLvߋ=럃FUPPVWHIs5 t L4UVWHHs< tFW[~UPPVWHHs!5 t| u t(P [[4U~u~ t%~u~ t~u~ t |P(P [[FN -ЋV^ V^!!ˉЉ/UVWF>H ul1EPWP(P [[EF^F9GtFF^GF6+6+vv<FV^FNGO u utP(P [[6+6+vv++FV6+6+vv+ +FVDRP6+6+> }DRPvvFV6+6+vvwFVDFVFV0DF~t$^GFVFV^Fݻ6(X4 L(X-=U VvWF ubD0FDPS|u tl[Kt[Bt[9t[0| t)uuj[ua[)X=ڻ$)Xv~tFv[DPv[DFD0-lF2)X;F9Fu>*uFV[v+F@9Fu3>*u,FDvF[FV[1PX[ƋFFDv[FF-F&^K%0= uFv[H)XDP^Ku6~HP[[D0-lP[t[tt[[~u \wO[~}\_w[|\wS[pt[g6~HP.[[tv[t[J6~HP[[tY[tt3[[)tK[v6~HP [[\)Xl)XFV7[v~HGu)PN[*UVv utP)P[[tt[[\w[t[{6~HPY [[t[tt{[[Z6~HP8 [[DPN[C6~HP! [[6~HP [[ 6~HP [[t[DP[)X4AbUPPVvWF t FEF=v=[ t)FD9F}\^6~HP [[F4UVvLDtDtPP[V[UVvDu$LDuDtPPO[Vz[U6H[P4[6H\[6H6H4[[}U帘P[6H6H[[bUF6~HP [[NUF9Fu9Vu v9[36~HP [[1#F#NPR[FVP<[UVv|x}x6~HP] [[6~HPN [[V[UF%6~HP2 [[F6~HP [[UVv|Ht PPXRP[[P[H,UPPV6H t0FN9Du!9LuDF^OO4U1U6*6|Hd*P6>+>*tH SdPz*P6>+*P6>+z[[vv6>+k*P6>+][[P[sUvv*P6>+9*Pp[QUPV1}ヿ:+t :+[F^]UVvFPvVD@tV[^]UFPv6<+<+G@t6<+[]Uv[ t1P vvn[[PX]UPVW~1}9:+u LJ:+F|P+W3[5[E t }tu) [~W [1PX_^]UVWF1ヿ:+t|1PG^PvNPvO[[F~}c1PNPv [[F~}1PP1PPvh*N1PvP [[F~}1P[1PV +X P[ u1P+^+V[ uWPX_^]UVW5NjvF?tNNQNQN QQO t ^ F Fvv[[_^]UPVNQQPv[[ tV>Q}QىQP6QX^]UPVvW1F?tG@_^]UVvW1FQ>Q t>Q t>Q t>Q t>Q uFԀ<-uFFF-0F~ s ~~tPWX_^]ù UF^ ]UcP/[]UVvW~FN t GF_^]Ë+G;Gw Ë_u ӅuPOI|;u_uPVW\D9u6!}t.1ҋL D !}!}؃_^[R1!}\ߋD T !} T9wr 9Tv+T@_XމÉs0䬉P)ĉ։RgZPgZ‰ȉg[VW\D9u:!}t21ҋL D !}1ۃ| }ڃЉ_^[1!}\ߋD T !}ڹ9wr 9Tv+T@릉X߉sX׉Y+0+(+ +,(,?,1ۇl,tPXûSRP;ƒs⻌+Ӌt],0KO,UQ^Q^Q^RQPPQ ]xwƉ[_^]^_[YZXV\^9|9w t1ø$Header: alloc.c,v 1.1 87/04/01 14:04:10 erikb Exp $  alloc.calloc.cout of memoryalloc.c$Header: backward.c,v 1.1 87/04/01 14:04:12 erikb Exp $h"A\)6?AIehq333Abackward.c$Header: cleanup.c,v 1.1 87/04/01 14:04:13 erikb Exp $cleanup.crtemp file disappearedcleanup.ccleanup.c < +776   90   aaradfadiadpadsaduandaspassbeqbgebgtbleblmblsbltbnebracaicalcffcficfucifciiciucmfcmicmpcmscmucomcsacsbcufcuicuudchdecdeedeldupdusdvfdvidvuexgfeffiffilgtoincineinlinniorlaelallarldcldeldfldllfrlillimlinlnilocloelofloilollorloslpblpilxalxlmlfmlimlumonngfnginoprckretrmirmurolrorrttsarsbfsbisbssbusdesdfsdlsetsigsilsimslislusrisrustestfstistlstrststeqtgetgttletlttnetrpxorzeqzerzgezgtzlezltznezrezrfzrlbssconendexaexcexpholinainpmesprorom`````|```` $Header: flow.c,v 1.1 87/04/01 14:04:19 erikb Exp $$Header: getline.c,v 1.1 87/04/01 14:04:20 erikb Exp $^ f     B T a u  5 m0mmmmmummPt- 5CQ---^5@ Ucn^ '3K333*'int expectedsymbol expectedoffset expected.%usymbol expectedoffset expectedunknown instruction byteprocedure unterminated at eoflabel %u multiple definedunknown offset byteunknown byte in arglisttoo few parametersoffset expectedunknown pseudobad second arg of PROEND misplacedbytes for locals still unknowninconsistency in number of bytes for localsThis is not allowed outside a procedure$Header: lookup.c,v 1.1 87/04/01 14:04:22 erikb Exp $%s is both proc and datalabelredefined symbol %s$Header: main.c,v 1.1 87/04/01 14:04:23 erikb Exp $LnUsage: %s [-Ln] [name] rCannot open %swrong input filewcan't create %sRQ kjEE`E 4'*4E E 24E` E`?'E EL'E` E `Y<<`< fEEEt<<<EEQE QEEEjE jEGG>>HGH>ooddpopd  &|! /~! 9! C! M!W!a|! k!u-U"U-999Hn9Hc9>=9GF9HF9H=99Fn'99(99=c'99)9999'99+9:9:-9:+ :9:9/:9+::::0::+-::a2E3?9dcJ9onT9pn^9pch:4:r:Hq|:He:>4?:G4I:HI:H?:d4e:o4q:pq:pe=c"=c=c999;?e"NHNp>NGNo>N>Nd>NoNGA*No"NdN>A*Nd2OGOo>BO>Od>LOoOGA*OoVOdO>A*OdfNpNHD*NpvEG'E'KEHE F~E FE-GU<-LUEFMF'EIMI'EQGU E}y}H EyR EKH\ Espf Ep <{z E  E E+* EE" EE%" EE" EE$" EE" Ey E8y8 E{y{ E y  E[y[ E[ E\y\ E\ E7y7 Efyf% Ey/ Ey9 EyC F'n<(M F4n<5X FEQ}Ec Ut!tn Uu!wx Uv!x Uw!u Ux!v Uy!y Fn" Hh I'q<) I4q<6 IEQ}E HA Iq" ph QU"UQ U"` T"_ U`" T_"% UU"/ TT"7 dp? opH e?X~XQ qIXX\ :p:HXXg E`E`E`t <`<`<` E`EE ` <`<< ` E`EQE QE` E`EjE jE` tty tyt t| t| utx uyu u| u~ vtw vyv* v|4 v> wtvH wywR w|\ wf xtup xyxz x|~ x ytt yyy y|| y HEH HEEEHEE$ HEEEH HEEE|H E$| HEEEH E$ HEEEEEH  tt( yy4 ||@ L ttX yyd |! p !z I9 I9 F9 F9 ||  |< ~< < <~ < <| < < < (< 5 < B< OCCC\CCC fCXXsC}EPy}!EEEEEE`E3EEQEEE-EEE EEE8 EEE8EE{ EEE{EE[ EEE\ EEUEE EE7GE7E7EIEqEIqAEhEAh0GEoE GoB?<e<?eZIFqFIqlAFhFAh~GFoF Go?=e=?eIIqIIqAIhIAhGIoI Go??e??eFEnEFnGEoE Go=<c<=c2FFnFFnDGFoF GoV==c==cnFInIFnGIoI Go=?c?=cIE8qEI8qAE8hEA8hGE8oE G8oIF8qFI8qAF8hFA8h GF8oF G8oII8qII8q4AI8hIA8hFGI8oI G8oXFE8nEF8npGE8oE G8oFF8nFF8nGF8oF G8oFI8nIF8nGI8oI G8oIEqEIqAEhEAhGEoE GoIFqFIq*AFhFAh<GFoF GoNIIqIIqfAIhIAhxGIoI GoFEnEFnGEoE GoFFnFFnGFoF GoFInIFnGIoI GoH" :HEEEE8 IE 8I5E8IE$8IE*8*E*qE*qEq Eq*EEQpp$ kpp$ *q!qI*n!nF*h!hA*p pH*o!o G *o!o G *e e?*c c=*p pH*p pH!*d d > 4*d d > GI*IIZF*FFfA*AArH* HH~?*??=*==**hA*hpH*ppH*p                $% #&   *$ ', '. /, 1  5 7 68:  <= ?< @=B AC E F IHJ F F  NJ   R R R   W: YI [^ _ a b@e fi jm n W Y [ _ b f j nxJ z | "V " $ >  U R   R $ * $ $i $    J 3J J     | V JJ    ; = 3  <  V V <I JJ  V^ I $ * V ;;   $ *  ]  $ $ = = !  V       * =  $ $Header: pattern.c,v 1.5 87/06/16 15:19:57 ceriel Exp $$Header: peephole.c,v 1.1 87/04/01 14:04:28 erikb Exp $I?F=qencCkW  E9.d !6 K Kc{7! !!L""$$$$$% %C%peephole.cpeephole.cpeephole.cpeephole.cpeephole.cpeephole.c$Header: process.c,v 1.1 87/04/01 14:04:30 erikb Exp $)))))q****O)*)**)\)No MES EMX encounteredinstructions outside procedureprocess.clocal label %u undefinedprocess.cprocess.cprocess.c$Header: putline.c,v 1.1 87/04/01 14:04:31 erikb Exp $*+++5+***+g+U+_+U+U+U+U+U+U++CN+D;++, -,,,:,,J,T,b,,,,,E-R-`-m-w-----write errorputline.c$Header: reg.c,v 1.1 87/04/01 14:04:32 erikb Exp $41A1A1A1I1\1reg.c$Header: special.c,v 1.1 87/04/01 14:04:33 erikb Exp $$Header: util.c,v 1.1 87/04/01 14:04:34 erikb Exp $%s: error on line %u(%.*s): assertion failed file %s, line %u assertion$Header: var.c,v 1.2 87/06/29 09:00:10 ceriel Exp $/tmp/emoptXXXXXX4ab4r4wB4MMBII+&+0+D8 D7O7X7c7d6o<7s8u7x{7R+,+?,+++Error: Division by 0 Illegal EM instruct'n Err in EM case instr Variable out of range Err in EM set instr Floating pt not impl. Heap overflow EM trap 0000000 octal RR/* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ /* @(#) UTX/32 1.3 hsc.h ver 1.2 */ #ifdef gould /* RT Unix */ #ifndef H_RT_TIME_H #define H_RT_TIME_H #if defined(RCSID) && !defined(lint) static char *h_rt_time_hrcsid = "@(#) (Gould) $Header: rt_time.h,v 1.1 88/01/27 11:58:18 chou Exp $"; #endif #define HSC_CANCEL 0 #define HSC_RELATIVE 1 #define HSC_CYCLE 2 #define HSC_ABSOLUTE 3 /* * HSC_MAX_TICKS cannot be larger than 0xffff (39.321 ms) because of * a bug in the IOP. Since the IOP is a 16 bit processor, it maintains * the 32 bit count in two 16 bit words. However, if a process reads * the timer at the same time the lower 16 bits are going from 0 to 0xffff, * then the upper 16 bits will be decremented twice, leaving a ~40 ms gap. * Only allowing the timer to count down from 0xffff alleviates the * problem, but does mean that the system will have to take an interrupt * every 40ms whether the timer is being used or not. * This bug does not manifest itself if the RTOM timer is being used. * When this bug gets fixed, then set HSC_MAX_TICKS to 2000000000. * * Don't set HSC_MAX_TICKS higher than 2000000000. Overflow will result * in some worst-case scenarios in hsc_interrupt(). 2000000000 is * probably a safe number, but it depends on the time to read the timer * and the time to start servicing an interrupt. 2000000000 ticks at * 600ns per tick is exactly 20 minutes. If you want to set a timer for * longer than 20 minutes, then use a lower resolution timer. * For more details, look in hsc_interrupt and hsc_timeout. * * Update for NP1, 1 ms per tick: * HSC_RATE from 600 to 1000000 */ #define HSC_MAX_TICKS 2000000000 /* clock ticks */ #define NS_PER_SEC 1000000000 /* nanoseconds per second */ #define NHSCCALLOUT 100 /* number callouts (lots) */ #ifdef GOULD_PN #define HSC_RATE 600 /* nanoseconds per hsc tick */ #define HSC_READ_CALIBRATE 100 /* number of times to read */ /* timer for calibration */ #define HSC_BIAS 2500 /* bias for one-shot timers */ #define HSC_REPEATBIAS 1000 /* bias for repeating timers */ #else /* GOULD_NP1 */ /* NP1 uses a 1 millisecond interval timer tick */ #define HSC_RATE 1000000 /* nanoseconds per hsc tick */ #define HSC_BIAS 0 /* bias for one-shot timers */ #define HSC_REPEATBIAS 0 /* bias for repeating timers */ #endif #define HSC_FIRST_TIME 1 /* Calling hsc_timeout the */ /* first time. Always true */ /* for relative and absolute */ /* timers. True only the */ /* first time a particular */ /* cyclic timer is run. */ #define HSC_NOT_FIRST 0 /* The second and subsequent */ /* times a cyclic timer */ /* calls hsc_timeout, this */ /* value is given as an */ /* argument. */ struct hscval { long hsc_seconds; /* seconds since the last boot */ long hsc_nanosecs; /* nanoseconds more since the last boot */ }; #define it_timerisset(hvp) ((hvp)->hsc_seconds || (hvp)->hsc_nanosecs) #define it_timerclear(hvp) ((hvp)->hsc_seconds = (hvp)->hsc_nanosecs = 0) #ifdef KERNEL int hsc_expire(); extern struct callout *hscfree; extern struct callout *hsccallout; extern struct callout hsccalltodo; extern int nhsccallout; #ifndef GOULD_PN #include "../h/io.h"; typedef struct { iocbT ci_cb; int ci_when; enum { it_free, it_busy, } ci_state; double padding; } it_iocbT; #endif #endif KERNEL #endif H_RT_TIME_H #endif gould /* RT Unix */ /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ / char *telnet_terminaltype; /* Telnet terminaltype ptr */ unsigned char *telnet_subptr; /* Telnet suboptions data ptr */ }; /* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ ocesses' locks */ #endif H_LOCKF_H b-b/c1&c3Fc57c9;c=c?dA&dCFdEfdGdIdKdMdOeQ&eSFeUfeWeYe[e]e_fa&fcFfeffgfifkfmfog/gsFg}gh&hFhfhhhhhi&iFifiiiiij&jFjfjjj/* (c) 1985 Gould Inc. * All Rights Reserved. */ #ifndef H_SECURE_H #define H_SECURE_H #ifdef RCSID static char *secure_hrcsid = "@(#) (Gould) $Header: secure.h,v 1.3 88/01/30 21:09:37 wombat Exp $"; #endif RCSID /* * Definitions for secure unix changes */ typedef struct { unsigned s_compartments : 29 ; unsigned s_level : 3 ; } sclassT ; typedef sclassT sec_classT ; # define sec_size 8 /* printed sclassT size */ /* * Routine to compare security levels */ # ifdef s_get_routines int secure_dominate (class1, class2) sec_classT class1 ; sec_classT class2 ; { if (class1 . s_level < class2 . s_level) { return (0) ; } else if ((class1 . s_compartments & class2 . s_compartments) != class2 . s_compartments) { return (0) ; } return (1) ; } # endif s_get_routines # ifdef secure_logging # define S_admin 0 #if defined (secure_logging) && !defined (secure) # define S_reboot S_admin # define S_mount S_admin # define S_umount S_admin # define S_acct S_admin # define S_set S_admin # define S_setdevowner S_admin # define S_mask S_admin # define S_default ((1 << S_mknod) | \ (1 << S_chdir) | \ (1 << S_fork) | \ (1 << S_exit)) # define S_mknod 1 # define S_chdir 2 # define S_fork 3 # define S_exit 4 # define S_open 5 # define S_link 6 # define S_unlink 7 # define S_rmdir 8 # define S_mkdir S_rmdir # define S_rename 9 # define S_accessU 10 # define S_logaccess 11 # define S_conf 12 # define S_chown 13 # define S_chmod 14 #define S_su 15 #define S_passwd 16 #define S_chsh 17 #define S_chfn 18 #define S_vipw 19 #define S_login 20 #define S_logoff 21 #else secure_logging and secure # define S_reboot S_admin # define S_mount S_admin # define S_umount S_admin # define S_mknod S_admin # define S_acct S_admin # define S_mask S_admin # define S_set S_admin # define S_setdevowner S_admin # define S_chdir S_admin # define S_fork S_admin # define S_exit S_admin # define S_open 1 # define S_link 2 # define S_unlink 3 # define S_rmdir 4 # define S_mkdir S_rmdir # define S_rename 5 #ifdef use_sclass # define S_setsclass 6 # define S_chsclass 7 #endif use_sclass # define S_accessU 8 #ifdef use_sclass # define S_accessS 9 #endif use_sclass # define S_accessI 10 # define S_accessDO 11 # define S_accessSD 12 # define S_logaccess 13 # define S_conf 14 # define S_chown 15 # define S_chmod 16 # define S_mail 27 # define S_device 28 # define S_lpr 29 # define S_login 30 # define S_auth 31 #endif secure_logging and secure /* kernel message identifiers */ /* Note: each event has a range associated */ /* with the messages. This range will allow */ /* messages to added without changes to the /* existing message codes and provide checks on */ /* valid messages and provide a convenient way */ /* to identify each message. */ /* accounting messages fall between 0-9 */ # define K_ACCT_START 0 # define K_ACCT_STOP 1 #ifdef use_sclass /* security classification messages 10-19 */ # define K_CHSCLASS 10 # define K_SETSCLASS 11 #endif use_sclass /* access() messages 20-29 */ #ifdef use_sclass # define K_ASECURE 20 #endif use_sclass # define K_ADEVOWNER_B 21 # define K_ADEVOWNER_C 22 # define K_ASUDEV_B 23 # define K_ASUDEV_C 24 # define K_AINTEGRITY 25 # define K_AUNIX 26 /* mount messages 30-39 */ # define K_MOUNT1 30 # define K_MOUNT2 31 # define K_MOUNT3 32 /* umount messages 40-49 */ # define K_UMOUNT 40 /* link messages 50-59 */ # define K_LINK1 50 # define K_LINK2 51 /*symbolic */ # define K_SLINK1 52 # define K_SLINK2 53 /* rename messages 60-69 */ # define K_RENAME1 60 # define K_RENAME2 61 /* mkdir and rmdir messages 70-79 */ # define K_MKDIR 70 # define K_RMDIR 71 /* audit trail file access 80-84 */ # define K_LOGACCESS 80 /* open messages 85-89 */ # define K_OPEN 85 /* mknod messages 90-94 */ # define K_MKNOD 90 /* fork messages 95-99 */ # define K_FORK 95 # define K_RUN_PROC 96 # define K_PROC_EXIT 97 /* reboot messages 100-104 */ # define K_REBOOT 100 /* setdevowner messages 105-109 */ # define K_SETDEVOWNER 105 # define K_SETLOGID 106 # define K_SETUSER 107 # define K_SET_PRIV 108 /* setslogfile messages 110-114 */ # define K_SECURE_LOG_START 110 # define K_SECURE_LOG_STOP 111 /* setslogmask messages 115-119 */ # define K_SET_MASK1 115 # define K_SET_MASK2 116 /* chdir messages 120-124 */ # define K_CHDIR 120 /* unlink messages 125-129 */ # define K_UNLINK 125 /* configuration information logging */ # define K_CONF_VER 130 # define K_CONF_DEV 131 # define K_CONF_MEM 132 # define K_CONF_CPU 133 /* chown information logging - from, to messages*/ # define K_CHOWN_FRM 140 # define K_CHOWN_TO 141 # define K_FCHOWN_FRM 142 # define K_FCHOWN_TO 143 /* chgrp information logging - from, to messages */ # define K_CHMOD_FRM 145 # define K_CHMOD_TO 146 # define K_FCHMOD_FRM 147 # define K_FCHMOD_TO 148 /* mirrored disk information logging - add, remove messages */ # define K_MIRROR_ADD 160 # define K_MIRROR_RMV 161 /* These defines are used to identify Trusted Process generated */ /* messages within the audit trail file */ /* Issued by the login process 200-209 */ # define TP_LOGIN_S 200 /* succcessful login */ # define TP_LOGIN_UBPW 201 /* Unsuccessful bad passwd */ # define TP_LOGIN_UBID 202 /* unsuccessful bad id */ # define TP_LOGIN_URID 204 /* unsuccessful root id */ # define TP_LOGIN_UADM 205 /* unsucc not an administrator */ # define TP_LOGIN_UNSH 206 /* unsuccessful no shell */ # define TP_LOGIN_UNHD 207 /* unsuccessful no home directory */ # define TP_LOGOFF_S 209 /* logoff successful */ /* Issued by the administration server 210-219 */ # define TP_SU_S 210 /* switch user successful */ # define TP_SU_UPW 211 /* switch user unsuc bad passwd */ # define TP_SU_NGZ 212 /* switch user unsuc not group zero */ # define TP_SU_NDIR 213 /* switch user unsuc no directory */ # define TP_SU_NSH 214 /* switch user unsuc no shell */ # define TP_SU_BUID 215 /* switch user unsuc bad UID */ # define TP_SU_BUSER 216 /* switch user unsuc bad user */ # define TP_SU_USGID 217 /* switch user unsuc bad setgid */ # define TP_SU_UIG 218 /* switch user unsuc bad init groups */ # define TP_SU_USUID 219 /* switch user unsuc bad setuid */ /* Issued by the line printer server 220-229 */ # define TP_LPR_BS 220 /* banner suppressed */ /* all issued by the authorization server 230-289*/ # define TP_CHSH_S 230 /* changed shell successful */ # define TP_CHSH_UPW 231 /* chg sh unsuccessful ! in pw file */ # define TP_CHSH_UPV 232 /* chg sh unsuccessful perm viol */ # define TP_CHSH_UPFE 233 /* chg sh unsucc passwd file error */ # define TP_CHSH_UPFO 234 /* chg sh unsucc passwd file open */ # define TP_CHSH_URSH 235 /* chg sh unsucc restricted shell */ # define TP_CHSH_UUCSH 236 /* chg sh unsucc restricted shell */ # define TP_CHSH_UUACSH 237 /* chg sh unsucc unacceptable shell */ # define TP_CHSH_UUAVSH 238 /* chg sh unsucc unavailable shell */ # define TP_PASSWD_S 240 /* changed passwd successful */ # define TP_PASSWD_UPW 241 /* unsuccessful not in pw file */ # define TP_PASSWD_UPV 242 /* unsuccessful perm violation */ # define TP_PASSWD_UPM 243 /* unsuccessful passwd mismatch old */ # define TP_PASSWD_UPMN 244 /* unsuccessful passwd mismatch new */ # define TP_PASSWD_SS 245 /* changed passwd successful same */ # define TP_PASSWD_UPFE 246 /* unsuccessful passwd file error */ # define TP_PASSWD_UPFO 247 /* unsuccessful passwd file open */ # define TP_VIPW_S 250 /* successful */ # define TP_VIPW_UEO 251 /* unsuccessful error occurred */ # define TP_VIPW_UNR 252 /* unsuccessful not root */ # define TP_VIPW_UPFB 253 /* unsuccessful passwd file busy */ # define TP_VIPW_UTFO 254 /* unsuccessful temp file open */ # define TP_CHFN_S 260 /* changed finger successful */ # define TP_CHFN_UPW 261 /* chg fn unsuccessful ! in pw file */ # define TP_CHFN_UPV 262 /* chg fn unsuccessful perm viol */ # define TP_CHFN_UPFE 263 /* chg fn unsucc passwd file error */ # define TP_CHFN_UPFO 264 /* chg fn unsucc passwd file open */ # define TP_CHFN_UUCFI 265 /* chg fn unsucc unchg'd finger info */ # define TP_VIGR_S 280 /* changed vi grp file successful*/ # define TP_VIGR_UPV 281 /* changed vi grp file unsuccessful*/ # define TP_AUTH_U 300 /* unsuccessful attempts to access*/ /* the authorization server */ # define TP_MAIL_NMCHG 310 /* mail name change attempted */ # define TP_MAIL_BMSG 311 /* mail corrupted message */ # endif #ifdef KERNEL # define nullfp ((struct file *) 0) #endif KERNEL /* (c) 1985 Gould Inc. * All Rights Reserved. */ #endif H_SECURE_H st halt */ #define RB_INITNAME 0x10 /* name given for /etc/init */ #define RB_PANIC 0 /* reboot due to panic */ #define RB_BOOT 1 /* reboot due to boot() */ #ifdef GOULD_NP1 #define RB_REBOOT 0x100 /* this is a reboot */ #endif GOULD_NP1 #endif #ifndef H_SEG_H #define H_SEG_H /* * Copyright (c) 1982 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)seg.h 6.2 (Berkeley) 6/8/85 * Gould $Header: seg.h,v 1.2 86/08/08 09:00:20 djk Rel $ */ /* * Mapper addresses and bits */ #define RO PG_URKR /* access abilities */ #define RW PG_UW #endif /* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ #ifndef H_SEM_H #define H_SEM_H #if defined(RCSID) && !defined(lint) static char *h_sem_hrcsid = "@(#) (Gould) $Header: sem.h,v 1.1 86/09/16 14:04:24 djk Rel $"; #endif /* @(#) UTX/32 1.3 sem.h ver 1.2 */ /* @(#)sem.h 6.1 */ /* ** IPC Semaphore Facility. */ /* ** Implementation Constants. */ #define PSEMN (PZERO + 3) /* sleep priority waiting for greater value */ #define PSEMZ (PZERO + 2) /* sleep priority waiting for zero */ /* ** Permission Definitions. */ #define SEM_A 0200 /* alter permission */ #define SEM_R 0400 /* read permission */ /* ** Semaphore Operation Flags. */ #define SEM_UNDO 010000 /* set up adjust on exit entry */ /* ** Semctl Command Definitions. */ #define GETNCNT 3 /* get semncnt */ #define GETPID 4 /* get sempid */ #define GETVAL 5 /* get semval */ #define GETALL 6 /* get all semval's */ #define GETZCNT 7 /* get semzcnt */ #define SETVAL 8 /* set semval */ #define SETALL 9 /* set all semval's */ /* ** Structure Definitions. */ /* ** There is one semaphore id data structure for each set of semaphores ** in the system. */ struct semid_ds { struct ipc_perm sem_perm; /* operation permission struct */ struct sem *sem_base; /* ptr to first semaphore in set */ ushort sem_nsems; /* # of semaphores in set */ time_t sem_otime; /* last semop time */ time_t sem_ctime; /* last change time */ }; /* ** There is one semaphore structure for each semaphore in the system. */ struct sem { ushort semval; /* semaphore text map address */ short sempid; /* pid of last operation */ ushort semncnt; /* # awaiting semval > cval */ ushort semzcnt; /* # awaiting semval = 0 */ }; /* ** There is one undo structure per process in the system. */ struct sem_undo { struct sem_undo *un_np; /* ptr to next active undo structure */ short un_cnt; /* # of active entries */ struct undo { short un_aoe; /* adjust on exit values */ short un_num; /* semaphore # */ int un_id; /* semid */ } un_ent[1]; /* undo entries (one minimum) */ }; /* ** semaphore information structure */ struct seminfo { int semmap, /* # of entries in semaphore map */ semmni, /* # of semaphore identifiers */ semmns, /* # of semaphores in system */ semmnu, /* # of undo structures in system */ semmsl, /* max # of semaphores per id */ semopm, /* max # of operations per semop call */ semume, /* max # of undo entries per process */ semusz, /* size in bytes of undo structure */ semvmx, /* semaphore maximum value */ semaem; /* adjust on exit max value */ }; /* ** User semaphore template for semop system calls. */ struct sembuf { ushort sem_num; /* semaphore # */ short sem_op; /* semaphore operation */ short sem_flg; /* operation flags */ }; /* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ #endif H_SEM_H max; /* maximum value for rlim_cur */ }; #endif H_RESOURCE_H */ s.h rt_tim/* * (c) Copyright 1986, 1987, 1988 Gould Inc. * All Rights Reserved. */ #ifndef H_SHM_H #define H_SHM_H #if defined(RCSID) && !defined(lint) static char *h_shm_hrcsid = "@(#) (Gould) $Header: shm.h,v 1.8 88/06/08 15:33:15 ccammara Exp $"; #endif /* @(#) UTX/32 1.3 shm.h ver 1.2 */ /* * IPC Shared Memory Facility. */ #ifndef H_TYPEDEFS_H #ifdef KERNEL #include "typedefs.h" #else #include #endif /* KERNEL */ #endif /* H_TYPEDEFS_H */ /* * Implementation Constants. */ #define SHMLBA 0x1000000 /* segment low boundary address multiple (power of 2) */ /* * Permission Definitions. */ #define SHM_R 0400 /* read permission */ #define SHM_W 0200 /* write permission */ /* * Ipc_perm Mode Definitions. */ #define SHM_INIT 01000 /* initialize segment on first attach */ #define SHM_DEST 02000 /* destroy segment when # attached = 0 */ #define SHM_REG 040000 /* segment has region but no memory */ /* * Message Operation Flags. */ #define SHM_RDONLY 010000 /* attach read-only (else read-write) */ #define SHM_RND 020000 /* round attach address to SHMLBA */ #define SHM_RDEX 040000 /* attach read-execute */ /* * Shared memory control operations */ #define SHM_LOCK 3 /* Lock segment in core */ #define SHM_UNLOCK 4 /* Unlock segment */ #define SHM_CHGPROT 5 /* change access mode of a segment */ /* * mask for hacking off the mode bits * in the perm struct. */ #define SHM_MODE 0777 /* * region defines */ #define MAXREGNAME 33 /* max size of region name + 1 (for null) */ /* SHOULD BE SAME AS MAXCOFFNAME in exec.h */ /* * region attributes */ #define RATTR_INITIAL_ON 0x01 /* reflect this region at boot */ /* * SHM_RATTR_MASK is the mask of the valid shared memory * attributes. This mask is used by the consistency checking tool * and should be updated whenever more attributes are added or * removed */ #define SHM_RATTR_MASK RATTR_INITIAL_ON /* * region flags */ #define RFLAG_TEMPLATE 0x01 /* template region for non-contig extent */ #define RFLAG_ISAREGION 0x02 /* shared memory object is a region */ /* * SHM_FLAG_MASK is the mask of the valid shared memory * flags. This mask is used by the consistency checking tool * and should be updated whenever more flags are added or * removed */ #define SHM_FLAG_MASK (RFLAG_TEMPLATE|RFLAG_ISAREGION) /* * Structure Definitions. */ /* * There is a shared mem id data structure for each segment in the system. * See copyout_shmid_ds before you change this structure */ struct shmid_ds { struct ipc_perm shm_perm; /* operation permission struct */ regP shm_reg; /* pointer to region structure */ int shm_segsz; /* size of segment in bytes */ ushort shm_lpid; /* pid of last shmop */ ushort shm_cpid; /* pid of creator */ ushort shm_nattch; /* current # attached */ ushort shm_cnattch; /* in memory # attached */ time_t shm_atime; /* last shmat time */ time_t shm_dtime; /* last shmdt time */ time_t shm_ctime; /* last change time */ char shm_regname[MAXREGNAME]; /* name of region */ int shm_rattr; /* attributes */ int shm_offset; /* offset into memory extent */ int shm_flags; /* flags */ struct mem_extent *shm_memext; /* pointer to extent */ }; #ifdef KERNEL /* * This structure is exactly the same as shmid_ds was before memory classes * were added. In order to maintain upward compatibility, * this structure is defined. Its only use is to define the * number of bytes to return to a user who requests a shmctl. It should * NOT be used in any other manner. See sv_shm for the one and only use. */ struct copyout_shmid_ds { struct ipc_perm shm_perm; /* operation permission struct */ regP shm_reg; /* pointer to region structure */ int shm_segsz; /* size of segment in bytes */ ushort shm_lpid; /* pid of last shmop */ ushort shm_cpid; /* pid of creator */ ushort shm_nattch; /* current # attached */ ushort shm_cnattch; /* in memory # attached */ time_t shm_atime; /* last shmat time */ time_t shm_dtime; /* last shmdt time */ time_t shm_ctime; /* last change time */ }; #endif KERNEL /* * Describes the shared memory segments for a given process. */ struct shmseg { struct shmseg *shm_next; /* pointer to next segment */ struct shmid_ds *shm_ds; /* descriptor for this segment */ caddr_t shm_vaddr; /* virtual user segment address */ int shm_sflg; /* read write perms for this attach */ }; /* * Global shared memory tunable variables. */ struct shminfo { int shmmax, /* max shared memory segment size */ shmmin, /* min shared memory segment size */ shmmni, /* # of shared memory identifiers */ shmseg, /* max attached shared segments per process */ shmbrk, /* # of clicks between data and shared memory */ shmall, /* max total shared memory clicks in system */ shmatt; /* max number of attachs system wide */ }; /* * (c) Copyright 1986, 1987, 1988 Gould Inc. * All Rights Reserved. */ #endif H_SHM_H n interrupt level */ #define CI_GET_STATUS_BY_CHANNEL 0x2 /* Get the status for the */ /* given channel/subchan */ #endif H_RT_CI_H /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ ^PLCAB COM [PLCAB OUT [:PLOTC5 COM [.PLOTC5 DAT [0yPLOTC7 COM [1PLOTC7 DAT [3#ifndef H_SIGNAL_H #define H_SIGNAL_H /* (c) Copyright 1987 Gould Inc. All Rights Reserved */ /* * Copyright (c) 1982 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)signal.h 6.7 (Berkeley) 6/8/85 * Gould $Header: signal.h,v 1.6 87/10/01 23:14:17 ahernand Rel $ */ #ifndef NSIG #define NSIG 32 #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt */ #define SIGQUIT 3 /* quit */ #define SIGILL 4 /* illegal instruction (not reset when caught) */ #define ILL_RESAD_FAULT 0x0 /* reserved addressing fault */ #define ILL_PRIVIN_FAULT 0x1 /* privileged instruction fault */ #define ILL_RESOP_FAULT 0x2 /* reserved operand fault */ /* CHME, CHMS, CHMU are not yet given back to users reasonably */ #define SIGTRAP 5 /* trace trap (not reset when caught) */ #define SIGIOT 6 /* IOT instruction */ #define SIGEMT 7 /* EMT instruction */ #define SIGFPE 8 /* floating point exception */ #define FPE_INTOVF_TRAP 0x1 /* integer overflow */ #define FPE_INTDIV_TRAP 0x2 /* integer divide by zero */ #define FPE_FLTOVF_TRAP 0x3 /* floating overflow */ #define FPE_FLTDIV_TRAP 0x4 /* floating/decimal divide by zero */ #define FPE_FLTUND_TRAP 0x5 /* floating underflow */ #define FPE_DECOVF_TRAP 0x6 /* decimal overflow */ #define FPE_SUBRNG_TRAP 0x7 /* subscript out of range */ #define FPE_FLTOVF_FAULT 0x8 /* floating overflow fault */ #define FPE_FLTDIV_FAULT 0x9 /* divide by zero floating fault */ #define FPE_FLTUND_FAULT 0xa /* floating underflow fault */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ #define SIGSEGV 11 /* segmentation violation */ #define SIGSYS 12 /* bad argument to system call */ #define SIGPIPE 13 /* write on a pipe with no one to read it */ #define SIGALRM 14 /* alarm clock */ #define SIGTERM 15 /* software termination signal from kill */ #define SIGURG 16 /* urgent condition on IO channel */ #define SIGSTOP 17 /* sendable stop signal not from tty */ #define SIGTSTP 18 /* stop signal from tty */ #define SIGCONT 19 /* continue a stopped process */ #define SIGCHLD 20 /* to parent on child stop or exit */ #define SIGTTIN 21 /* to readers pgrp upon background tty read */ #define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ #define SIGIO 23 /* input/output possible signal */ #define SIGXCPU 24 /* exceeded CPU time limit */ #define SIGXFSZ 25 /* exceeded file size limit */ #define SIGVTALRM 26 /* virtual time alarm */ #define SIGPROF 27 /* profiling time alarm */ #define SIGWINCH 28 /* window size changes */ #define SIGUSR1 30 /* user defined signal 1 */ #define SIGUSR2 31 /* user defined signal 2 */ #ifdef gould #define SV_SIGUSR1 16 /* System V user defined signal 1 */ #define SV_SIGUSR2 17 /* System V user defined signal 2 */ #endif gould #ifndef KERNEL int (*signal())(); #endif /* * Signal vector "template" used in sigvec call. */ struct sigvec { int (*sv_handler)(); /* signal handler */ int sv_mask; /* signal mask to apply */ int sv_flags; /* see signal options below */ }; #define SV_ONSTACK 0x0001 /* take signal on signal stack */ #define SV_INTERRUPT 0x0002 /* do not restart system on signal return */ #define sv_onstack sv_flags /* isn't compatibility wonderful! */ /* * Structure used in sigstack call. */ struct sigstack { char *ss_sp; /* signal stack pointer */ int ss_onstack; /* current status */ }; /* * Information pushed on stack when a signal is delivered. * This is used by the kernel to restore state following * execution of the signal handler. It is also made available * to the handler to allow it to properly restore state if * a non-standard exit is performed. */ struct sigcontext { int sc_onstack; /* sigstack state to restore */ int sc_mask; /* signal mask to restore */ int sc_sp; /* sp to restore */ int sc_b1; /* b1 value to restore */ int sc_ap; /* ap to retore */ int sc_pc; /* pc to retore */ int sc_ps; /* psl to restore */ int sc_tritr; /* itimer value from TRITR */ int *sc_regs; /* pointers to registers:*/ /* * R0-R7 * B0 * VE (if vectors in use) * Two words unused * B4-B7 * V1-V7 (if in use) */ }; #define BADSIG (int (*)())-1 #define SIG_DFL (int (*)())0 #define SIG_IGN (int (*)())1 #ifdef KERNEL #define SIG_CATCH (int (*)())2 #define SIG_HOLD (int (*)())3 #endif #endif /* * Macro for converting signal number to a mask suitable for * sigblock(). */ #define sigmask(m) (1 << ((m)-1)) #endif */ #define DISCRETIONARY 3 /* discretionary privilege set */ struct priv_set { int p_mask[PRIVSET_SIZE]; }; typedef struct priv_set privsetT; typedef int privT; #define CHECKPRIV(arg1) (suser()) #endif H_RT_PRIV_H /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ dif KMQ!SAUa/* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ #ifndef H_SLIP_H #define H_SLIP_H #if defined(RCSID) && !defined(lint) static char *h_slip_hrcsid = "@(#) (Gould) $Header: sl.h,v 1.1 86/09/05 14:22:47 djk Rel $"; /* @(#) UTX/32 1.3 loop.h ver 1.1 */ #endif #define NSL 1 /* Slip code compile switch */ #define NSLIP 8 /* Max # of SLIP devices in system */ /* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ #endif H_SLIP_H Reserved. */ :G/* * (c) Copyright 1987 Gould Inc. * All Rights Reserved. */ #ifndef H_SOCKET_H #define H_SOCKET_H #if defined(RCSID) && !defined(lint) static char *h_socket_hrcsid = "@(#) (Gould) $Header: socket.h,v 1.2 87/06/11 17:33:50 tucker Rel $"; #endif /* @(#)socket.h 7.1 (Berkeley) 6/4/86 */ /* * Definitions related to sockets: types, address families, options. */ /* * Types */ #define SOCK_STREAM 1 /* stream socket */ #define SOCK_DGRAM 2 /* datagram socket */ #define SOCK_RAW 3 /* raw-protocol interface */ #define SOCK_RDM 4 /* reliably-delivered message */ #define SOCK_SEQPACKET 5 /* sequenced packet stream */ /* * Option flags per-socket. */ #define SO_DEBUG 0x0001 /* turn on debugging info recording */ #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ #define SO_REUSEADDR 0x0004 /* allow local address reuse */ #define SO_KEEPALIVE 0x0008 /* keep connections alive */ #define SO_DONTROUTE 0x0010 /* just use interface addresses */ #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ #define SO_LINGER 0x0080 /* linger on close if data present */ #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ /* * Additional options, not kept in so_options. */ #define SO_SNDBUF 0x1001 /* send buffer size */ #define SO_RCVBUF 0x1002 /* receive buffer size */ #define SO_SNDLOWAT 0x1003 /* send low-water mark */ #define SO_RCVLOWAT 0x1004 /* receive low-water mark */ #define SO_SNDTIMEO 0x1005 /* send timeout */ #define SO_RCVTIMEO 0x1006 /* receive timeout */ #define SO_ERROR 0x1007 /* get error status and clear */ #define SO_TYPE 0x1008 /* get socket type */ /* * Structure used for manipulating linger option. */ struct linger { int l_onoff; /* option on/off */ int l_linger; /* linger time */ }; /* * Level number for (get/set)sockopt() to apply to socket itself. */ #define SOL_SOCKET 0xffff /* options for socket level */ /* * Address families. */ #define AF_UNSPEC 0 /* unspecified */ #define AF_UNIX 1 /* local to host (pipes, portals) */ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define AF_IMPLINK 3 /* arpanet imp addresses */ #define AF_PUP 4 /* pup protocols: e.g. BSP */ #define AF_CHAOS 5 /* mit CHAOS protocols */ #define AF_NS 6 /* XEROX NS protocols */ #define AF_NBS 7 /* nbs protocols */ #define AF_ECMA 8 /* european computer manufacturers */ #define AF_DATAKIT 9 /* datakit protocols */ #define AF_CCITT 10 /* CCITT protocols, X.25 etc */ #define AF_SNA 11 /* IBM SNA */ #define AF_DECnet 12 /* DECnet */ #define AF_DLI 13 /* Direct data link interface */ #define AF_LAT 14 /* LAT */ #define AF_HYLINK 15 /* NSC Hyperchannel */ #define AF_MAP 16 /* Map protocols */ #define AF_APPLETALK 17 /* Apple Talk */ #define AF_ETHERLINK 18 /* Raw Ethernet Link interface */ #define AF_MAX 19 /* * Structure used by kernel to store most * addresses. */ struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes of direct address */ }; /* * Structure used by kernel to pass protocol * information in raw sockets. */ struct sockproto { u_short sp_family; /* address family */ u_short sp_protocol; /* protocol */ }; /* * Protocol families, same as address families for now. */ #define PF_UNSPEC AF_UNSPEC #define PF_UNIX AF_UNIX #define PF_INET AF_INET #define PF_IMPLINK AF_IMPLINK #define PF_PUP AF_PUP #define PF_CHAOS AF_CHAOS #define PF_NS AF_NS #define PF_NBS AF_NBS #define PF_ECMA AF_ECMA #define PF_DATAKIT AF_DATAKIT #define PF_CCITT AF_CCITT #define PF_SNA AF_SNA #define PF_DECnet AF_DECnet #define PF_DLI AF_DLI #define PF_LAT AF_LAT #define PF_HYLINK AF_HYLINK #define PF_MAP AF_MAP #define PF_APPLETALK AF_APPLETALK #define PF_ETHERLINK AF_ETHERLINK #define PF_MAX AF_MAX /* * Maximum queue length specifiable by listen. */ #define SOMAXCONN 5 /* * Message header for recvmsg and sendmsg calls. */ struct msghdr { caddr_t msg_name; /* optional address */ int msg_namelen; /* size of address */ struct iovec *msg_iov; /* scatter/gather array */ int msg_iovlen; /* # elements in msg_iov */ caddr_t msg_accrights; /* access rights sent/received */ int msg_accrightslen; }; #define MSG_OOB 0x1 /* process out-of-band data */ #define MSG_PEEK 0x2 /* peek at incoming message */ #define MSG_DONTROUTE 0x4 /* send without using routing tables */ #define MSG_MAXIOVLEN 16 /* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ #endif H_SOCKET_H ) Copyright 1987 Gould Inc. * All Rights Reserved. */ e(); #endif #endif H_PROTOSW_H /* * (c) Copyright 1987 Gould Inc. * All Rights Reserved. */ oc) #else struct msgbuf msgbuf; #endif /* gould */ #endif KERNEL #define MSGBUFPTECNT (btoc(sizeof(struct msgbuf))) /* just one page */ #endif H_MSGBUF_H ASIC EXE  :/* * (c) Copyright 1987 Gould Inc. * All Rights Reserved. */ #ifndef H_SOCKETVAR_H #define H_SOCKETVAR_H #if defined(RCSID) && !defined(lint) static char *h_socketvar_hrcsid = "@(#) (Gould) $Header: socketvar.h,v 1.8 87/11/25 14:52:11 tucker Exp $"; #endif #ifdef KERNEL #include "typedefs.h" /* Added for locking */ #include "queues.h" #include "mp.h" #else #include #include #include #endif /* @(#)socketvar.h 7.1 (Berkeley) 6/4/86 */ /* * For NP1 socket state info isn't recorded as bits but in booleans that each * have one character of storage. This makes it easy to atomically set/clear * them without needing to worry about locking the world. */ typedef struct socketstate { u_char ss_nofdref; /* no file table ref any more */ u_char ss_isconnected; /* socket connected to a peer */ u_char ss_isconnecting; /* in process of connecting to peer */ u_char ss_isdisconnecting; /* in process of disconnecting */ u_char ss_cantsendmore; /* can't send more data to peer */ u_char ss_cantrcvmore; /* can't receive more data from peer */ u_char ss_rcvatmark; /* at mark on input */ u_char ss_priv; /* privileged for broadcast, raw... */ u_char ss_nbio; /* non-blocking ops */ u_char ss_async; /* async i/o notify */ u_char ss_nvs; /* socket connected to NVS pty */ u_char ss_protonotify; /* notify protocol data changed */ u_char ss_doboost; /* do boost on next successful read */ u_char ss_calltype; /* for DECNET, X.25, etc... */ } sstateT; /* * Kernel structure per socket. * Contains send and receive buffer queues, * handle on protocol and pointer to protocol * private data and error information. */ struct socket { u_char so_lock; /* socket process exclusion lock */ u_char so_want; /* - process waiting for lock? */ short so_type; /* generic type, see socket.h */ short so_options; /* from socket call, see socket.h */ short so_linger; /* time to linger while closing */ sstateT so_state; /* internal state flags, above */ caddr_t so_pcb; /* protocol control block */ struct protosw *so_proto; /* protocol handle */ struct domain *so_domain; /* AF (domain) pointer */ /* * Variables for connection queueing. * Socket where accepts occur is so_head in all subsidiary sockets. * If so_head is 0, socket is not related to an accept. * For head socket so_q0 queues partially completed connections, * while so_q is a queue of connections ready to be accepted. * If a connection is aborted and it has so_head set, then * it has to be pulled out of either so_q0 or so_q. * We allow connections to queue up based on current queue lengths * and limit on number of queued connections for this socket. */ lockT *so_qlock; /* connection queue atomic lock */ u_char so_qacceptconn; /* accept connections flags */ #define SOQ_NOTACCEPTING 0 #define SOQ_ACCEPTING 1 #define SOQ_CLOSING 2 short so_qlen; /* number of connections on so_q */ short so_qlimit; /* max number queued connections */ short so_q0len; /* partials on so_q0 */ struct socket *so_head; /* back pointer to accept socket */ struct socket *so_q0; /* queue of partial connections */ struct socket *so_q; /* queue of incoming connections */ /* * Variables for socket buffering. */ struct sockbuf { lockT *sb_lock; /* socket data buffer atomic lock */ struct socket *sb_so; /* back pointer to socket head */ u_char sb_busy; /* someone doing send/recv */ u_char sb_monitor; /* single-wakeup option set? (NFS) */ u_char sb_waiting; /* # of processes waiting for wakeup */ #define SB_ALLOWSIGNALS 0 #define SB_NOSIGNALS 1 u_char sb_coll; /* collision selecting */ u_int sb_cc; /* actual chars in buffer */ u_int sb_hiwat; /* max actual char count */ u_int sb_mbcnt; /* chars of mbufs used */ u_int sb_mbmax; /* max chars of mbufs to use */ u_int sb_lowat; /* low water mark (not used yet) */ u_int sb_space; /* see sbspace() below */ u_int sb_oobmark; /* chars to oob mark */ u_int sb_timeo; /* socket buffer timeout value */ struct mbuf *sb_mb; /* the mbuf chain */ struct proc *sb_sel; /* process selecting read/write */ caddr_t sb_private; /* private data (KNVS only now) */ caddr_t sb_dma; /* user space dma info */ } so_rcv, so_snd; #define so_oobmark so_rcv.sb_oobmark #define SB_MAX 96000 /* max chars in sockbuf */ short so_timeo; /* connection timeout */ u_short so_error; /* error affecting connection */ short so_pgrp; /* pgrp for signals */ }; /* * Macros for sockets and socket buffering. */ /* how much space is there in a socket buffer (so->so_snd or so->so_rcv) */ #define sbspace(sb) \ (MIN((int)((sb)->sb_hiwat - (sb)->sb_cc),\ (int)((sb)->sb_mbmax - (sb)->sb_mbcnt))) /* do we have to send all at once on a socket? */ #define sosendallatonce(so) \ ((so)->so_proto->pr_flags & PR_ATOMIC) /* can we read something from so? */ #define soreadable(so) \ ((so)->so_rcv.sb_cc || ((so)->so_state.ss_cantrcvmore) || \ (so)->so_qlen || (so)->so_error) /* can we write something to so? */ #define sowriteable(so) \ (sbspace(&(so)->so_snd) > 0 && \ (((so)->so_state.ss_isconnected) || \ ((so)->so_proto->pr_flags&PR_CONNREQUIRED)==0) || \ ((so)->so_state.ss_cantsendmore) || \ (so)->so_error) /* adjust counters in sb reflecting allocation of m */ #define sballoc(sb, m) { \ (sb)->sb_cc += (m)->m_len; \ (sb)->sb_mbcnt += MSIZE; \ if ((m)->m_off > MMAXOFF) \ (sb)->sb_mbcnt += LMSIZE; \ } /* adjust counters in sb reflecting freeing of m */ #define sbfree(sb, m) { \ (sb)->sb_cc -= (m)->m_len; \ (sb)->sb_mbcnt -= MSIZE; \ if ((m)->m_off > MMAXOFF) \ (sb)->sb_mbcnt -= LMSIZE; \ } /* socket single user process exclusion lock/unlock */ #define SEXLOCK(x) { \ lock (&soqsylock); \ while ((x)->so_lock) { \ (x)->so_want = 1; \ sleepul((caddr_t)&(x)->so_want, PZERO+1, &soqsylock); \ } \ (x)->so_lock = 1; \ unlock (&soqsylock); \ } #define SEXUNLOCK(x) { \ lock (&soqsylock); \ (x)->so_lock = 0; \ if ((x)->so_want) { \ (x)->so_want = 0; \ wakeup((caddr_t)&(x)->so_want); \ } \ unlock (&soqsylock); \ } /* connection queue lock/unlock */ #define SCQLOCK(x) lock ((x)->so_qlock); #define SCQUNLOCK(x) unlock ((x)->so_qlock); /* socket data buffer lock/unlock */ #define SBQLOCK(x) lock ((x)->sb_lock); #define SBQUNLOCK(x) unlock ((x)->sb_lock); #define sorwakeup(so) sowakeup((so), &(so)->so_rcv) #define sowwakeup(so) sowakeup((so), &(so)->so_snd) #ifdef KERNEL struct socket *sonewconn(); #endif #endif H_SOCKETVAR_H /* * (c) Copyright 1987 Gould Inc. * All Rights Reserved. */ b.h times.h trace.h tty.h ttychars.h ttydev.h typedefs.h types.h uio.h un.h unpcb.h user.h ustat.h utsname.h vadvise.h vcmd.h vfs.h vlimit.h vm.h vmmac.h vmmeter.h vmparam.h vmsystm.h vnode.h vtimes.h wait.h /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ #ifndef H_SOFTCONFIG_H #define H_SOFTCONFIG_H #if defined(RCSID) && !defined(lint) static char *h_softConfig_hrcsid = "@(#) (Gould) $Header: softConfig.h,v 1.52 88/07/27 14:40:40 dscore Exp $"; #endif RCSID /* * This file contains range specifications for the * soft configuration parameters. These parameters are * dynamically settable at system startup. * See init_softParams() and startup() for usage examples. * * As of Janunary 13, 1987, several of the limits are very arbitrary. * Many of the defaults have been taken from ../NP1/param.c * * Some of the minimums may be set very low (e.g., ninnbs) to * enable stressing the system. */ #define MinMaxUsers 1 /* max system users */ #define MaxMaxUsers 1024 #define DefaultMaxUsers 128 #define MinNumProcs 10 /* processes */ #define MaxNumProcs 8192 #define DefaultNumProcs (20 + 8 * maxusers) #define MinNumInodes 20 /* inodes */ #define MaxNumInodes 10000 #define DefaultNumInodes ((nproc + 16 + maxusers) +32) /* disk quota cache size */ #define MinNDQuot (MinNumInodes + (MinMaxUsers * NMOUNT)) #define MaxNDQuot (MaxNumInodes + (MaxMaxUsers * NMOUNT)) #define DefaultNDQuot (ninode + (maxusers * NMOUNT) / 4) #define MinNumRegions (3 * MinNumProcs) /* shared memory regions */ #define MaxNumRegions ((4 * MaxNumProcs) + 25) #define DefaultNumRegions (3 * nproc) #define MinMaxUserProcesses 2 /* max user processes */ #define MaxMaxUserProcesses 200 #define DefaultMaxUserProcesses 25 #define MinNumFiles (3 * MinNumProcs) /* open file descriptors */ #define MaxNumFiles 10000 #define DefaultNumFiles (16 * (nproc + 16 + maxusers) / 10 + 32) /* Buffer allocation. Setting nbuf < SuitableMinNumBufs causes startup () to invoke a default mechanism based on the available physical memory. */ #define SuitableMinNumBufs 20 /* see startup */ #define MIN_BUF_PERCENT 10 /* min % memory for buffers */ #define MAX_BUF_PERCENT 95 /* max % of memory for buffers */ #define DFL_BUF_PERCENT 30 /* default % of memory for buffers */ #define MinNumPipes 40 /* Pipes */ #define MaxNumPipes 32768 #define DefaultNumPipes (2 * maxusers) /* dynamic default mechanism */ #define MinEnvLogLevel 0 /* log environment data */ #define MaxEnvLogLevel 2 /* default by initialization */ #define MinDiskLogLevel 0 /* controls disk logging */ #define MaxDiskLogLevel 10 /* default by initialization */ #define MinIOTraceLevel 0 /* IO debug logging at panic */ #define MaxIOTraceLevel 2 #define DefaultIOTraceLevel 2 /* default by initialization */ #define MinHZ 1 /* interval timer rate */ #define MaxHZ 250 #define DefaultHZ 50 #define MinTimezone 0 /* minutes west of Greenwich */ #define MaxTimezone ((24 * 60) -1) /* 24 hours (minus 1 minute */ #define DefaultTimezone (60 * 6) /* 6 hours - the midwest */ #define MinDST 0 /* type of dst correction */ #define MaxDST DST_CAN /* see ../h/time.h */ #define DefaultDST DST_USA #define MinNCHSize ((ninode / 10) + 2) /* name cache size (DNCL) */ #define MaxNCHSize (ninode * 2) #define DefaultNCHSize (ninode * 11 / 10) #define MinNumCallout 100 /* timeout() entries */ #define MaxNumCallout (MaxNumProcs +16) #define DefaultNumCallout ((nproc + 16) > 40 ? (nproc + 16) : 40) #define MinNumClist (2 * maxusers) /* tty clist structs */ #define MaxNumClist 50000 #define DefaultNumClist (100 + 16 * maxusers) #define MinNlmbclusters 20 /* large mbuf clusters */ #define MaxNlmbclusters 4096 #define DefaultNlmbclusters 32 #define MinNsmbclusters 20 /* small mbuf clusters */ #define MaxNsmbclusters 4096 #define DefaultNsmbclusters 96 /* * iospace() actually peforms the range checks. TotalDevMem defaults * to a large value assuming that iospace will bring it down appropriate * to total number of configured devices. By specifying a small number * (e.g., 0) iospace() will bring it up to support a minimually configured * system independent to the actual number of devices configered. * Such a system will only supprt one root disk, a swap disk, and a console. */ /* device driver memory */ #define MinTotalDevMem 0 #define MaxTotalDevMem 0x7fffffff /* max int */ #define DefaultTotalDevMem MaxTotalDevMem /* Interrupt Notification Blocks */ #define MinNumINNBs 1 /* 50 ?? */ #define MaxNumINNBs 1000 #define DefaultNumINNBs 100 #define MinTraceIndex -1 /* specific trace entry */ #define MaxTraceIndex (TR_NFLAGS -1) #define DefaultTraceIndex -1 #define MinTraceDump -1 /* printtrace length */ #define MaxTraceDump TRCSIZ /* num trace buf entries */ #define DefaultTraceDump 50 /* Number pseudo TTYs */ #define MinNumPtys 0 #define MaxNumPtys 1024 /* 4 major devices worth */ #define DefaultNumPtys 256 /* dynamically allocated locks*/ /* currently used by sockets */ #define MinNumLocks 40 /* to get the system going */ #define MaxNumLocks 10000 #define DefaultNumLocks nproc /* Number UIOMS */ #define MinNumChannels 1 /* need a root file system */ #define MaxNumChannels 64 /* 6 bits channel address */ /* DefaultNumChannels (4) has been substituted by NUIOM + NHX in np/machdep.c */ #define NPTY MaxNumPtys /* defining NPTY > 0 caused the * pty code to be included. */ #define DefaultConfig "NP_UNIX_CONFIG" /* system V chown style */ #define MinSV_chown 0 /* SV style disabled */ #define MaxSV_chown 1 /* SV style enabled */ #define DefaultSV_chown 0 #define DefaultMonitorSyscalls 0 /* disable by default */ #define DefaultPriorityPQs 1 /* % mem for WS scan */ #define MinWsscanpct 0 /* always scan */ #define MaxWsscanpct 100 /* never scan */ #define DefaultWsscanpct (noswap ? 100 : 60)/* scan at 60% available */ /* % mem to clean pages */ #define MinPgcleanpct wsscanpct /* no clean if no scan */ #define MaxPgcleanpct 100 /* never clean */ #define DefaultPgcleanpct imin(100,wsscanpct+10) #define MinSwappct imin(pgcleanpct,100) #define MaxSwappct 100 /* never swap */ #define DefaultSwappct 90 /* default, keep 10% free */ /* % mem to swap (instant.) */ #define MinMaxusepct swappct #define MaxMaxusepct 100 /* never swap */ #define DefaultMaxusepct imin(swappct+5,100)/* default, keep 5% free */ /* % mem to swap (averaged) */ /* max paging I/O per dev */ #define MinMaxpgio 10 #define MaxMaxpgio 60 /* this would be 1/rev */ #define DefaultMaxpgio 30 /* about 1/2 of drive? */ /* max contig xfer to swap */ #define MinMaxswcontig 1 /* 8k */ #define MaxMaxswcontig 32 /* 256k-limited by swap alloc */ #define DefaultMaxswcontig 16 /* min pages to clean/sec per dev */ #define MinMinclean Maxswcontig /* pretty slow */ #define MaxMinclean (maxpgiopd*Maxswcontig) #define DefaultMinclean (maxpgiopd*Maxswcontig/4) /* max pages to clean/sec per dev */ #define MinMaxclean mincleanpd /* no less than min */ #define MaxMaxclean (maxpgiopd*Maxswcontig) #define DefaultMaxclean (maxpgiopd*Maxswcontig/2) /* min time between WS scans */ #define MinMinWstime 200000 #define MaxMinWstime 5000000 #define DefaultMinWstime 500000 /* max time between WS scans */ #define MinMaxWstime minwstime #define MaxMaxWstime 5000000 #define DefaultMaxWstime imin(minwstime+500000,5000000) #ifdef OBSOLETE_ARGMAP /* max size of the argmap */ #define MinArgmapmax ctod(9) #define MaxArgmapmax ctod(3000) /* 1000 simultaneous execs */ #define DefaultArgmapmax ctod(((nproc/2)*3)) #endif OBSOLETE_ARGMAP /* max # of execs allowed to sleep for buffers */ #define MinNestExecs 1 #define MaxNestExecs 1000 #define DefaultNestExecs 20 /* % of swap for headroom */ #define MinSwapHeadroom 5 #define MaxSwapHeadroom 100 /* but this would be silly */ #define DefaultSwapHeadroom 15 /* limits on process size */ #define MinMaxtsize 0 #define MaxMaxtsize RLIM_INFINITY/NBPG #define DefaultMaxtsize RLIM_INFINITY/NBPG #define MinMaxdsize 0 #define MaxMaxdsize RLIM_INFINITY/NBPG #define DefaultMaxdsize MaxMaxdsize #define MinDefdsize 0 #define MaxDefdsize DefaultMaxdsize #define DefaultDefdsize (12*1024*1024)/NBPG #define MinMaxssize 0 #define MaxMaxssize RLIM_INFINITY/NBPG #define DefaultMaxssize MaxMaxssize #define MinDefssize 0 #define MaxDefssize RLIM_INFINITY/NBPG #define DefaultDefssize (512*1024)/NBPG /* Connected interrupt config parameters */ #define MaxNumCcbs 256 /* Actually limited by intconf.h */ #define MinNumCcbs 0 #define DefaultNumCcbs 8 #define MaxNumIccbs 512 #define MinNumIccbs 0 #define DefaultNumIccbs 16 #define MaxNumCiss CLBYTES #define MinNumCiss 0 #define DefaultNumCiss 384 /* tunable file system block size */ #define MinMaxbsize BLKDEV_IOSIZE #define MaxMaxbsize MAXBSIZE #define DefaultMaxbsize DFLBSIZE /* Number of ethernet pkts which could be transmitted per iocb */ #define MinEnTxPkts 0 /* 0: for driver-chosen */ #define MaxEnTxPkts 100 #define DefaultEnTxPkts 0 /* 0: default multi-pkt 1: single-pkt */ /* number of valid pages in a region, above which we will do copy-on-write */ /* below that, just copy all pages on a fork */ #define MinCowthresh 0 /* 0 means always copy-on-write */ #define MaxCowthresh 0x7fffffff /* never do copy-on-write on valid pages */ #define DefaultCowthresh 8 /* * Real-Time Scheduler options */ #define MinLowRTrange 0 /* rt_lowpri */ #define MaxLowRTrange 127 #define DefLowRTrange 0 #define MinHighRTrange 0 /* rt_highpri */ #define MaxHighRTrange 127 #define DefHighRTrange 63 /* * Esched Scheduler options */ #define MinLowESrange 0 /* unix_lowpri */ #define MaxLowESrange 127 #define DefLowESrange 64 #define MinHighESrange 0 /* unix_highpri */ #define MaxHighESrange 127 #define DefHighESrange 127 #define MinEscPenalty 0 /* esched-wieght */ #define MaxEscPenalty 31 #define DefEscPenalty 16 #define MinCpuPenalty 0 /* cpu-wieght */ #define MaxCpuPenalty 0xffff #define DefCpuPenalty 20 #define MinNicPenalty 0 /* nice-wieght */ #define MaxNicPenalty 0xffff #define DefNicPenalty 20 #define MinPriOffset 0 /* pri-offset */ #define MaxPriOffset 31 #define DefPriOffset 8 #define MinHogTime 1 /* hog-time */ #define MaxHogTime (0x7fffffff / 60) #define DefHogTime 10 #define MinHogNice 0 /* hog-nice */ #define MaxHogNice PRIO_MAX #define DefHogNice 8 /* shared memory soft params */ #define MinShmBrk NPGSEG /* brk between data and first shmmem*/ #define MaxShmBrk 125*NPGSEG #define DefShmBrk NPGSEG #ifdef SV_PLOCK /* Percentage of plocks allowed */ #define MinPlockpct 0 #define MaxPlockpct 80 #define DefaultPlockpct 75 /* from PN's PLOCK_FRACTION */ #endif SV_PLOCK #include "df.h" #if NDF > 0 #define MinNumDF 1 #define MaxNumDF 32 #define DefaultNumDF NDF #endif /* * Soft param for panic printout tuning. */ #define MinPanicVerbose 0x00000000 #define MaxPanicVerbose 0x7fffffff #define DefaultPanicVerbose 0x00000019 /* * Soft param for dumping selective regions. */ #define MinDumparam 0x00000000 #define MaxDumparam 0x7fffffff #define DefaultDumparam 0x0000007f #endif H_SOFTCONFIG_H /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ Ye[e]e_fa&fcFfeffgfifkfmfog/gsFg}gh&hFhfhhhhhi&iFifiiiiij&jFjfjjj/* * (c) Copyright 1986, 1988 Gould Inc. * All Rights Reserved. */ /* * Copyright (c) 1982 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)stat.h 6.2 (Berkeley) 6/8/85 */ #ifndef H_STAT_H #define H_STAT_H #if defined(RCSID) && !defined(lint) static char *h_stat_hrcsid = "@(#) (Gould) $Header: stat.h,v 1.2 88/06/21 14:41:25 dgarver Exp $"; #endif struct stat { dev_t st_dev; /* ID of device containing the directory entry*/ ino_t st_ino; /* inode number */ unsigned short st_mode; /* file mode */ short st_nlink; /* number of links */ short st_uid; /* user ID of the file's owner */ short st_gid; /* group ID of the file's group */ dev_t st_rdev; /* ID of device (block and char devices only) */ off_t st_size; /* file size in bytes */ time_t st_atime; /* time of last access */ int st_spare1; time_t st_mtime; /* time of last data modification */ int st_spare2; time_t st_ctime; /* time of last file status change */ int st_spare3; long st_blksize; /* size of the disk blocks */ long st_blocks; /* number of disk blocks */ long st_spare4[2]; }; #define S_IFMT 0170000 /* type of file */ #define S_IFDIR 0040000 /* directory */ #define S_IFIFO 0010000 /* fifo */ #define S_IFCHR 0020000 /* character special */ #define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */ #define S_IFLNK 0120000 /* symbolic link */ #define S_IFSOCK 0140000/* socket */ #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ #define S_ISVTX 0001000 /* save swapped text even after use */ #define S_IREAD 0000400 /* read permission, owner */ #define S_IWRITE 0000200 /* write permission, owner */ #define S_IEXEC 0000100 /* execute/search permission, owner */ #endif H_STAT_H /* * (c) Copyright 1986, 1988 Gould Inc. * All Rights Reserved. */ tempted */ # define TP_MAIL_BMSG 311 /* mail corrupted message */ # endif #ifdef KERNEL # define nullfp ((struct file *) 0) #endif KERNEL /* (c) 1985 Gould Inc. * All Rights Reserved. */ #endif H_SECURE_H st halt */ #define RB_INITNAME 0x10 /* name given for /etc/init */ #define RB_PANIC 0 /* reboot due to panic */ #define RB_BOOT 1 /* reboot due to boot() */ #ifdef GOULD_NP1 #define RB_REBOOT 0x100 /* this is a reboot */ #endif GOULD_NP1 #endif #ifndef H_SWAP_H #define H_SWAP_H "$Header: swap.h,v 1.2 87/12/03 09:25:57 jchiu Exp $" /* The following structure contains the data describing a * swap file. */ #ifdef KERNEL #ifndef H_PDESC_H #include "pdesc.h" #endif #endif KERNEL #define NDBPP 8 /* number of disk blocks per page */ #define DPPSHIFT 3 /* disk block to page shift */ typedef int sbmapT; /* one word of a swap bit map */ #define SWBITSPWORD 32 /* swap bit map bits per word */ typedef struct swaptab { dev_t st_dev; /* The swap device. */ short st_flags; /* Flags defined below. */ sbmapT *st_bmap; /* pointer to bit map array */ sbmapT *st_bmape; /* pointer one past end of bit map */ sbmapT *st_lsearch; /* last word in bit map searched */ int st_swplo; /* First block number on device */ /* to be used for swapping. */ int st_nblks; /* number of blocks on swap dev */ int st_npgs; /* Number of pages of swap */ /* space on device. */ int st_nfpgs; /* Nbr of free pages on device. */ int st_in_intrans; /* number of pages in-transit in */ int st_out_intrans; /* number of pages in-transit out */ int st_ttl_out; /* total writes to this device */ int st_ttl_in; /* total reads from this device */ int st_max_io; /* max reads+writes to have out at once */ int st_maxcontig; /* maximum number of pages to swap out */ /* in a single, contiguous request */ struct vnode *st_vp; /* vnode for this device */ pdescP *st_pdlst; /* FOR DEBUG: ptr to pdesc with block */ } swptT; #define ST_INDEL 0x01 /* This file is in the process */ /* of being deleted. Don't */ /* allocate from it. */ #define ST_ALLOC 0x02 /* this entry is in use */ #define ST_REMOTE 0x04 /* remote swap device (not implemented) */ #define ST_ININIT 0x08 /* reserved, but in the process of */ /* having memory allocated */ #ifdef OBSOLETE_ARGMAP /* this is obsolete */ #define ST_ARGMAP 0x10 /* this device has argmap, so can't swapoff */ #endif OBSOLETE_ARGMAP #define ST_PREALLOC 0x20 /* swap devices identified at boot */ #ifdef KERNEL extern swptT swaptab[]; /* The table of swap files. */ extern int nextswap; /* Index into swptab to the */ /* next file to allocate from. */ extern int swapwant; /* Set non-zero if someone is */ /* waiting for swap space. */ extern int Totalswap; /* total pages of swap space available */ #endif KERNEL #define MSFILES 16 /* The maximum number of swap */ /* files which can be allocated.*/ /* It is limited by the size of */ /* the dbd_swpi field in the */ /* dbd_t structure. */ /* The following struct is used by the sys3b system call. * If the first argument to the sys3b system call is 3, * then the call pertains to the swap file. In this case, * the second argument is a pointer to a structure of the * following format which contains the parameters for the * operation to be performed. */ typedef struct swapint { char si_cmd; /* One of the command codes */ /* listed below. */ char *si_buf; /* For an SI_LIST function, this*/ /* is a pointer to a buffer of */ /* sizeof(swptT)*MSFILES bytes.*/ /* For the other cases, it is a */ /* pointer to a pathname of a */ /* swap file. */ int si_swplo; /* The first block number of the*/ /* swap file. Used only for */ /* SI_ADD and SI_DEL. */ int si_nblks; /* The size of the swap file in */ /* blocks. Used only for an */ /* SI_ADD request. */ } swpi_t; /* The following are the possible values for si_cmd. */ #define SI_LIST 0 /* List the currently active */ /* swap files. */ #define SI_ADD 1 /* Add a new swap file. */ #define SI_DEL 2 /* Delete one of the currently */ /* active swap files. */ #endif H_SWAP_H g.h 6.2 (Berkeley) 6/8/85 * Gould $Header: seg.h,v 1.2 86/08/08 09:00:20 djk Rel $ */ /* * Mapper addresses and bits */ #define RO PG_URKR /* access abilities */ #define RW PG_UW #endif /* Copyright (c) 1984 AT&T */ /* All Rights Reserved */ /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ /* The copyright notice above does not evidence any */ /* actual or intended publication of such source code. */ #ident "@(#)kern-3b2:sys/sxt.h 1.3" /* ** Multiplexed channels driver header */ #define SXTRACE 1 /* 1 to include tracing */ #define MAXLINKS 32 #define CHAN(dev) (dev&CHANMASK) #define LINK(dev) ((dev>>CHANBITS)&(0xff>>CHANBITS)) #if (MAXPCHAN*MAXLINKS) > 256 ERROR -- product cannot be greater than minor(dev) #endif struct Channel { struct tty tty; /* Virtual tty for this channel */ }; typedef struct Channel *Ch_p; struct Link { struct tty * line; /* Real tty for this link */ char controllingtty; /* the current top dog */ char old; /* Old line discipline for line */ char nchans; /* Number of channels allowed */ unsigned char chanmask; /* Allowable channel bits */ char open; /* Channel open bits */ char xopen; /* Exclusive open bits */ char wpending; /* pending writes/channel */ char iblocked; /* channels blocked for input */ char oblocked; /* channels blocked for output*/ short lwchan; /* Last channel written bit */ char wrcnt; /* Number of writes on last channel written */ dev_t dev; /* major and minor device # */ struct Channel chans[1]; /* Array of channels for this link */ }; typedef struct Link * Link_p; /* ** Ioctl args */ #define SXTIOCLINK _IOW(b,0,int) /* ('b'<<8) */ #define SXTIOCTRACE _IO(b,1) /* (SXTIOCLINK|1) */ #define SXTIOCNOTRACE _IO(b,2) /* (SXTIOCLINK|2) */ #define SXTIOCSWTCH _IOW(b,3,int) /* (SXTIOCLINK|3) */ #define SXTIOCWF _IOW(b,4,int) /* (SXTIOCLINK|4) */ #define SXTIOCBLK _IOW(b,5,int) /* (SXTIOCLINK|5) */ #define SXTIOCUBLK _IOW(b,6,int) /* (SXTIOCLINK|6) */ #define SXTIOCSTAT _IOR(b,7,struct sxtblock) /* (SXTIOCLINK|7) */ /* the following structure is used for the SXTIOCSTAT ioctl call */ struct sxtblock { char input; /* channels blocked on input */ char output; /* channels blocked on output */ }; #define t_link t_dstat /* Use dstat in real tty for linknumber */ #define MAXPCHAN 8 /* Maximum channel number */ #define CHANBITS 3 /* Bits for channel number */ #define CHANMASK 07 /* 2**CHANBITS - 1 */ #define SXTHOG 2 /* Channel consecutive write limit */ endif H_SEM_H max; /* maximum value for rlim_cur */ }; #endif H_RESOURCE_H */ s.h rt_tim/* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ #ifndef H_SYSCALL_MAP_H #define H_SYSCALL_MAP_H #if defined(RCSID) && !defined(lint) static char *h_syscall_map_hrcsid = "@(#) (Gould) $Header: syscall_map.h,v 1.5 88/05/13 11:37:01 willcox Exp $"; #endif /* * NAME: syscall_map.h * * PURPOSE: used to map decimal numbers for syscalls in log entries into * ascii strings -- unfortunately, this file must track * changes to /sys/sys/init_sysent.c * * HISTORY: * Gould CSD Joan Eslinger 5 June 85 Created */ /* put as many names as possible out there */ #define TRACE #define FLOCK typedef struct { char *s_name; /* name of system call */ int s_len; /* length of the string */ } Syscall_TableT; Syscall_TableT Syscall_Table[] = { "nosys", 6, /* 0 = indir */ "rexit", 6, /* 1 = exit */ "fork", 5, /* 2 = fork */ "read", 5, /* 3 = read */ "write", 6, /* 4 = write */ "open", 5, /* 5 = open */ "close", 6, /* 6 = close */ "wait", 5, /* 7 = old wait */ "creat", 6, /* 8 = creat */ "link", 5, /* 9 = link */ "unlink", 7, /* 10 = unlink */ "execv", 6, /* 11 = execv */ "chdir", 6, /* 12 = chdir */ "time", 5, /* 13 = old time */ "mknod", 5, /* 14 = mknod */ "chmod", 5, /* 15 = chmod */ "chown", 5, /* 16 = chown; now 3 args */ "obreak", 6, /* 17 = old break */ "stat", 5, /* 18 = old stat */ "lseek", 6, /* 19 = lseek */ "getpid", 7, /* 20 = getpid */ "smount", 7, /* 21 = mount */ "umount", 7, /* 22 = umount */ "setuid", 7, /* 23 = old setuid */ "getuid", 7, /* 24 = getuid */ "stime", 6, /* 25 = old stime */ "ptrace", 7, /* 26 = ptrace */ "alarm", 6, /* 27 = old alarm */ "fstat", 6, /* 28 = old fstat */ "pause", 6, /* 29 = opause */ "utime", 6, /* 30 = old utime */ "nosys", 6, /* 31 = was stty */ "nosys", 6, /* 32 = was gtty */ "saccess", 8, /* 33 = access */ "nice", 5, /* 34 = old nice */ "ftime", 6, /* 35 = old ftime */ "sync", 5, /* 36 = sync */ "kill", 5, /* 37 = kill */ "stat", 5, /* 38 = stat */ "setpgrp", 8, /* 39 = old setpgrp */ "lstat", 6, /* 40 = lstat */ "dup", 4, /* 41 = dup */ "pipe", 5, /* 42 = pipe */ "times", 6, /* 43 = old times */ "profil", 7, /* 44 = profil */ "nosys", 6, /* 45 = nosys */ "setgid", 7, /* 46 = old setgid */ "getgid", 7, /* 47 = getgid */ "ssig", 5, /* 48 = old sig */ "msgsys", 7, /* 49 = sysv messages */ "nosys", 6, /* 50 = reserved for USG */ "sysacct", 8, /* 51 = turn acct off/on */ "shmsys", 7, /* 52 = shared memory */ "semsys", 7, /* 53 = sysv messages */ "ioctl", 6, /* 54 = ioctl */ "reboot", 7, /* 55 = reboot */ "nosys", 6, /* 56 = old mpxchan */ "symlink", 8, /* 57 = symlink */ "readlink", 9, /* 58 = readlink */ "execve", 7, /* 59 = execve */ "umask", 6, /* 60 = umask */ "chroot", 7, /* 61 = chroot */ "fstat", 6, /* 62 = fstat */ "nosys", 6, /* 63 = used internally */ "getpagesize", 12, /* 64 = getpagesize */ "mremap", 7, /* 65 = mremap */ "vfork", 6, /* 66 = vfork */ "read", 5, /* 67 = old vread */ "write", 6, /* 68 = old vwrite */ "sbrk", 5, /* 69 = sbrk */ "sstk", 5, /* 70 = sstk */ "smmap", 6, /* 71 = mmap */ "ovadvise", 9, /* 72 = old vadvise */ "munmap", 7, /* 73 = munmap */ "mprotect", 9, /* 74 = mprotect */ "madvise", 8, /* 75 = madvise */ "vhangup", 8, /* 76 = vhangup */ "vlimit", 7, /* 77 = old vlimit */ "mincore", 8, /* 78 = mincore */ "getgroups", 10, /* 79 = getgroups */ "setgroups", 10, /* 80 = setgroups */ "getpgrp", 8, /* 81 = getpgrp */ "setpgrp", 8, /* 82 = setpgrp */ "setitimer", 10, /* 83 = setitimer */ "wait", 5, /* 84 = wait */ "swapon", 7, /* 85 = swapon */ "getitimer", 10, /* 86 = getitimer */ "gethostname", 12, /* 87 = gethostname */ "sethostname", 12, /* 88 = sethostname */ "getdtablesize", 14, /* 89 = getdtablesize */ "dup2", 5, /* 90 = dup2 */ "getdopt", 8, /* 91 = getdopt */ "fcntl", 6, /* 92 = fcntl */ "select", 7, /* 93 = select */ "setdopt", 8, /* 94 = setdopt */ "fsync", 6, /* 95 = fsync */ "setpriority", 12, /* 96 = setpriority */ "socket", 7, /* 97 = socket */ "connect", 8, /* 98 = connect */ "accept", 7, /* 99 = accept */ "getpriority", 12, /* 100 = getpriority */ "send", 5, /* 101 = send */ "recv", 5, /* 102 = recv */ "sigreturn", 10, /* 103 = sig return */ "bind", 5, /* 104 = bind */ "setsockopt", 11, /* 105 = setsockopt */ "listen", 7, /* 106 = listen */ "vtimes", 7, /* 107 = old vtimes */ "sigvec", 7, /* 108 = sigvec */ "sigblock", 9, /* 109 = sigblock */ "sigsetmask", 11, /* 110 = sigsetmask */ "sigpause", 9, /* 111 = sigpause */ "sigstack", 9, /* 112 = sigstack */ "recvmsg", 8, /* 113 = recvmsg */ "sendmsg", 8, /* 114 = sendmsg */ "vtrace", 7, /* 115 = vtrace */ "gettimeofday", 13, /* 116 = gettimeofday */ "getrusage", 10, /* 117 = getrusage */ "getsockopt", 11, /* 118 = getsockopt */ #ifdef vax "resuba", 7, /* 119 = resuba */ #else "nosys", 6, /* 119 = nosys */ #endif "readv", 6, /* 120 = readv */ "writev", 7, /* 121 = writev */ "settimeofday", 13, /* 122 = settimeofday */ "fchown", 7, /* 123 = fchown */ "fchmod", 7, /* 124 = fchmod */ "recvfrom", 9, /* 125 = recvfrom */ "setreuid", 9, /* 126 = setreuid */ "setregid", 9, /* 127 = setregid */ "rename", 7, /* 128 = rename */ "truncate", 9, /* 129 = truncate */ "ftruncate", 10, /* 130 = ftruncate */ "flock", 6, /* 131 = flock */ "nosys", 6, /* 132 = nosys */ "sendto", 7, /* 133 = sendto */ "shutdown", 9, /* 134 = shutdown */ "socketpair", 11, /* 135 = socketpair */ "mkdir", 6, /* 136 = mkdir */ "rmdir", 6, /* 137 = rmdir */ "utimes", 7, /* 138 = utimes */ "nosys", 6, /* 139 = used internally */ "adjtime", 8, /* 140 = adjtime */ "getpeername", 12, /* 141 = getpeername */ "gethostid", 10, /* 142 = gethostid */ "sethostid", 10, /* 143 = sethostid */ "getrlimit", 10, /* 144 = getrlimit */ "setrlimit", 10, /* 145 = setrlimit */ "killpg", 7, /* 146 = killpg */ "nosys", 6, /* 147 = nosys */ "nosys", 6, /* 148 = old quota */ "nosys", 6, /* 149 = old qquota */ "setsigc", 8, /* 150 = setsigc */ "nosys", 6, /* 151 = nosys */ "nosys", 6, /* 152 = nosys */ "uname", 6, /* 153 = uname */ "ustat", 6, /* 154 = ustat */ "getsockname", 12, /* 155 = getsockname */ "lockf", 6, /* 156 = LOCKF */ "chsclass", 9, /* 157 = chsclass */ "setsclass", 10, /* 158 = setsclass */ "getsclass", 10, /* 159 = getsclass */ "sstat", 6, /* 160 = sstat */ "secure_log_call", 16, /* 161 = secure_log_call */ "setslogfile", 15, /* 162 = secure_set_log */ "setslogmask", 16, /* 163 = secure_set_mask */ "asynch_daemon", 14, /* 164 = asynch_daemon */ "fstatfs", 8, /* 165 = fstatfs */ "getdirentries", 14, /* 166 = getdirentries */ "getdomainname", 14, /* 167 = getdomainname */ "getfh", 6, /* 168 = getfh */ "nosys", 6, /* 169 = nosys */ "nvs_svc", 6, /* 170 = nvs_svc */ "setdomainname", 14, /* 171 = setdomainname */ "statfs", 7, /* 172 = statfs */ "quotactl", 9, /* 173 = quotactl */ "exportfs", 9, /* 174 = exportfs */ "mount", 6, /* 175 = mount */ "split", 6, /* 176 = split */ "nosys", 6, /* 177 = nosys */ "nosys", 6, /* 178 = nosys */ "getminmax", 10, /* 179 = getminmax */ "setminmax", 10, /* 180 = setminmax */ "nosys", 6, /* 181 = nosys */ "nosys", 6, /* 182 = nosys */ "nosys", 6, /* 183 = nosys */ "nosys", 6, /* 184 = nosys */ "nosys", 6, /* 185 = nosys */ "nosys", 6, /* 186 = nosys */ "nosys", 6, /* 187 = nosys */ "nosys", 6, /* 188 = nosys */ "nosys", 6, /* 189 = nosys */ "mirror", 7, /* 190 = mirror */ "rt_hscsys", 10, /* 191 = high speed clock */ "rt_memcl", 9, /* 192 = mem classes */ "nosys", 6, /* 193 = nosys */ "nosys", 6, /* 194 = nosys */ "nosys", 6, /* 195 = nosys */ "rtsched", 8, /* 196 = RT scheder */ "cinterrupts", 12, /* 197 = connected interrupts */ "spm", 4, /* 198 = spm */ "sysv", 5, /* 199 = sysv */ }; int Nsystable = sizeof (Syscall_Table) / sizeof (Syscall_Table[0]); #endif H_SYSCALL_MAP_H /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ privT; #define CHECKPRIV(arg1) (suser()) #endif H_RT_PRIV_H /* * (c) Copyright 1988 Gould Inc. * All Rights Reserved. */ dif KMQ!SAUa/* * (c) Copyright 1986 Gould Inc. * All Rights Reserved. */ #ifndef H_SYSLOG_H #define H_SYSLOG_H #if defined(RCSID) && !defined(lint) static char *h_syslog_hrcsid = "@(#) (Gould) $Header: syslog.h,v 1.1 86/08/06 16:54:47 config Rel $"; #endif /* @(#)syslog.h 7.1 (Berkeley) 6/4/86 */ /* * Facility codes */ #define LOG_KERN (0<<3) /* kernel messages */ #define LOG_USER (1<<3) /* random user-level messages */ #define LOG_MAIL (2<<3) /* mail system */ #define LOG_DAEMON (3<<3) /* system daemons */ #define LOG_AUTH (4<<3) /* security/authorization messages */ #define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */ #define LOG_LPR (6<<3) /* line printer subsystem */ /* other codes through 15 reserved for system use */ #define LOG_LOCAL0 (16<<3) /* reserved for local use */ #define LOG_LOCAL1 (17<<3) /* reserved for local use */ #define LOG_LOCAL2 (18<<3) /* reserved for local use */ #define LOG_LOCAL3 (19<<3) /* reserved for local use */ #define LOG_LOCAL4 (20<<3) /* reserved for local use */ #define LOG_LOCAL5 (21<<3) /* reserved for local use */ #define LOG_LOCAL6 (22<<3) /* reserved for local use */ #define LOG_LOCAL7 (23<<3) /* reserved for local use */ #define LOG_NFACILITIES 24 /* maximum number of facilities */ #define LOG_FACMASK 0x03f8 /* mask to extract facility part */ /* * Priorities (these are ordered) */ #define LOG_EMERG 0 /* system is unusable */ #define LOG_ALERT 1 /* action must be taken immediately */ #define LOG_CRIT 2 /* critical conditions */ #define LOG_ERR 3 /* error conditions */ #define LOG_WARNING 4 /* warning conditions */ #define LOG_NOTICE 5 /* normal but signification condition */ #define LOG_INFO 6 /* informational */ #define LOG_DEBUG 7 /* debug-level messages */ #define LOG_PRIMASK 0x0007 /* mask to extract priority part (internal) */ /* * arguments to setlogmask. */ #define LOG_MASK(pri) (1 << (pri)) /* mask for one priority */ #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */ /* * Option flags for openlog. * * LOG_ODELAY no longer does anything; LOG_NDELAY is the * inverse of what it used to be. */ #define LOG_PID 0x01 /* log the pid with each message */ #define LOG_CONS 0x02 /* log on the console if errors in sending */ #define LOG_ODELAY 0x04 /* delay open until syslog() is called */ #define LOG_NDELAY 0x08 /* don't delay open */ #define LOG_NOWAIT 0x10 /* if forking to log on console, don't wait() */ #endif H_SYSLOG_H . */ :G#ifndef H_SYSTM_H #define H_SYSTM_H /* * Copyright (c) 1982 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)systm.h 6.3 (Berkeley) 6/8/85 * Gould $Header: systm.h,v 1.8 87/12/03 10:08:37 jchiu Exp $ */ #ifdef GOULD_NP1 #ifndef PERCPUH #include "../np/percpu.h" #endif /* PERCPUH */ #endif /* GOULD_NP1 */ #include "../h/time.h" /* REMPM: syscall stats */ /* * Random set of variables * used by more than one * routine. */ extern char version[]; /* system version */ /* * Nblkdev is the number of entries * (rows) in the block switch. It is * set in binit/bio.c by making * a pass over the switch. * Used in bounds checking on major * device numbers. */ int nblkdev; /* * Number of character switch entries. * Set by cinit/prim.c */ int nchrdev; int nswdev; /* number of swap devices */ int mpid; /* generic for unique process id's */ char runin; /* scheduling flag */ char runout; /* scheduling flag */ char kmapwnt; /* kernel map want flag */ #if 0 /* DH -- now in percpu.h & renamed */ int runrun; /* scheduling flag */ char curpri; /* more scheduling */ #endif #ifdef GOULD_NP1 /* * Currently UNIX assumes that physical memory available (not CU initialized * shared memory structres) starts at physical zero and extends to the page * that contains the scratchpad rollout address for any CPU running this OS. * * We hope to extend this so that physical memory starts at the physical load * address and extends to some specified limit. Then we can run two or more * OSes on a cluster. * * We introduce two new variables for /dev/mem so that it can see beyond physmem. * All these mem variables are in PAGES, not BYTES!!! */ int maxmem; /* actual max memory for all process */ int physmem; /* physical memory available to this OS */ int physmem_low; /* lowest physical memory on this cluster */ int physmem_load; /* where this OS loaded in physical memory */ int physmem_high; /* highest physical memory on this cluster */ #else /* not GOULD_NP1 */ int maxmem; /* actual max memory per process */ int physmem; /* physical memory on this CPU */ #endif /* GOULD_NP1 */ int nswap; /* size of swap space */ int updlock; /* lock for sync */ daddr_t rablock; /* block to be read ahead */ int rasize; /* size of block in rablock */ extern int intstack[]; /* stack for interrupts */ dev_t rootdev; /* device of the root */ dev_t dumpdev; /* device to take dumps on */ long dumplo; /* offset into dumpdev */ dev_t swapdev; /* swapping device */ struct vnode *swapdev_vp; /* NFS: vnode equivalent to above */ #ifdef vax extern int icode[]; /* user init code */ extern int szicode; /* its size */ #endif #ifdef GOULD_NP1 extern int /*NOBASE*/icode[]; /* user init code */ extern int /*NOBASE*/szicode; /* its size */ #endif /* GOULD_NP1 */ daddr_t bmap(); caddr_t calloc(); unsigned max(); unsigned min(); int memall(); int uchar(), schar(); int vmemall(); caddr_t wmemall(); swblk_t vtod(); struct vnode *devtovp(); /* NFS */ /* * Structure of the system-entry table */ extern struct sysent { int sy_narg; /* total number of arguments */ int (*sy_call)(); /* handler */ char *sy_semaphore; /* DH */ int sy_count; /* DH count system calls */ struct timeval sy_time; /* REMPM: syscall total time spent */ } sysent[], svsysent[]; #ifdef GOULD_NP1 #define noproc (!Prp.prp_curproc) /* no one on ON THIS PROCESSOR */ #else /* not GOULD_NP1 */ int noproc; /* no one is running just now */ #endif /* GOULD_NP1 */ char *panicstr; int inpanic; /* see panic () */ int wantin; int boothowto; /* reboot flags, from console subsystem */ int selwait; extern char *vmmap; /* poor name! */ /* casts to keep lint happy */ #ifdef lint #define insque(q,p) _insque((caddr_t)q,(caddr_t)p) #define remque(q) _remque((caddr_t)q) #define queue(q,p) _queue((ca