IMD 1.16: 7/09/2007 11:49:12 CROMEMCO Cromix Operating System Copyright (c) 1982, Cromemco, Inc. Model CROMIX-L Ser.No. 7-10132  >@81!>z4y0= 400 x2z43>048÷0g(CLDSDD2!"!"222>2̀8͹!:(A!x2"! N":(>22: := :<22:*o0$~2͛8+8&*["R(0:<2G: >2zSD >2ɗ2|DD >2*~#~     Fdboot version 00.09 Copyright (c) 1980, 1981 Cromemco, Inc. cromix S 6:*~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876      !"#$%&'()*+,-./0123456789:;<=>?@A> 2c `c(Uͫ:::ˇ2222c  (ͫ7 (ͫ:O7ɗ2224804W =0>0͍W͛@ ͆4W 0>014W 0>27ɗ4:3O:2:1ʆ804W 0@͍O>04W 00.2@ - @ ͆$:W(_(7:͆!dͨ027:2'048484O 0͆02͆>27BWbƈ_z4{͛Wbƨ_z4{04848 K40͆͛027:O͜8 483͆027{7'K88A043#43#43#43#403>*E3*O4(2D4͍_:(!!: :g:2 4 ͛! Nͨx2>2:G7G:W(G(x 4/ >ɯ42H4͍!'͍ͨ:(}x!:W ! +}  1*!"! nfc!!Zut6:_sr nf c~ Q!8C{8>> 89!!Z{*!R8 KdC>2:2>2BKf* vCannot boot CROMIX !> 84!Z!{!Z 8!Z~(͕ fncromix.sys! !qpu t s r 66^V n f c~(7!N(73 (i Z8!8Z+}::!FN 0Oͯ G~ͯ # A[  , 3 k!  O6}@(4~= XsS A66{2>2D4>͛w ${_}ut6666̀ > ,}@(A(̀ , ~5}n ͌ ~7 ~7}y?>"! ^#Vc    ~ ~~~wf ^ V.)jutsr>"7i&:o:o:on f ^ V ^V &kjxo ! y ! q(x=(! ͭ !9>25n f ^ V z { | } 0A| }8$f V(Ϳ  ͛814 8, 25B 8!6z { >  66:wnf|(:wF Ϳ S:ˇ2 ͛84 8*"ݧ nf"!"n}2>F ~(2} 22̀ ~2:V(2^V$(H%R0 8!8NF QN(,2}2:5(n f ^{2r6k6̀ 8,>2!"͛ 882  w 66F ~w!f V(F  n&N()+NF 8f V <<^Vu t srzSDr ~TDr |DDr xSCr(LCr(SBr(lBr( *~#~{  S 9)MS  S  S  MS  S  S  MS  S  S  ! < = ( (MM( ( M$M                        >C( = z {?>70BB0 =  Ru(t)!K>utsrqp!  DM= !u*t+s,r-^(V)V^fnu.t/s0r1u2t3s4r5s6r7n*f+^,V-z1 {0 |/ }.0uMlcZ*8m n.f/^0V1N*F+BN,F-Bz R0MS  S  S  MS  S  S  MS  S  S   MS  S  S  BDMn4f5B8( u4t5ͿN4F5Ϳ^6V7z 7>n6f7 u6t7n*f+^,V- 0u*t+s,r-^2V3s2r3z }8)B0}lcZ'?z } xn(f):Z8 x(x7(_V^fnh&)))zݾ {ݾ |ݾ }ݾ(utsrz(NFnfnfT]6_V^fnh&)))  PS (S )S (|}~ PS "S #S "{ PS S S z PS S S yS)Q S 5S 7S :  *QS /S /S : +QS (S )S : >,QS  S "S : bQS S S : kl QS S S :ghij>QS  S  S :cdefQS S S :`ab}5QS S S :6QS  S  S :Q7QS S S :',8QS 4S 9S :!QS 5S 5S :,-./0G"QS .S .S :()*+#QS &S 'S :$%&' $QS S !S : !"#AQS 1S 2S 97kl+BQS +S +S 96hij.CQS $S $S 96defg0pDQS S S 95JKLMNOPQRSTUVWXYZd PS S S xPS  S  S  vwPS S S uPS 9S :S 9sto-QS S S :  .QS S S : /QS  S  S : 0QS S S : HQS 9S 9S :]^_9QS 2S 2S :YZ[\GQS +S ,S :UVW=QS %S %S :ST9QS .S .S ::QS (S (S :4;Q S S !S 9:<QS S S 9;}~ s%QS S S :&QS S S :'QS  S  S : (QS S S :   EQS S S 95I#FQ S  S  S 94?@ABCDEFGH qGQS S S 9489:;<=>gHQS 7S 7S 9367~PS 4S 4S 4r^PS .S /S .pqPS )S )S )o PS #S $S #n.1QS 4S 9S :2QS ,S -S :3Q S $S &S :-4QS S S :7QS S S :DEFGHIJKLMNOPQRQS S S :@ABCQ S  S S :456789:;<=>?t QS S S :123 =QS S S 99wxyz{|>QS  S  S 99uv?QS S S 98pqrst@QS 8S 8S 98mno  I S (S (S 8%JS 'S 'S ;KS &S &S :-LS %S %S 8 iMS #,S #,S #, jM S #(S #(S #( kM S #$S #$S #$ lM S #!S #!S #!GUKS '.S '/S :7~VKS '(S '(S :6~WKS '"S '#S :5XKS 'S 'S :5  uM S "9S "9S "9  vM S "5S "5S "5wMS "1S "1S "1xMS ".S ".S ".aKS &S &S :/bLS & S & S &  cLS &S &S &dL S %8S %;S %8MS " S " S "  MS "S "S " MS "S "S " M S "S "S "`MCS %S %S 73}NPS  S  S 9,OQS -S S 9+P S (S (S 7*m mMS #S #S # nMS #S #S # oMS #S #S # pMS #S #S #vYKS 'S 'S :4ZKS 'S 'S :4[KS 'S 'S :3\KS 'S 'S :2yMS "*S "*S "*zMS "&S "&S "&{MS ""S ""S ""|MS "S "S ""eLS %-S %1S %-.fS %S %S :(3gS %S %S :' hMS #0S #0S #0 M S !9S !9S !9 M S !6S !6S !6 M S !2S !2S !2 M S !.S !.S !.Q6S 'S 'S :5XRJUS (S (*S ;      SJ S ( S (S ;TKS '4S '4S :8 qMS #S #S #rMS #S #S #  sM S #S #S #  tM S #S #S #=]KS &7S &7S :2 ^KS &/S &1S :1_KS &)S &)S :1%`KS &#S &#S :0 }M S "S "S " ~M S "S "S " M S "S "S " M S "S "S "  MS !+S !+S !+ MS !&S !&S !& MS !#S !#S !# MS !S !S !S 1S 1S 1S 1 S 1 S 1 3S 1S 1S 1P S 08S 0:S 08  M S  ;S  ;S  ;MS  4S  4S  4 MS  0S  0S  0 MS  -S  -S  -M=(S /&S /0S /&klmnopqrstuvwxyz{eS /S /S /fghij S /S /S /cdeS /S /S /_`abMS  S  S  S 2 S 2 S 2 KS 2S 2S 2S 16S 16S 16.S .S .S .$%&'()*+,-./01234S .S .S .!"#S -7S -7S -7 S -.S -1S -. MS !S !S ! MS !S !S ! MS !S !S ! MS !S !S !pS 0.S 01S 0.S 0'S 0(S 0'pS 0!S 0!S 0!S 0S 0S 0 MS  *S  *S  * MS  'S  'S  ' MS  %S  %S  % MS  "S  "S  "fS / S / S / ^PS /S /S /[\]S .9S .:S .9WXYZS ./S .2S ./IJKLMNOPQRSTUV S 1.S 10S 1.S 1'S 1'S 1'S 1 S 1 S 1 ~S 1S 1S 1S -(S -(S -( S - S -"S -     S -S -S - S -S -S - MS ! S ! S !   M S ! S ! S !   M S !S !S !  M S !S !S !S 0S 0S 0 JS 0S 0 S 0S 0S 0S 0S /7S /8S /7 MS  S  S   MS  S  S  @MS  S  S :%MS  S  S  S .(S .(S .(EFGH>S ."S ."S ."CDS .S .S .@AB>S .S .S .=>? US -S -S - S -S -S -S ,;S ,;S ,;S ,4S 2;S ,4 IS )S )S 9[IS )S )S 9JIS )S )S )IS )S )S )S +3S +4S +3G S ++S +-S ++S +%S +%S +%`S +S +S +pS *S *S *S *S *S * JS *S * S *ZS *S *S *S ,.S ,.S ,.aS ,'S ,(S ,'BS , S ,!S , S ,S ,S ,IS )S )S ) `I[S )S )S 84 .IS )S )S 8-NJ)S )S ) S ;WXYZ[\]^_`abcdefg S +S +S +S +S +S +>S + S + S + XS +S +S + S )8S ):S )8S )2S )3S )2IS )S )S )IS )S )S )PS ,S ,S ,oS , S , S ,  S ,S ,S ,S +9S +;S +9VJS (5S (5S ;STUVS *;S *;S *; 8S *3S *5S *3 rS *,S *-S *, S *$S *&S *$      )S 6&S 6(S 6&UVWXYZ1* S 6S 6!S 6KLMNOPQRST+S 5S 5S 5HI,S 5S 5S 5G5S 4 S 4 S 4 /0,B6S 4S 4S 4 !"#$%&3;7S 3.S 35S 3.   8S 3#S 3#S 3#!"#$aAS 2S 2S 2BCD -S 5 S 5 S 5 EF.S 5S 5S 5BCD/S 47S 48S 47@A0S 40S 41S 40>?9S 3S 3S 3:S 3S 3S 3;S 3 S 3 S 3 +<S 3S 3S 3%&'(S 69S 6:S 69\EFGHK1S 4*S 4*S 4*<=2S 4"S 4"S 4"789:;|3S 4S 4S 4234564S 4S 4S 41 3=S 20S 20S 20*>S 2)S 2)S 2)?S 2"S 2#S 2"@S 2S 2S 2 IJKLijklUVWXuvwxabcdMNOPmnopYZ[\yz{|efghQRSTqrst]^_`}~  ÖrootAlt OCROMIX version 11.16 usrrbuf ino~filP2mnt&arglck1F jx8y!@!+@!~! + !!~! + 8B!*srI! 2] 0S !6( ͞ !L]k) 82!"Ö+Not a CROMIX disk /etc/startup.cmdehksh-q/etc/startupUnable to read super-block Unable to open console /dev/console/etc/iostartup.cmdeh/etc/iostartup/null 8HUU|&o! CROMIX Operating System version %02x.%02x Copyright (c) 1980, 1983 Cromemco, Inc. !6C22:: U8n/etc/ttys!! 8 8 >!CR  7!! 8A 86(#  ͳ}nf͌> !R >2!U0R!   !Bv System shutdbinQcmdPcromix.iop.sysOcromix.sysNdevMequLetcKgenJusrI own in progress System shutdown complete !+@>2nf" o~0(cͳ T}02{02nf"nf"! M  8)*sr#s#r#K4J|( }|ї~0 F gtty!CR ȗ#^#V*sr!A66*|(|<#vL8e}=(=2L8}o"2> >^!gj0DM)) )Oj Floppy = 1, Hard disk = 2 Enter major root device number: hd0 = 0, hd1 = 1, hd2 = 2 fda = 0, fdb = 1, fdc = 2, fdd = 3 sfda = 4, sfr!F!nfï!!5:O̡R: !tͼCz81y2fn"!"!""2q$9F%p$ܡ`/etc/ksam:!w$~*B8~%!˾!9NFx(* 4nf|me(0+15)8+>.8 ͂t8C> .( 1F()Fnfu"t#t8 n f!F(H+o&Fc*(p*( *(!##^V(8% 8pͼ$1Fa͂t0e+qpsr6666 666 6B!BÁ login/etc/login.bin Login:    M  8 8 !a ͸jj/dev/nLfM~ a(!*8   Q ~2Kn,X` %K8+~ ( ( (#6 8xwT 7 8(UP~TG8~;( *( 0 <+~ B ~ ($ ( ut##~:( ( ( #͟ (,#͟ (#6ut##8 +~  7^VR( +~ ( (#w~TG!0 7~TG 0 7! 8 0+T]BDMbkut!r!^*V+T8jT͢0 #ї7F^#V#|7( j  (n%(j   8z>7%s: Shell command %s Command not found: "%s" -c-p-q/bin/sim.binshell/bin//cmd/.bin.com.cmdPID = %d 4n*f+?(8e0H+? N !66`O+r*(w v(82p A  ͅ8 n  H+F |(͝(  F8@?> r(w:"(y`{ xGx2banks~ !~<([ (= Kz(.ݾ()8@~݆8784( HwzwzݖwN~8wO݆WyN`###z8 ͥOyO !~8O(HqrsGzݾ8 r~w8͡`'~݆ ~_V`{ ͡###z !~ ~8_###{>#B!?x(OT]###x(O: >7 O=2Oͬɡ(:2:~2W!?>@>@y!?@!_͓db = 5, sfdc = 6, sfdd = 7 Enter minor root device number: ! ! 6>/2@ ! !~8! 8 0/etc/mtabroot! " 0S CLU2] n RTbk(( (( 8wB#(R(>B> B>B+;6<>(>2T> ,'(:TO x:TOx@B> B> :TOx( y!Eseekwritereadhomeverify Disk %s error: Dev %d:%d, Blk %ld, Cyl %02x, Surf %x, Sec %02x, Stat %02x Disk %s error: Dev %d:%d, not ready Disk %s erro!!8u&t'!u*t+ q q qO#4u"t#nf^#V#NF u t ##Rutyw ##͕W#ͫF ^(͞R^W FN 6  F  F v(F H+ !T]K`^Vz8#x(Y=(1=(2Vutv!̈ZH+nf!>>KI^Vut!f(@srv ͪR( !͈!͈>Hv [!@ut!@ut!f̞ nf@nf@x( :A!H+f̞N/etc/who6T]/w(#6t&u't(u)s t!u"s#t$u%s+r*!  8 o&0S80 !  8 0 /etc/accountW*u0t1|( 4[FFxW͑Z ͑ZW*c:`G[a:O f('|ݾ1 }ݾ0  ~??݆O>2b>21*c:`[a V(~??@ O= @ "y22*"d r(*(w ͝( 0FH+ n( h(Pͽ(;&(]%(@N7((e(+ʹ(ͽ(&(;(%( (( w#r(w 6$Lh((7;%(& F  ! ~ 9!O+!O+60r(() 50(w#( 40L07V^"V#~ r((;(%( & ͵w s"r#Lwrݾͷ(w#w rʹ(~ mN 6n"f#~(^#u"t## S~gj0 * F>#u"t#w 8%nf~#ut f(~ 0 >#6 ɧ(݆݆ݾ?2s{!**usr##uͨ]{Q ~W0ewG!_^#Vz(S!6*>.7*^Vͨ:["!ˆ~$͑Z{D>7w6ɐ//080HIY7/5465_7:8{8;;99~99i9z999JM001188222233G3`333 4H4P4s4ggYnY?[|[[UR^TTTR1S44444: 2F%!nh*8%!F !4!~!ˆ:!͝!{h!v˶ s~^*V+R#( / +6fn(f)+6/~. .(!Hj(y[(A*(?( n#~ d(a*(Y* :!0Ix ~.(?#~ Hj(0](,(O- Hj(](8y0(](~(7s,r-=w0w26bk##"!T]52 ~^,V-~0Nwy#6RN#F#^#V# (#nf|(##nf| 0H+~ n*f+8HA0~H+ ~ H+ ##nf|(@8 H+*##nf|(8v* !<#H+nf|^Vz%+$8H+r: Dev %d:%d, write protected !9nfuJtKnfuLtMnfuDtEnf uFtGnDfEg  + :* <2* ! ~ !! (0ͺ 8uBtC! u@tA!uHtI!@! L!F !F!E8s r!A.(7 N /v "~ ^Vz ^Vz Q^!E0##~7͐jͲj8~#foDAEMON%CREate"KILL$REPeat$DELete"REWind$Directory#MAKDirectory#SHellEXitYPAth:SHIFT$GOto'$PROMPT@#SLeep3%PStatq'TYpe1"REName"WAIT$IF`#PRIority%##^Vz8x(+!+@!@!@6^ ;͕W80n f RDM!Buts r 4 Nnf| }0 >H+n f ++ut4 n f ##u t +ddn"f#2G(""""2!Bͨ!@ͨ!ͨ""S"*!u!@u!Bu:G(:****:!9u"t#!!*R">2:(3B /*n2f3u2t3044 45bk)))))|= :02?*1"?!">2Oͬ>@6>@6!nfO ^#V#srv5)r(u"t#qp6 u t 6#6# ut~wɧnN~-(#([( *(?~ 7!͸j!: T{0| 00000.pipe ><|"'Syntax error /dev/nulln f n*f+ s(r)n&f'> Oj͸j! V( n*f+ 8Jz> C 8=p!n&f' F8?!6!~(! *!8 0 &H+n&f'> Oj 8 ^( ۧn f R(}!n&f'u(t).F ^(V)͸jn*f+O+T]~#^(/ T]~# n(f)+  nf|H+##nf| n*f+8 !<#H+%s nf|(~w6%4|6#^Vz%+- E!$͐j0((0$8+O nf|%+& n f!|^V6nf|%+"$n%( $$n% &4nf^Vz%+n%(5~!Hj!$(#!7yrewaERRor=!=nf|%+Fx!T]J1Fa͂h(% nfh(HjO~( Hj #r(yʹ 1nf|%+F% |( +8+46nf|(F%|( Es r!$!6nf|~- ###?7y!3́jsr^V^V^V ^Vo3v3}33o3y ~ݶ y!3́jx!3́j>73333srsrsr y!3́jsr^ V ^ V ^V^V33333y ~ݶ y!3́jx!*4́j>734:4A4&4s r s r sr~w}(~ݶ>7}0 >(8>(wnfut͑bW\iutsrj>srut*Cut~ݶ>7:42KC1BKLͼC4`y!5OjN*u%6lu.%03u %4u %c shell ~%`{7(~> !--Y(.alQ(.wlI(.elA(.r!r)!9%c%c%c%c l&kjy!)Oj!)!9|&okhjy!)Oj!)! 9%3.3s-%02d-19%02d %02d:%02d:%02d%3.3s-%02d %02d:%02d 000JanFebMarAprMayJunJulAugSepOctNovDecDMͲj++~Hjh D*͑*8 (7! {*8$%%%%oh 7Hj0:8 ag?'0! *8(%%% J* 0:?0Ʌo$nf~- ##!u$t%n$f%|~>/7NF n f _*{:xWKy~(  >7bk6 6~XݶY( ##x 8>7*3.$    ͬ9z3.*sr:_z>7 ~~x(z(z {8PY( !3.^ .!`:g J~("V^fnKBKB?0#z(!|(ͣ<8x y0`i-e]^ (!`:g `ͣ<8[PY-*| ~(ͩ]ʹ]~(0*[z { | }(8rstu`K98j*[z :Y9a`^ V ~ 2͕h8OYn f n f Nnf͎/*8*ut">7 ̈́h8Ynf nfNfTj~ݶ(>7y((>7ͼCP > 7~wrsr`ay ͕h  ̈́h>7ͼCP > 7 ~w`a* bD8SS2ͯ,8ͺ-ͺ-ͯ,0ͼC~>7 8h81*NFqpnfut~ݶ qput`ͼCͱ0`s OjV ^ Á@s#r#>@?OW>@! 6#6>@5?!? ^6#V6o&))e>w#ws2?: {:*>2:?o&))c>^#V#~#foTj: :["̑Z{D OF%| *(' 0#wnf##|!*8z NAH+nf|F%BH+!*8z!X%Illegal number: "%s" HjO~Hj #  nf|()~+(- ###F%| Ex(A(xDG8h98nf|(##98H+!<&^*V+͸jͲju(t)nf|5 8(p!8z !8r2s3 G&&0 5/usr/spooln(f)+6n*f+ 8a6/n&f' 8)~(4' ^(V)( >c'8͸j> 7(n*f+ 8nf 8p 7n&f'08R6bkJn&f'087-~w!0JnM9ړ5p~ y >7 yh8t98onfut nfu t fnu t ~wY(V^fnutsrq~( 68N68͊ 7 1~>7(%y( h848y(!`+_a`͊76ɷ5 B~ n f |( 6 6 ͇6NF n f _8a^ V ~ ͕h8 nf*|/  Se^ V ~ ͕h8 nf*|/  es>Oj}os#r+T]>Oj x SW~(Knf4~5(}< )}o~(^#V+sr[s#r+"#,|.,7_W~<(d=(~ A*|(S^#V+S~(^V{_s#r# 6#6#ututnfs44,{,7W~(P5nf~5(} -}o~(^#V+{_sr[s#r+"{ | } !!""utut`n f *B( :W(g ~ ݶ (a `n f | *Z>/7=V^fnz | }8a `"SZ:n f s(7^y(z/W{/_|/g}/o#| yD(J= NF NFJ2= FNF n f _8,FN FNJ`>utsr>7͊<^Vz >7x 8>7 *X_*[:<8[zW!RDMnf~ FN\<%=$1V ^ xVsVnVi~W^^V^fnutsrV^<^V4^V,"+(#.4V^>7sr ͼCͼ1`s,7 y!1́j`L212 22)2L2L2L2L2L282=2B2G2L2a2r s a2r s l2~wl2~wl2~w"(. 4>7a2 L~ݶ>7a2nf| } >7ͼCh`s7|0 W&kmiy?`xÓëcccccccccc c c c c cccccc>@"?:@>@~*?U?W~$@{>@ ŷBDM~$2@C@SB>+p+q+6= "K@[B2@1s@1>@{!F>@2D!,F!FRunaway program, aborted CDOS simulator required 2@~$GWxy(`{# 888x(H  s"!":{@@s{!9" {~$GWxy(n͓# 888&f'@8 F8F> 5 n*f+F ~s #~q #S'ݾ2 S'ݾ3~WW#~# # *l* !(!(*c:` ~ʍ(a*(4^VR(>T N >R V >W n >S f >?o&nfl* [n4f5jn2f3j~%!7#0n}(%n&nn f nf!(!9! )~ B ;n(f)N&F'| !)(> ~%x##)#0b*( > [a=Ž' PID State UID GID Ctty Pri Bank Seconds Command PID State Command %4u %c%6u%5u%4u:%-3u%4d%5 } z { yO[y*~!U7OjFV(~Gpy(>&7 @ͼCs7NF x y>7n f | } _`h8/NF n f _8`h8 7a`a`88(8.8:P8~Nqw##s<~>/7NF n f _h8`nf^V+_a`K!ha6~w48:*~w48`u t s r *F5aͼC ͼC8 P `> 7`s< -|-7*Kx y8BKxʓ-:g Z[_(G(LWĘ-G(PY*"*"0*#"*R"| !~# ( (x !BK_:WK**x(Wb SZ(B^]R({ ( z2B(s̐#"!4 #4 #4 #4 CZ b x({z27s<"Sy2nf^V"Si/í.*[utsr[RY(VF>(7(s~ $^ V ͕h8aYnf nf*|/H Y>(7 =NF n f _8&`~ Ya;Y: YZ<#;Mz }8 ]=z(d= z(h= z( l= .%yn=8z=8{=8 |=8}=}o˽%˼˻NF_V:^;f \L>\NF&o))^VV^fnz 5:_(#ͻ]0e]*rstuʹ]2>e]\L>e]\4! 4 4`]L>͇]6nfGw#w#!?Oj~#< !c>##~#(#79>p+q+r+sO! O!? s#r#! W> x(H  s"!":{s{@@!9" {~$G:OWx@^y@x~$G:OWx@^#V+y@x~$G:OWx@sy@x~$G:OWx@s#r+y@x"!"E[DWE0qDXD`D͹H0p(^V`ͰE07 @(͋Fa`Ha͆G84H(WE8ͨGa`e]H(`>%7 e]`.6NFnf_D[z { z {(?cF8G.H>HDz>7D~( |ݾ }ݾ(̓Ee]0~ >/1,`wE*t:u;nf*ut!`SWͥ`X-XͷS8JWq$q%t:u;*ZX*f n ut f n ut.f:"f;"!""29`.~:݆;gY!ˆ.f:ÝͼC8f~> bh8[! ;Tzݾ {ݾ(I! ;Tzݾ {ݾ ^Vz_J#8~>0ͥ`7>57"!"S>2*"9-XJV8'*nfutW8 !UW%W6 X-XW8JW6$6%*ZUX~$>7-XJV87nf*utnf##uBKW8!@ͼC~>7 m!nhJ?>8UdJ8Pnfutnfutsrqp`*F(PYͻe!{h6!{h`~ݶ>7ͼC~FN`>7x K!nhJ8!b>7 6PY͋f!{h*[:v(&|ݾ }ݾ xݾ yݾ NF!= *:g[v(x y % >7J8NF^Vnf*:[~ = >7>2OK!9͹Jɗ2OK͗K^V!nM#(u%(jK8tnM- #nM0 9MnM. #9MS]X>7z(@NFBnf |(ut ##NFnfXq&p's(r) *c:`G˹ ~(Y| }(,| I^Vz { 7^Vz( z { !^Vz(z {(>7˹Z[ay>-7y(!=0* H N#F+s#rqp>7y 0E~F(y :*R y0* N $F ^#V#z(qF fn0f1 *c:`G[a ~( | }Z*~F(X: Q¬NF* F N#F#x >2R6F+6+6*uPYͨ++"ͨ{Dpen for the systemFile not foundIllegal file nameDirectory not accessibleFile not accessibleFile already existsDisk space exhaustedDisk directory space exhausted (inodes)Too many files open (inode table)Illegal system callFile too bigToo many devices mountedNot a directoryDirectory filePrivileged system callNot mountable deviceFile system busyNot ordinary fileDevice not mountedNo processes to wait forAll memory in useDivide overflowNo system buffers availableArg list too bigToo many  | }0>*7!rstuz Srst u!NFV:^;f7&(/(*([(? >'7/ ͺ-fEwEͺ-fE>7*+"*#">h(2(~{?0E1,>/1,...~(>7+h8$.H>H8z>7(~(͹H0*wEͺ-W/ K!8. (ͺ-. ͺ-( /(fEfEWNFnf NFnf_8z/( ^ cF8 ͺ-fEfnNF^V`z {HJ_WEqGhqGX(4NFx yxG~ NFxݾ yݾxG>.H>HtG~ ~(#UW%W6 Xu,t-z(DNFx y@0  YbkBs*r+!nf |(ut ##q&p's(r) n,f-!ˆ!*c[a:`G ~(0nf|ݾ }ݾ nf|( | }  N ˹y>7* n2f3^4V5N6F7 N8F9JN6F7 N8F9Ju6t7s8r9nfutnfut~Fw6 V8i*bk66 6$6%*ut*nfutNFZnXfYuXtY|(4####*#"|(!*c:`G ~ z  | }([nM_L #nM, #QKnM# o((^#VNK8 :OK̮KdaLxKucLccKsLjKzM##*OKE ̀KB"OK*w#"*+"|̮K*"!" [!R*Rz3.͗KFLFL.Q( FLFL.,-( ;0 - ,3e$A(%( ;jK8   I(06L8 %(;jK0%(;{_?ЧzjK zM#ULl 80g͔M##a(|(Q(̓M##z(a(z/W{/_|/g}/o#|  jj{03 z(Y(>,3 i(>-3 yoK͔M##A {(nM(ˑnHfI@(&yo| }8!uHtI####  ͟[|(3͑Z uDtE͟[* ͟[nDfEut6D6E ͟[^DVEuDtEsr͟[* !"\:`G*c ~(HnDfE|(>[\R0!uDtE|  ^  ^Z[\z(| }0"\[a!"\!i0 ! 7*f(ͩ]qp u t s r 6*k:hG[if(V(  uiͩ]*k:hg[ixݾ yݾ ~ 66 % ]~ N ͓f~e]!7PY`i\8linksIllegal linkNo device driverNo process tables availableBad valueNot connectedDevice open errorDirectory in useFile in useNo matchChannel access errorNot a Cromix diskBad free listBad inode numberRead only file systemProcess not foundAborted system callPipe errorKey lockedDeadlockLock table exhaustedTape I/O error68000 program cannot run under Z80 Cromix!g%Ẃ4JW* *c[a:`G ~(0nf| } nf| } 66*  [-XͷS85JV8(q$q%N ~ 6~(0NFnfb !+_caV6d`!\Ib^V!^~ nd~ e]> 7Ib5V^fn:e8ʹ]_Ib`~(a`e*^Vr s ^ V r s :w:w:w66tunftu"!!!aW*s[q:pgx y V ~ 66% b*s[q:pGV(~ 4 ui`6da`*s:pWx y |( | } { _[qX $NFnfha8V~<>7(K4`NFpqͩ]FNpq`>7e]fnNFI_~ 9~ 2NFnfb ~ݶ NFx y >%7=h86FN pq`͇]~(5`2!""*| |e]ͣ<8`! * "0*#"*[z { | }8$(":_(rstu e]!ѷ#7 (~ݶ>7ͼC~FN`>7x Ka|>!7b " nXfY|6##N%y(V:^;z { ͥ͡^*V+6*6+zX##W*~.ݶ/ W8u.t/WW>7W*n.f/|(6.6/X! i0! ! i>! ͭizWY66 ututBK`iunfs#r#utnf##ut| }Yz nfutnfutnf^#V#z(O++NFq#p#utbk~x(5nf ut| }0bk^VLbk ut#{( > jK8&nM(jK8#{( {( > jK8nMaM8hMaM8 MD)) )O 0 ?nM^:OK]{nM^#V+:OKu̓M͗K~(! N68_^#V#(̀K(->:̀K> ̀K>"̀K]{( 0>^̀K~@̀K#>"̀K> ̀KͮK~̀K#wNNNNNNNO"O4OMOaOuOOOOOOPP-PDPYPjP|PPPPPPPQQ$Q@QJQXQjQ{QQQQQQQQQRR(R1RFRKRURUnknown error numberBad channel numberToo many files open for this processChannel not openEnd of fileDisk I/O errorToo many files ox K*k:hzݾ {ݾ |ݾ }ݾ +xݾ yݾ V( uiKi = \8v !ͭi͓f~e]>7͓fe]͇]e]!\U^nfV^#V^f n!z > 7O^0666 6!!tu/5 )\0!nfBe]_ʹ]^8o!\nf8W~P *]^VBͩ]66_FN4! rst u!ʹ]J83z { | }0z {  *{:xW~(x y |( | } [y *c:`W ~(:x y |( | } x y |( | } [a *:W~(x y |( | } [ {!\8*^V!^~P?84_#tuʹ]d\8^V}=W*^ NFnf d8 'eͩ]J8Z!|ݾ }ݾ 0K~P0D d85~ ~P04_#tu}# e]J8#+| } ?>+8<<sW3tƈ_z4{ltͭsW3tƨ_z4{04848 "s40Wtlt02t7:tOus8 483Wt02t7{7rKt88A043#43#43#43#403>s*tE3*tO4(2tt4^t_:t(!!:t :tg:t2t 4 lt! Nytx2t>2t:tG7G:tW(G(x 4/ >ɯ42tHs4^t!'yt^t:t(}x!:tW ! +}  wx(x/xKx~ݶ I(~ ~ @Lnf| } ~(3n f |(| } ~(~(~> 7(> 7W^Vnfsr^VnfsrWnfutsrututnfR 7ui>C( = z {?>70BB0 = `j Yj Ʌo$`jA[?a{?0:? ?Uj?gj?nj?ɾ8~#Oj~#fo~HjGHj ( #7 ~`j~# ~#  ͸j~# ]k*c""6 >2w$w%*uNiu t sr!Q{u t 6n&NDj{(#ut{0!s< = 7>      R0 i!iNF jN(,2t}2t:Rq(n f ^{2tCt62t!"tpq2n8ͦq8Opp;p'p͔o66F ~w!pf V(F  n&N()+NF if V <<^Vu t srzSD͏p ~TD͏p |DD͏p xSC͏p(LC͏p(SB͏p(lB͏p( *t~#~{!?l< = p( p(pMpM q( q('qMAqM   N:qG:C G>Gx >29>2:m͆Ȃ(1͏>>τ!ͤ:PG(>2L͎!95 >2MÎvT͎!:5 >2MÎ>24>28؁N}N T(!45 >2M͎**"N !nZT!85 >>25>26mT͎:L !55 >2MÎ"N!65 >2MÎ͆(4͏>!ͤ:PG(>2Lv&*A>τ}>τȃNr^#V*AR0aiR͐*Ai͆yM>= yM}|8bk| } 8> /Gy0M͈+| `*A:Kg (%! "AT !L͐>Ϳ^ V  T]6 J8+| } #>+?̈́h8*N\sr nf fe]͑bW\BKNb͔\̈́h8*N\sr n f fe]SemfBK!\yfnff(sf#nf: nf"nf"nf"V ^ fnutsrfn u t V ^ s r ::utsre]e]>)7PYecromixe:! 6^V ̈́h8n f f6 F( |/N(  : k}>2N!ttP67{}͞yͥy7{Ò7{n ͛x~Rx~77{ãNgTo:Co&:@o*An f ^ V ^V k&jxo]!|͇J!9ɗ2j}n f ^ V z { | } 0Lz | }8>2j}ynf"r!j{"tF \~N( t!utut"u&t'!u(t)!|G^[*srsr!ututͻe!7RDMbk62!""! utͭi! " " !~ͭi! " "!RjEx2!ͭi!^#V#z()z<(srsr66nf|/!ͧ+!'^#V#z(z<(nf|/llm1mMm2tt4>ltw ${_͚pu>>>>/2J!"H@> @( >2J#"H>>O)>>2=> 2>JNV~>2QmD2{DN rm*r++++"F*H"DA:{D*vT *FZT(>!>5 > 2M.:L( !=5 > 2M:Q<2Q ͎!>5}> 2M͎9)JN?N>2;>22M9!NF(0*r*t"rʹ}"rN [t++++                     q> 2t8rq `8r(Ùq:t:t:tˇ2tq2t2t2t8r r (̀qs (̀q:tO7ɗ2t2t2ts4͖r804W =0èr>0^tWlt@ Wt4W 0>01úr4W 0>2t7ɗs4:t3O:t2:t1Wt͖r804W 0@^tO>04W 00.2@ - @ Wt$:tW(_(7:tWt!dyt02t7:t2tr04848r4O 0Wt02t Wt>2t7Bͭ}"A!]!ia((>N(>N(!i!"AT! *oi!"AT2ATa:A}Nrs#r*?)&R> 27m*H&"D!n"FAvT:L:Kw( :Q<2Q ͎!75 >2MÎm&>:L >2MÎ:J2K>ͿG`(<2KxG2K>>τ:@G:?G:@>Ϳg> 2M@:M:L@ >2L!>2L2M͆O>2L:K >W>_2P>G>i8  +| >>2PAۄۄ >2L@.h*!:G~(>*| }(4>Oj]h %yG I>07͌g | [|>27*utyww#NF f(4N0F1*x y8#0x y0*| }>17(.h*:G~(6*| } 'z(yG >Oj]h N 6[|(%z {8*+6L #~4( 5 6z [!ͬhz *^V!%ͬhz(0(Oj~#fo#|+( |(> 77*0##^(~ y (>,7piyOͮ}N 66767NF jNjNFx y(0NF Kly"Ay2@:j}{(!Q{~2C~2?~G   N#^#V~2?ȃN b"N Z!"A2@2C!j{"rͮ}N ?z!"A2@>2C!j{"rͮ}N ~!j|(=67!{~C(%H!z ~D(0qz84z~H(qz8͘z8͘z07~- ~18~8(5 A07FN!11B!z( !60B!z(7^ V#^##~#w~#w~#w######~#w~#wNit6666͝n[o ͚p͒@A͝nIo͚pn ͩm~Tm~7͚pãi&:to:to:ton f ^ V ^V &kjxo]!y !|q(x=(!͇J!9>2Rqn f ^ V z { | } 0A| }8$f V(nnpq81Qn8, 2Rq_n8!6z { >  66:twnf|(:twF ͻqͦqnSt:tˇ2tnpq8Qn8*t"tݧnf"t!"tn}2t>F ~(2t} 2t2t͝n~2t:tV(2t^V$(H% # x )>2L͎!<5{~> 2M͎*rv*r!vmȃNvTĎ" b!y:K>2gbPχ*D"d*F+6"i!b :J C>ۄ>Gy>yxAy>͆ :Kw *AR8>>ۄ͆˧(>>A>y>*D+"d*F"i!b :Kw *AR8>>ۄ:J B>Gy>yxQAW>z>2L>:Kw >:QQ>AW>z>2L͂   >2LÎW>$=2O:O(@(4~= s@(~5y?>"! ^#VTjąɅ΅Ӆڅ~ ~~~wf ^ V.)jutsr>"7`2LRX!͊8 ͮ!ut4(5>$7K(5 "~(Y(χ(ÀN x w` G~"" ~ |˿ >&|ky(y r;gyMD!φ(87$(Ag>&>.&x>9f"l =ˍ&u"|=N {v! Z!+nf|R(>$7 O{v8{p͚{8 >y yI((}p ͳ>8ajآ$qut@~ :~( >@͝t0>͖t0! w~(=w>&~ ~=G~(=x"n 8$N  &~ > ͫ~ !v7a͗"n~)"n !n > &~ @6h͗ 5 9~'w!F(-"n 'n !~) v(6>͝"n f> &~ 65~'w6> &~ 0"nvG&3nQ!1,8v Wn`~NN~(g> >\^nf}(5~ 6+ut!Oj~/ !+87"n nu( }  }(nf~n1f2Ϳu1t2#~ 0?w+?_(( (͑.^+n1f2R`iOܤ##DM#~ q1p2~`iO++ܤDM+^-V.͍0q1p2N!F"q1p2 + 8 0?Nwy ~+~=  ~000w+~0L (S8ln1f2^+Ru1t2ͿG.+^-V.͍0w+~w(g(0w0 ?w+~+?_n1f2Ru1t2Ϳ(( (͑.n1f2^+u1t2( ~w>..: ݙ2 ~>_.n &R0}DOj>_.nn#f$#x.4 5>$7K#5 ~(Y #ÞÁy˿yy#y #yg66@6B6 B66( (>Ͳ^>Ͳrͺ-?g^ ~ϑ~<8 >@͝|d>f "|!F+0 4>;6>[>Ý~ o(w |*D+0w |~w+#~7# ~wSEQM0pp;:P12P345678P9P 8~= 84 [ (m (( A [~ =w >[~O~ =G~=x8#N  [~ x> d~  v7!(~ n (y^0 K#ypN졯ww#w!W!7{OjV+^͋ͳ>8x͔MDͳ>xg͞ó>͔?͋?͞?( !Oj~#> 7zz~z(*8:hjxzy!ơOj֡x֡x/w y   x 7Wx~('0$!VOj~(x> y(> y ~y >"7>(7 0Oj~ 0Oj(ܔ~p>"7yGy/GnfѢ !nfѢ z +| ˽˵oկ[A -8!x("#> y~p>#7~""> y!>y  xx#8|8|8 ( (w":O!r :(7(O! 0! +666!6$R6%6'66F T~ '! +8EG"n V6xJ !+8Gn ~"0x ˿(xͺ-0ߧ>͝~ (QG!"n 4˿n "f (T(P#(K%(X f( xV1,8vn !~"0 x˿ (((<"F(ͯ,8M˿ 0ͯ,0y(~$R( ~%>  qp6~>Ėn>Ė4(5>$76B6 B666 I5 !~(!+0~O ?͚6IV !ͺ-?~<8 >@͖͝!1,F**Iyͷ!mIy˗g!x!ju-t.u/t0! آ6 ~ w+w,֗!gu5t6!ugthͦ>i>!1,N͚q<͐!9u3t4n5f6!9u5t6n3f4qNN@@7N!+8N(G~( >@Ͳxͬ^ g!4(m0F N,n!f" n͍͝ܯs!r"4 ^-V.!n/f0w#u/t0N~(>@ò!4! 4!4+0!m!xɍw}i!]{0o $e7eQ͓?V͓?j*}7e[͑ѧeÑNTZ`ft!{?o0$>7>Q>V>j>y`iy̅>͑|* .&]ͯW͠Z ͳ>}o% ~gNi a X.P.@ O{ h&y(&y(ɿ x { >7x @^#V$u#t$R0 }/o|/g#>|>{Aͱ֗>~7`G ~("!x?Ojx~8/N y!xOj~/Ny>}N iy>iy`/N y}/ yRn&))))&))T])=I[)E{U}ۑm%i3oCK'#7?O;GkWg/_!cyS ׻Žϛճѿ u6fa3DSUUUU"45ffffcVWfgeVWfT4#TUESE6UUEEFUT4 > [~@O6 ~w ! f> A6 > [~O5 6 [~0G[hNr!1,WŃ^ AN!+85nu( } ⲓ 겓}(n f Гɯ1,F~(>@ò!+0!m!xz9ifÖrootAlt O*CROMIX version 11.16 usrrobuf cino filPmntargOlck1F jx8y!@!+@!~! + !!~! + 8B!*srI! 2] 0S !6( ͞ !L]k) 82!"Ö+Not a CROMIX disk /etc/startup.cmdehksh-q/etc/startupUnable to read super-block Unable to open console /dev/console/etc/iostartup.cmdeh/etc/iostartup/null 8HUXG"n L~Ox(92q y˸˿n (v(w !fډ& !^(։!~xF(f'tJ>ò! 1,8w"n~!։F!NFx˿ f(> W~ >ͲQ$nfbZ~ VQ~)"n>F^"n (A (1((#( 0 >^A@v(~$R V> X>ͫ!V> X> ~  7>ͺ-?g~ ~<8 >@͝|ͫ> 8("n n ~(=V84&v a (9 q&~ ~'8<RԄ0?w,?O ʱ (MN !F! N#fi Ιƙjwݙ$ؙN,n!f"Bu!t"5 >> Ø~  6i6i>w ̈́w w!w"w)w*̈́̈́!>n̈́ͱ^(n'f(u't(^%V&T]͓DMbkB0*n͖Bͱw'w(͓n%f&R0Rn'f(|ȗw'w(T]͓DMn%f& B0 0u%t&|>weR0n-f.^/V0R͔n!f"u)t*t6n)f*^!V"n#f$)͍n/f06+n-f.u/t0~_ҘN)F*q1p2~ r06 (8Bn1f2~G.^+<4?<7xK.@.h.`> HbZZ x@( ͯO>$qz kgͭp&@è&`ͨOxͺ-?y ͺ-?o&ͨ0&iͨN.x@O>&iͨͭ{0>@{0@{0>{0@?DُЏُݏۏۏ{?> 7ɧɧ{*|[!R +-{ !"2gii>Pͳ>>?ͳ>>> >㡧>*="= n*|"K*|"*=Rog"=J!!*["`i*CM{v#{ FD8Oy0X8Dآ[s#rut}wO6!6u t !v* ~(7x1(A((O> y x8{z{({ 3D8>988s#r*آut}O}0q0㡯NFB =>$7ɧ<>7(<>K U|&o! CROMIX Operating System version %02x.%02x Copyright (c) 1980, 1983 Cromemco, Inc. !6C22:: U8n/etc/ttys!! 8 8 >!CR  7!! 8A 86(#  ͳ}nf͌> !R >2!U0R!   !Bv System shutd2s{!**usr##uͨ]{Q ~W0ewG!_^#Vz(S!6*>.7*^Vͨ:["!ˆ~$͑Z{D>7w6ɐ//080HIY7/5465_7:8{8;;99~99i9z999JM001188222233G3`333 4H4P4s4ggYnY?[|[[UR^TTTR1S44444: 2F%!nh*8%!F !4!~!ˆ:!͝!{h!v˶ sr: Dev %d:%d, write protected !9nfuJtKnfuLtMnfuDtEnf uFtGnDfEg  + :* <2* ! ~ !! (0ͺ 8uBtC! u@tA!uHtI!@! L!F !F!E8s r!A.(7 N /v "~ ^Vz ^Vz Q^!E0##~7͐jͲj8~#foDAEMON%CREate"KILL$REPeat$DELete"REWind$Directory#MAKDirectory#SHellEXitYPAth:SHIFT$GOto'$PROMPT@#SLeep3%PStatq'TYpe1"REName"WAIT$IF`#PRIority%##^Vz8x(+!+@!@!@6^ ;͕W80n f RDM!Buts r 4 Nnf| }0 >H+n f ++ut4 n f ##u t +ddn"f#2G(""""2!Bͨ!@ͨ!ͨ""S"*!u!@u!Bu:G(:****:!9u"t#!!*R">2:(3B /*n2f3u2t3044 45bk)))))|= :02?*1"?!">2Oͬ>@6>@6!nfO ^#V#srv5)r(u"t#qp6 u t 6#6# ut~wɧnN~-(#([( *(?~ 7!͸j!: T{0| 00000.pipe ><|"'Syntax error /dev/nulln f n*f+ s(r)n&f'> Oj͸j! V( n*f+ 8Jz> C 8=p!n&f' F8?!6!~(! *!8 0 &H+n&f'> Oj 8 ^( ۧn f R(}!n&f'u(t).F ^(V)͸jn*f+O+T]~#^(/ T]~# n(f)+own in progress System shutdown complete !+@>2nf" o~0(cͳ T}02{02nf"nf"! M  8)*sr#s#r#K4J|( }|ї~0 F gtty!CR ȗ#^#V*sr!A66*|(|<#vL8e}=(=2L8}o"2> >^!gj0DM)) )Oj Floppy = 1, Hard disk = 2 Enter major root device number: hd0 = 0, hd1 = 1, hd2 = 2 fda = 0, fdb = 1, fdc = 2, fdd = 3 sfda = 4, sfr!F!nfï!!5:O̡R: !tͼCz81y2fn"!"!""2q$9F%p$ܡ`/etc/ksam:!w$~*B8~%!˾!9NFx(* 4nf|me(0+15)8+>.8 ͂t8C> .( 1F()Fnfu"t#t8 n f!F(H+o&Fc*(p*( *(!##^V(8% 8pͼ$1Fa͂t0e+qpsr6666 666 6B!BÁ login/etc/login.bin Login:    M  8 8 !a ͸jj/dev/nLfM~ a(!*8   Q ~2Kn,X` %K8+~ ( ( (#6 8xwT 7 8(UP~TG8~;( *( 0 <+~ B ~ ($ ( ut##~:( ( ( #͟ (,#͟ (#6ut##8 +~  7^VR( +~ ( (#w~TG!0 7~TG 0 7! 8 0+T]BDMbkut!r!^*V+T8jT͢0 #ї7F^#V#|7( j  (n%(j   8z>7%s: Shell command %s Command not found: "%s" -c-p-q/bin/sim.binshell/bin//cmd/.bin.com.cmdPID = %d 4n*f+?(8e0H+? N !66`O+r*(w v(82p A  ͅ8 n  H+F |(͝(  F8@?> r(w:"(y`{ xGx2banks~ !~<([ (= Kz(.ݾ()8@~݆8784( HwzwzݖwN~8wO݆WyN`###z8 ͥOyO !~8O(HqrsGzݾ8 r~w8͡`'~݆ ~_V`{ ͡###z !~ ~8_###{>#B!?x(OT]###x(O: >7 O=2Oͬɡ(:2:~2W!?>@>@y!?@!_͓      !"#$%&'()*+,-./01234db = 5, sfdc = 6, sfdd = 7 Enter minor root device number: ! ! 6>/2@ ! !~8! 8 0/etc/mtabroot! " 0S CLU2] n RTbk(( (( 8wB#(R(>B> B>B+;6<>(>2T> ,'(:TO x:TOx@B> B> :TOx( y!Eseekwritereadhomeverify Disk %s error: Dev %d:%d, Blk %ld, Cyl %02x, Surf %x, Sec %02x, Stat %02x Disk %s error: Dev %d:%d, not ready Disk %s erro!!8u&t'!u*t+ q q qO#4u"t#nf^#V#NF u t ##Rutyw ##͕W#ͫF ^(͞R^W FN 6  F  F v(F H+ !T]K`^Vz8#x(Y=(1=(2Vutv!̈ZH+nf!>>KI^Vut!f(@srv ͪR( !͈!͈>Hv [!@ut!@ut!f̞ nf@nf@x( :A!H+f̞N/etc/who6T]/w(#6t&u't(u)s t!u"s#t$u%s+r*!  8 o&0S80 !  8 0 /etc/accountW*u0t1|( 4[FFxW͑Z ͑ZW*c:`G[a:O f('|ݾ1 }ݾ0  ~??݆O>2b>21*c:`[a V(~??@ O= @ "y22*"d r(*(w ͝( 0FH+ n( h(Pͽ(;&(]%(@N7((e(+ʹ(ͽ(&(;(%( (( w#r(w 6$Lh((7;%(& F  ! ~ 9!O+!O+60r(() 50(w#( 40L07V^"V#~ r((;(%( & ͵w s"r#Lwrݾͷ(w#w rʹ(~ mN 6n"f#~(^#u"t## S~gj0 * F>#u"t#w 8%nf~#ut f(~ 0 >#6 ɧ(݆݆ݾ? ~^*V+R#( / +6fn(f)+6/~. .(!Hj(y[(A*(?( n#~ d(a*(Y* :!0Ix ~.(?#~ Hj(0](,(O- Hj(](8y0(](~(7s,r-=w0w26bk##"!T]52 ~^,V-~0Nwy#6RN#F#^#V# (#nf|(##nf| 0H+~ n*f+8HA0~H+ ~ H+ ##nf|(@8 H+*##nf|(8v* !<#H+nf|^Vz%+$8H+1V ^ xVsVnVi~W^^V^fnutsrV^<^V4^V,"+(#.4V^>7sr ͼCͼ1`s,7 y!1́j`L212 22)2L2L2L2L2L282=2B2G2L2a2r s a2r s l2~wl2~wl2~w"(. 4>7a2 L~ݶ>7a2nf| } >7ͼCh`s7|0 W&kmiy?&f'@8 F8F> 5 n*f+F ~s #~q #S'ݾ2 S'ݾ3~WW#~# # *l* !(!(*c:` ~ʍ(a*(4^VR(>T N >R V >W n >S f >?o&nfl* [n4f5jn2f3j~%!7#0n}(%n&nn f nf!(!9! )~ B ;n(f)N&F'| !)(> ~%x##)#0b*( > [a=Ž' PID State UID GID Ctty Pri Bank Seconds Command PID State Command %4u %c%6u%5u%4u:%-3u%4d%5 } z { yO[y*~!U7OjFV(~Gpy(>&7 @ͼCs7NF x y>7n f | } _`h8/NF n f _8`h8 7a`a`88(8.8:P8~Nqw##s<~>/7NF n f _h8`nf^V+_a`K!ha6~w48:*~w48`u t s r *F5aͼC ͼC8 P `> 7`s< -|-7*Kx y8BKxʓ-:g Z[_(G(LWĘ-G(PY*"*"0*#"*R"| !~# ( (x !BK_:WK**x(Wb SZ(B^]R({ ( z2B(s̐#"!4 #4 #4 #4 CZ b x({z27s<"Sy2nf^V"Si/í.*[utsr[RY(VF>(7(s~ $^ V ͕h8aYnf nf*|/H Y>(7 =NF n f _8&`~ Ya;Y: YZ<#;Mz }8 ]=z(d= z(h= z( l= .%yn=8z=8{=8 |=8}=}o˽%˼˻NF_V:^;f \L>\NF&o))^VV^fnz 5:_(#ͻ]0e]*rstuʹ]2>e]\L>e]\4! 4 4`]L>͇]6nfGw#w#!?Oj~#< !c>##~#(#79>p+q+r+sO! O!? s#r#! W> nf|H+##nf| n*f+8 !<#H+%s nf|(~w6%4|6#^Vz%+- E!$͐j0((0$8+O nf|%+& n f!|^V6nf|%+"$n%( $$n% &4nf^Vz%+n%(5~!Hj!$(#!7yrewaERRor=!=nf|%+Fx!T]J1Fa͂h(% nfh(HjO~( Hj #r(yʹ 1nf|%+F% |( +8+46nf|(F%|( Es r!$!6nf|~- ###?7y!3́jsr^V^V^V ^Vo3v3}33o3y ~ݶ y!3́jx!3́j>73333srsrsr y!3́jsr^ V ^ V ^V^V33333y ~ݶ y!3́jx!*4́j>734:4A4&4s r s r sr~w}(~ݶ>7}0 >(8>(wnfut͑bW\iutsrj>srut*Cut~ݶ>7:42KC1BKLͼC4`y!5OjN*u%6lu.%03u %4u %c shell ~%`{7(~> !--Y(.alQ(.wlI(.elA(.r!r)!9%c%c%c%c l&kjy!)Oj!)!9|&okhjy!)Oj!)! 9%3.3s-%02d-19%02d %02d:%02d:%02d%3.3s-%02d %02d:%02d 000JanFebMarAprMayJunJulAugSepOctNovDecDMͲj++~Hjh D*͑*8 (7! {*8$%%%%oh 7Hj0:8 ag?'0! *8(%%% J* 0:?0Ʌo$nf~- ##!u$t%n$f%|~>/7NF n f _*{:xWKy~(  >7bk6 6~XݶY( ##x 8>7*3.$    ͬ9z3.*sr:_z>7 ~~x(z(z {8PY( !3.^ .!`:g J~("V^fnKBKB?0#z(!|(ͣ<8x y0`i-e]^ (!`:g `ͣ<8[PY-*| ~(ͩ]ʹ]~(0*[z { | }(8rstu`K98j*[z :Y9a`^ V ~ 2͕h8OYn f n f Nnf͎/*8*ut">7 ̈́h8Ynf nfNfTj~ݶ(>7y((>7ͼCP > 7~wrsr`ay ͕h  ̈́h>7ͼCP > 7 ~w`a* bD8SS2ͯ,8ͺ-ͺ-ͯ,0ͼC~>7 8h81*NFqpnfut~ݶ qput`ͼCͱ0`s OjV ^ Á@s#r#>@?OW>@! 6#6>@5?!? ^6#V6o&))e>w#ws2?: {:*>2:?o&))c>^#V#~#foTj: :["̑Z{D OF%| *(' 0#wnf##|!*8z NAH+nf|F%BH+!*8z!X%Illegal number: "%s" HjO~Hj #  nf|()~+(- ###F%| Ex(A(xDG8h98nf|(##98H+!<&^*V+͸jͲju(t)nf|5 8(p!8z !8r2s3 G&&0 5/usr/spooln(f)+6n*f+ 8a6/n&f' 8)~(4' ^(V)( >c'8͸j> 7(n*f+ 8nf 8p 7n&f'08R6bkJn&f'087-~w!0JnM9ړ5p~ y >7 yh8t98onfut nfu t fnu t ~wY(V^fnutsrq~( 68N68͊ 7 1~>7(%y( h848y(!`+_a`͊76ɷ5 B~ n f |( 6 6 ͇6NF n f _8a^ V ~ ͕h8 nf*|/  Se^ V ~ ͕h8 nf*|/  es>Oj}os#r+T]>Oj x SW~(Knf4~5(}< )}o~(^#V+sr[s#r+"#,|.,7_W~<(d=(~ A*|(S^#V+S~(^V{_s#r# 6#6#ututnfs44,{,7W~(P5nf~5(} -}o~(^#V+{_sr[s#r+"{ | } !!""utut`n f *B( :W(g ~ ݶ (a `n f | *Z>/7=V^fnz | }8a `"SZ:n f s(7^y(z/W{/_|/g}/o#| yD(J= NF NFJ2= FNF n f _8,FN FNJ`>utsr>7͊<^Vz >7x 8>7 *X_*[:<8[zW!RDMnf~ FN\<%=$ `xÓëcccccccccc c c c c cccccc>@"?:@>@~*?U?W~$@{>@ ŷBDM~$2@C@SB>+p+q+6= "K@[B2@1s@1>@{!F>@2D!,F!FRunaway program, aborted CDOS simulator required 2@~$GWxy(`{# 888x(H  s"!":{@@s{!9" {~$GWxy(n͓# 888linksIllegal linkNo device driverNo process tables availableBad valueNot connectedDevice open errorDirectory in useFile in useNo matchChannel access errorNot a Cromix diskBad free listBad inode numberRead only file systemProcess not foundAborted system callPipe errorKey lockedDeadlockLock table exhaustedTape I/O error68000 program cannot run under Z80 Cromix!g%Ẃ4JW* *c[a:`G ~(0nf| } nf| } 66*}  [-XͷS85JV8(q$q%X $NFnfha8V~<>7(K4`NFpqͩ]FNpq`>7e]fnNFI_~ 9~ 2NFnfb ~ݶ NFx y >%7=h86FN pq`͇]~(5`2!""*| |e]ͣ<8`! * "0*#"*[z { | }8$(":_(rstu e]!ѷ#7 (~ݶ>7ͼC~FN`>7x Ka|>!7b " nXfY|6##N%y(V:^;z { ͥ͡^*V+6*6+zX##W*~.ݶ/ W8u.t/WW>7W*n.f/|(6.6/X!i0! !i>!ͭizWY66 ututBK`iunfs#r#utnf##ut| }Yz nfutnfutnf^#V#z(O++NFq#p#utbk~x(5nf ut| }0bk^VLbk ut#{( > jK8&nM(jK8#{( {( > jK8nMaM8hMaM8 MD)) )O 0 ?nM^:OK]{nM^#V+:OKu̓M͗K~(! N68_^#V#(̀K(->:̀K> ̀K>"̀K]{( 0>^̀K~@̀K#>"̀K> ̀KͮK~̀K#wNNNNNNNO"O4OMOaOuOOOOOOPP-PDPYPjP|PPPPPPPQQ$Q@QJQXQjQ{QQQQQQQQQRR(R1RFRKRURUnknown error numberBad channel numberToo many files open for this processChannel not openEnd of fileDisk I/O errorToo many files ox K*k:hzݾ {ݾ |ݾ }ݾ +xݾ yݾ V( uiKi = \8v !ͭi͓f~e]>7͓fe]͇]e]!\U^nfV^#V^f n!z > 7O^0666 6!!tu/5 )\0!nfBe]_ʹ]^8o!\nf8W~P *]^VBͩ]66_FN4! rst u!ʹ]J83z { | }0z {x(H  s"!":{s{@@!9" {~$G:OWx@^y@x~$G:OWx@^#V+y@x~$G:OWx@sy@x~$G:OWx@s#r+y@x"!"E[DWE0qDXD`D͹H0p(^V`ͰE07 @(͋Fa`Ha͆G84H(WE8ͨGa`e]H(`>%7 e]`.6NFnf_D[z { z {(?cF8G.H>HDz>7D~( |ݾ }ݾ(̓Ee]0~ >/1,`wE*t:u;nf*ut!`SWͥ`X-XͷS8JWq$q%t:u;*ZX*f n ut f n ut.f:"f;"!""29`.~:݆;gY!ˆ.f:ÝͼC8f~> bh8[! ;Tzݾ {ݾ(I! ;Tzݾ {ݾ ^Vz_J#8~>0ͥ`7>57"!"S>2*"9-XJV8'*nfutW8 !UW%W6 X-XW8JW6$6%*ZUX~$>7-XJV87nf*utnf##uBKW8!@ͼC~>7 m!nhJ?>8UdJ8Pnfutnfutsrqp`*F(PYͻe!{h6!{h`~ݶ>7ͼC~FN`>7x K!nhJ8!b>7 6PY͋f!{h*[:v(&|ݾ }ݾ xݾ yݾ NF!= *:g[v(x y % >7J8NF^Vnf*:[~ = >7>2OK!9͹Jɗ2OK͗K^V!nM#(u%(jK8tnM- #nM0 9MnM. #9MS]X>7z(@NFBnf |(ut ##NFnfXq&p's(r) *c:`G˹ ~(Y| }(,| I^Vz { 7^Vz( z { !^Vz(z {(>7˹Z[ay>-7y(!=0* H N#F+s#rqp>7y 0E~F(y :*}R y0* N $F ^#V#z(qF fn0f1 *c:`G[a ~( | }Z*~F(X: Q¬NF* F N#F#x >2R6F+6+6*uPYͨ++"ͨ{Dpen for the systemFile not foundIllegal file nameDirectory not accessibleFile not accessibleFile already existsDisk space exhaustedDisk directory space exhausted (inodes)Too many files open (inode table)Illegal system callFile too bigToo many devices mountedNot a directoryDirectory filePrivileged system callNot mountable deviceFile system busyNot ordinary fileDevice not mountedNo processes to wait forAll memory in useDivide overflowNo system buffers availableArg list too bigToo many  | }0>*7!rstuz Srst u!NFV:^;f7&(/(*([(? >'7/ ͺ-fEwEͺ-fE>7*+"*#">h(2(~{?0E1,>/1,...~(>7+h8$.H>H8z>7(~(͹H0*wEͺ-W/ K!8. (ͺ-. ͺ-( /(fEfEWNFnf NFnf_8z/( ^ cF8 ͺ-fEfnNF^V`z {HJ_WEqGhqGX(4NFx yxG~ NFxݾ yݾxG>.H>HtG~ ~(#UW%W6 Xu,t-z(DNFx y@0  YbkBs*r+!nf |(ut ##q&p's(r) n,f-!ˆ!*c[a:`G ~(0nf|ݾ }ݾ nf|( | }  N ˹y>7* n2f3^4V5N6F7 N8F9JN6F7 N8F9Ju6t7s8r9nfutnfut~Fw6 V8i*bk66 6$6%*ut*nfutNFZnXfYuXtY|(4####*#"|(!*c:`G ~ z  | }([nM_L #nM, #QKnM# o((^#VNK8 :OK̮KdaLxKucLccKsLjKzM##*OKE ̀KB"OK*w#"*+"|̮K*"!" [!R*Rz3.͗KFLFL.Q( FLFL.,-( ;0 - ,3e$A(%( ;jK8   I(06L8 %(;jK0%(;{_?ЧzjK zM#ULl 80g͔M##a(|(Q(̓M##z(a(z/W{/_|/g}/o#|  jj{03 z(Y(>,3 i(>-3 yoK͔M##A {(nM(ˑnHfI@(&yo| }8!uHtI####  ͟[|(3͑Z uDtE͟[* ͟[nDfEut6D6E ͟[^DVEuDtEsr͟[* !"\:`G*c ~(HnDfE|(>[\R0!uDtE|  ^  ^Z[\z(| }0"\[a!"\!i0 ! 7*f(ͩ]qp u t s r 6*k:hG[if(V(  uiͩ]*k:hg[ixݾ yݾ ~ 66 % ]~ N ͓f~e]!7PY`i\8  N ~ 6~(0NFnfb !+_caV6d`!\Ib^V!^~ nd~ e]> 7Ib5V^fn:e8ʹ]_Ib`~(a`e*^Vr s ^ V r s :w:w:w66tunftu"!!!aW*s[q:pgx y V ~ 66% b*s[q:pGV(~ 4 ui`6da`*s:pWx y |( | } { _[q                     q> 2t8rq `8r(Ùq:t:t:tˇ2tq2t2t2t8r r (̀qs (̀q:tO7ɗ2t2t2ts4͖r804W =0èr>0^tWlt@ Wt4W 0>01úr4W 0>2t7ɗs4:t3O:t2:t1Wt͖r804W 0@^tO>04W 00.2@ - @ Wt$:tW(_(7:tWt!dyt02t7:t2tr04848r4O 0Wt02t Wt>2t7Bͭ.h*!:G~(>*| }(4>Oj]h %yG I>07͌g | [|>27*utyww#NF f(4N0F1*x y8#0x y0*| }>17(.h*:G~(6*| } 'z(yG >Oj]h N 6[|(%z {8*+6L #~4( 5 6z [!ͬhz *^V!%ͬhz(0(Oj~#fo#|+( |(> 77*0##^(~ y (>,7piyOͮ}N 66767NF jNjNFx y(0NF Kly"Ay2@:j}{(!Q{~2C~2?~G   N#^#V~2?ȃN b"N Z!"A2@2C!j{"rͮ}N ?z!"A2@>2C!j{"rͮ}N ~!j|(=67!{~C(%H!z ~D(0qz84z~H(qz8͘z8͘z07~- ~18~8(5 A07FN!11B!z( !60B!z(7^ V#^##~#w~#w~#w######~#w~#wNit6666͝n[o ͚p͒@A͝nIo͚pn ͩm~Tm~7͚pãi&:to:to:ton f ^ V ^V &kjxo]!y !|q(x=(!͇J!9>2Rqn f ^ V z { | } 0A| }8$f V(nnpq81Qn8, 2Rq_n8!6z { >  66:twnf|(:twF ͻqͦqnSt:tˇ2tnpq8Qn8*t"tݧnf"t!"tn}2t>F ~(2t} 2t2t͝n~2t:tV(2t^V$(H% # x )>2L͎!<5{~> 2M͎*rv*r!vmȃNvTĎ" b!y:K>2gbPχ*D"d*F+6"i!b :J C>ۄ>Gy>yxAy>͆ :Kw *AR8>>ۄ͆˧(>>A>y>*D+"d*F"i!b :Kw *AR8>>ۄ:J B>Gy>yxQAW>z>2L>:Kw >:QQ>AW>z>2L͂ *{:xW~(x y |( | } [y *c:`W ~(:x y |( | } x y |( | } [a *:W~(x y |( | } [ {!\8*^V!^~P?84_#tuʹ]d\8^V}=W*^ NFnf d8 'eͩ]J8Z!|ݾ }ݾ 0K~P0D d85~ ~P04_#tu}# e]J8#+| } ?>+8<<sW3tƈ_z4{ltͭsW3tƨ_z4{04848 "s40Wtlt02t7:tOus8 483Wt02t7{7rKt88A043#43#43#43#403>s*tE3*tO4(2tt4^t_:t(!!:t :tg:t2t 4 lt! Nytx2t>2t:tG7G:tW(G(x 4/ >ɯ42tHs4^t!'yt^t:t(}x!:tW ! +}  wx(x/xKx~ݶ I(~ ~ @Lnf| } ~(3n f |(| } ~(~(~> 7(> 7W^Vnfsr^VnfsrWnfutsrututnfR 7ui>C( = z {?>70BB0 = `j Yj Ʌo$`jA[?a{?0:? ?Uj?gj?nj?ɾ8~#Oj~#fo~HjGHj ( #7 ~`j~# ~#  ͸j~# ]k*c""}6 >2w$w%*uNiu t sr!Q{u t 6n&NDj{(#ut{0!s< = 7>      R0 i!iNF jN(,2t}2t:Rq(n f ^{2tCt62t!"tpq2n8ͦq8Opp;p'p͔o66F ~w!pf V(F  n&N()+NF if V <<^Vu t srzSD͏p ~TD͏p |DD͏p xSC͏p(LC͏p(SB͏p(lB͏p( *t~#~{!?l< = p( p(pMpM q( q('qMAqM   N:qG:C G>Gx >29>2:m͆Ȃ(1͏>>τ!ͤ:PG(>2L͎!95 >2MÎvT͎!:5 >2MÎ>24>28؁N}N T(!45 >2M͎**"N !nZT!85 >>25>26mT͎:L !55 >2MÎ"N!65 >2MÎ͆(4͏>!ͤ:PG(>2Lv&*A>τ}>τȃNr^#V*AR0aiR͐*Ai͆yM>= yM}|8bk| } 8> /Gy0M͈+| `*A:Kg (%! "AT !L͐>Ϳ^ V  T]6 J8+| } #>+?̈́h8*N\sr nf fe]͑bW\BKNb͔\̈́h8*N\sr n f fe]SemfBK!\yfnff(sf#nf: nf"nf"nf"V ^ fnutsrfn u t V ^ s r ::utsre]e]>)7PYecromixe:! 6^V ̈́h8n f f6 F( |/N(  : k}>2N!ttP67{}͞yͥy7{Ò7{n ͛x~Rx~77{ãNgTo:Co&:@o*An f ^ V ^V k&jxo]!|͇J!9ɗ2j}n f ^ V z { | } 0Lz | }8>2j}ynf"r!j{"tF \~N( t!utut"u&t'!wu(t)!|G^[*srsr!ututͻe!}7RDMbk62!""!c utͭi!""! ͭi!""!ORjEx2!Oͭi!^#V#z()z<(srsr66nf|/!ͧ+!'^#V#z(z<(nf|/llm1mMm2tt4>ltw ${_͚pu>>>>/2J!"H@> @( >2J#"H>>O)>>2=> 2>JNV~>2QmD2{DN rm*r++++"F*H"DA:{D*vT *FZT(>!>5 > 2M.:L( !=5 > 2M:Q<2Q ͎!>5}> 2M͎9)JN?N>2;>22M9!NF(0*r*t"rʹ}"rN [t++++  }"A!]!ia((>N(>N(!i!"AT! *oi!"AT2ATa:A}Nrs#r*?)&R> 27m*H&"D!n"FAvT:L:Kw( :Q<2Q ͎!75 >2MÎm&>:L >2MÎ:J2K>ͿG`(<2KxG2K>>τ:@G:?G:@>Ϳg> 2M@:M:L@ >2L!>2L2M͆O>2L:K >W>_2P>G>i8  +| >>2PAۄۄ >2L@{!!nf|R(>$7 O{8{'{8 >y y֓((} 4ͳ>8ajeͱqut͐@~ :~( >@*0>#0! ~>#n>#4(5>$76B6 B666 ֓5 !~(!+0~O ?'6֓V XG"n L~Ox(92q y˸˿n (v(w !fډ& !^(։!~xF(f'tJ>?! 1,8w"n~!։F!NFx˿ f(> W~ >?Q$nfbZ~ VQ~)"n>F^"n (A (1((#( 0 >^A@v(~$R V> X>ͫ!V> X> ~  7>ͺ-?g~ ~<8 >@*|ͫ> 8("n n ~(=V84&v a (9 q&~ ~'8<iO++1DM+^-V.0q1p2N!F"q1p2 + 8 0?Nwy ~+~=  ~000w+~0L (S8ln1f2^+Ru1t2L͏Gͻy+^-V.0w+~w(g(0w0 ?w+~+?_n1f2Ru1t2L(( (ͻn1f2^+u1t2( ~w͏>.ͻ: j2 ~͏>_ͻn &R0}DOj͏>_ͻnn#f$#͏xͻ^#V$u#t$R0 }/o|/g#> >{A>c>~7G ~("!x?Ojx~8/N y!xOj~/Ny>}N iy( (>?^>?ͺ-?g^ ~\~<8 >@*|>f "|!ӏ͸0 4>;6>>*~ o(w |*я͸0w |~w+#~7# ~wSEQڏ0pp;:P12P345678P9P 8~= q84 (m (( ΐ ʈ~ =w >~ܐ~ =G~=x8#N  ~ x> ~  v7|ͮ(~ n > ~@ܐ6 ~w ͮ f> ΐ6 > ~ܐ5 6 ~0GN!1,?( !3Oj~#> 7ss~(*8:hjxzy!SOjcxcx/w y  p y x 7Wpx~('0$!Oj~(x> y(> y ~y >"7>(7 0Oj~ 0Oj(!~p>"7yGy/Gnf^ !nf^ z +| ˽˵oկ[A {-  >2LÎW>$=2O:O(@(4~= s@(~5y?>"! ^#VTjąɅ΅Ӆڅ~ ~~~wf ^ V.)jutsr>"72LRX!8 ͮ!ut4(5>$7K͵5 "~(Y͌͵χ͵ÀN x w` G~"" ~ |˿ >&|ky͵y r;gyMD!φ͵87$(Ag>&>.&x>9f"l =ˍ&u"|=N͚ͮͺ-?~<8 >@*#!1,F̷÷֓yD!֓yXg!!ju-t.u/t0! e6 ~ w+w,c!gu5t6!ugth3>>!1,N'ɕ!9u3t4n5f6!9u5t6n3f4ەN@@7ە!+8N(G~( >@?x9^ g!(m0F N,n!f" n* (MN !Ӗ! N#fi s[Ss!>j.38ssew~(=w>&~ ~=G~(=x"n 8$N  &~ > ͫ~ !v7a͗"n~)"n !n > &~ @6h͗ 5 9~'w!F(-"n 'n !~) v(6>*"n f> &~ 65~'w6> &~ 0"nvG&3nQ!1,8v Wn`~N͊N~(g> >\^nf}(5~ 6+ut!Oj~/ !+87"n nu( }  }(nfv~>iy해/N y}/ yRn&))))&))T])=I[)E{U}ۑm%i3oCK'#7?O;GkWg/_!cyS ׻Žϛճѿ u6fa3DSUUUU"45ffffcVWfgeVWfT4#TUESE6UUEEFUT4 WN^ AN!+85nu( } ? ?}(n f v]ɯ1,F~(>@?!+0!!0Ɣ:Jaccess.binHbackup.binGblink.binFboot.binEcdoscopy.binDchowner.binCcmpasc.binBcompare.binAcopy.bin@cptree.bin?day.bin>dcheck.bin=deltree.bin y~p>#7~""y> y!N>y p xxͰ8|8|8 ( (w":O!r :(7(O! 0! +666!6$R6%6'66F T~ '! +8EG"n V6xJ !+8Gn ~"0x ˿(xͺ-0ߧ>*~ (QG!"n 4˿n "f (T(P#(K%(X f( xVm1,8vn !~"0 x˿ (((<"F(ͯ,8M˿ 0ͯ,0y(~$R( ~%>  qp6N,n!f"Bu!t"5 >s> P~  6i6i>w w w!w"w)w*!>n>^(n'f(u't(^%V&T] DMbkB0*n#B>w'w( n%f&R0Rn'f(|ȗw'w(T] DMn%f& B0 0u%t& >wR0n-f.^/V0R!n!f"u)t*×n)f*^!V"n#f$)n/f06+n-f.u/t0~_%N)F*q1p2~ r06 (8Bn1f2͏~Gͻy^+n1f2Lu1t2#~ 0?w+?_(( (ͻ^+n1f2R`iO1##DM#~ q1p2~`͒N~(>@?!4! 4!4+0!!f]fjhh{?> 7ɧɧ{*|[!R +-{ !"ڧ >ݍͳ>>̍ͳ>>> >p>*ʍ"ʍ n* "K* "*ʍRog"ʍJ!!*["8Ўڎ{Ͱ{ Fѝ8Oy8Des#rut}wOp6!Îu t 4 5>$7KͰ5 ~(tY͘Ͱ+y˿yyͰỳ Ͱy͆g66@6B6 B66!* ~(7x}1(A((O> y px8{{͵{ 3ѝ8>ƞ88s#r*eut}}O}s0q0pNFB =>$7ɧ<>7(<>K͵y0 KͰyNyww#w!!ě{OjV+^ͳ>8x!MDͳ>x+ó>!??+  %(FL|.^#V#bkW%%+}<! 7Not a device backup:t G* ))T]!3͵8y0Iͦ7!;0 .|gM!; ͕8! ;* +~(#* +~(#e * B" * |(+" 7:t G:t G! utsrNFBNFButsr̀4S " +6/͎8@L :r G 7!/ x2r ̀~ ~=ا:r G * L " +646/!/ :r G*  !~(:q G!T]J:q G! !/~w(#%~t) !*  ~:q G0 7*6#"2!3"EG(!"*"!}~OG*B"^Vutsr N 6662Ϳnf|(+8 : N( N(<:F#~O! T]0K*<(K*!Ͱ^#V#nf2882"!wG #w[z "!#!+  !#/usr/lib/##~(. T]#~( .(/ !͵ ! ~# ~#A[ ɧ!FK!CK J:t G} |8 BPY B!f !1f n B8 fnR0s (bkPY :t GPhase error !1V ^ fn͵ " S ͚ :t G 0 ͵ " S K BK BS\e.)j:t G ! *9#! (2 x2t !3> 1 ( !5O 8 4 >!P ! !JT]:t G!8Ez G8:b(L  (![ C ( > y!P >7!  >)! Not a block device: "%s" :t G !1r s tu!JT]g: Program and data segments overlap Warning: Program > 64K f 8͎ (͜  ͽ:(*["*"w#w22go""<2 * #" : *#:(͂ #2* "*[s#r#[s#r#"w#w![*5*N  "! " @ **[*[:w !͸!V :W :G!͸!V  %04x %04x (%s) !}F~nf2*# |:ĩ `i*:#:(͂ >͋   L*::(! *# "">2*N#Bad access list: "%s" Wrong number of arguments @@!$@?Linker version 00.13 Copyright (c) 1980 Cromemco, Inc. *%"!T]6,!"|S8*[[FF*Bnf|~-#~n()q( r(x($!""" !"!"!~##"B*B##"*!"!"!"͋(!~-(G8EG(͚0*|!( ~wɗ22go"",,"8 ( ͽ:(:O!*^#V#z"#~G!~( # y=*!:*Ͱ~#fo>8 nf[Rsr*ut:!Ͱs#rrstufntu[ 8" !/~!/ ~!̰ 3BD!#:q GV^fn!/R8:q G x2q !T]J* ))DM!3T]6 !" " #" ͵8Y[ cj[ (" +))3* [ rstu3! NF NFJutsrͦ7"z Sx  "~ bk 8"| *~ B(0"~ [| 8R[~ *z RѧR0*x *~ B *z *~ *z [x *~ BD+w#R #no source specified  o g x2C * | !":G8bk+" *~#"OC!Ɨ:G DM!T] ͚8%%%%%o70:8 ag?'0Ʌo$#Record type %d: not yet implemented Unknown option .rel.mapbdipszbx{k-{!ZLZ!"3! "7[!*S" 9 # ! "! "*B##"*[*R8O:G 8E͋($~-("G8@ G(͚0!~( 3 0M f ͱ )!Fatal error: #lcZPlease insert disk #%1d in %s Hit any key when ready * ABORT * File system on disk, do you wish to continue? Please insert a different disk cromixV^fnz  !T]M 0 #| V ^ f n " S 0! ut6@!3ut$$utut62u O :u 7~(nf####ut5V^fnz( y(ut6 ͠ !y(G DM* B" * R" 0!u 6 :s G8 nfS\e.)jS\e.:F#x^#V# [*"[*"͋*~(C"G0 7*#"!3"E*~ :G[! "*"#"Multiple start addresses $MEMRY.bin /  {g {   Zx2 |2ow, z$$<2<2!"D~DwO#G+{ #z +:g.~2}Ħ, [R#*R0"+:W\kg|2:= :2g:2͓ʹ::g.:+6}:g.::gow, g.:G*Rz(:W*KBackup version 00.08 Copyright (c) 1980, 1981, 1982 Cromemco, Inc.  (S !"  nf|/Y nf|(t" !3̀8^ 8XSv ~>7 HS " !89x2q L Q8(ͻ8#A88088![ F<(=L !!!<Kv ( 6h#6d#>0y86s#6f#6d#>aw#6!7 x2s /dev/!16T]* nf Y  80" !7 nfY !  x2t !3> !5O !31 !ut#ut 0CLU2pqrstu* t u !:t G !z#!4>w>8~2::ɗ8 K CF\#w*utC>2ɗ8*#" !N#G!!!͸> Multiple library search requests: !N [!N"!"*4!}F!F*N G *"*"*"*[""*[""*[R0S!:!![͋:2b8)z %8""!͋b8z "7 >"͋ͷ8"͋ͷ8"bz7%$22͋͋x2:W!x2͋Gno destination specified name.name* ^Vz(* R0##^Vz <~. .(C (y[(A*(?( n#~ d(a*(Y* b0Ix ~.(?#~ C (0](,(O- C (](8y0(](~(7!" " #" ͚ ͵84v) * +~# !@!<* [ R(S BL 7%s .̀!*T]!A͐~  M 8Ͱ05!/A"57s :t G8!s :t G(7!@^#V#!gU\S1fn+))3V^fnK No memory available :*|*~G(O ~nfut:::! #[! }nf[:#>͋ [ RM<[GyHGyO!:o (g O mXqA *͋ "*A !  #*%<> ͰT]*7 8T]8 .$("!" :2(!"*  *%"$ *| !"[ [z("[ :(!G!^#V#^Vut "[R!8**[0&0!*R! :W :G!4"!' Warnin  ***!::W :G*[Zs#[*!Y:W :G %d multiply defined symbol(s) %d unknown symbol(s) Program Data Free memory %04x %04x %04x Start address = %04x :G!^#V#:nf!w ͸!:W :G͸! %04x *|**!F s#r#8++[!!:W:G!R*|**!V(s#r#8C++[!!:W:G!>2^#V#!͸z  Unknown symbols: ........~#( x 7 # x a{<Boot version 00.02 Copyright (c) 1980 Cromemco, Inc. *Bnf| !~ !! 8[ *%R8 RVF/cromix.sys :l?=d?>Lk [G:CG~O2CGx( <>2(<~O#V#^!<Ͱ8!GGdͽ4Z8{n!GG%~#   G~O2CGx( <>2(<~O#V#^!<Ͱ8!GGdͽ4Z8{n(#(-8 .( ~ 0 7(|.(x[(:*(?( n#(g.(c*([*((S.(O0J#~ ((:.(6](2(O- (#.(](8y0( .(](~ (7ɗww"ww%w+w,w-6*<̒6"6/66%6*Ͱ̒;!File not found "%s" n0f1]T6~ͅ 8F ͯ V #͇Ϳ8#*N $n0f1~( ###~ (7&!!p7!!7Create error Close error Device busy: "%s" Illegal CDOS filename Disk full error vY :2G!%8l,d bytes vY !%-25s K2x(>*22G2~ ((,# ~ (>.(~ (( # !2ɗ!2!Z7Pathname too long "%s" 58A 8=583!z ;x22z22z22o( 22 ! ! Not a CDOS diskette Not a block device +w#RA[ *91!9ut .w ~ 112!~X!3 O ^#V!h~ nf (͓0"͓0^#V+++"!ͨ/æIllegal system call H at H *91s#r#s#r#q#p#s#r*91N#F#N#F#N#F#^#Vwutɦ(+F+J+V+^+h++++,w!E&$$2%6"&(%"+#)59h#%'*$$vz/ &m1="0's(([%͓0| !9͓0ͥ*91112*91 ~w F ͞O8s :~  Ì0F  ͓0ͲF ͇ Multiply defined symbols: **!s#r#8++[!L!:G> >2^#V#} x :G:G͸!F( nf! ---- %04x^#+> !5 6> :> [R~OG "S##"bk##͒8"*++͒(0"[8}}R[*RѧR0**++####**##*[*++Fp#FpN#F#^#V#:G(%^VnfR  (07~اG#RC_! Out of memory !F[2S} >22~(Y#!8;(/ ~(H#!0;0~+: ~͗ A##:2G:2( )x22~(!8; k ͗ k #k k 7a{_2 :2<ͅ *2" " 8/F [} (͈8 V(: ͇Ϳ8N( ͏ b 8 !K *2" # !w :w ݾ 8 w :x w :y ݆ w *z ^Vut:| ݶw[ * R( # #  7  : 2x : 2w 2y : 2| !: W ;>2y 2 2( G: 8.(,  :2o!| :2G:( : 2x NCdoscopy version 00.15 Copyright (c) 1980, 1981, 1982 Cromemco, Inc. *%"6#s#r*B?nf|(A##ͅ! 8<dY(eY(lY(wY(= ͕+8 !F!!Wrong number of arguments r8vnf|U##+2 K2 88222 2 !_vY(!!VvY !lDeleted Not deleted File not found: "%s" Not deleted: "%s" r8tnf|(##!+2 2 8@! f.<! ~o0$:2OTz(#ST!2 #####( ~(*Η<7*V* ~22:G:07(*Χ:( n0f1:_6#:w#p#q # ~ 8365>ݖN(F)O0 n+f,^->ݖ=o0$0 n(f)>o0$u(t)~% *F7 X}5%*^ &F.N/p.q/!88w+q,p->݆+w+ 4, 4-N(F)n+f,^-~&^#V$s(r)6%*^ EFN"8G*f(xݾ(*pq"4%!= (*y<  n0~#(/(^(*([(?(xS2R"2!p3"} "2~ k # k 22͠ ! "[ * Bs) !2w2 *2"2"2!9%R8|( 0>w& >>!}" ! " !&1~# s#r#= .n-~.n-~#fo͋0!Ë0!91z Ì0p .}x ͓0Ox(_8x[#xGͬ-> C!:!}!s#r#p!###͏-/!!###1/^#V#w{*B18\S*@1S@1S {O_ݦ{/ݦw~%w~&w^# x-XO !͍-͍+͋=(~@7~ wn&))u t #_~/u ~ w .n-#.0n- ͬ-66 @6 6 w w0w1w2.n-6 #n!&NF ͦ0Nv(N/ͦ0B0N 0NF B0NS*]}:(=WO*]T 7B}<G>w#! *:22<("ͫ:2G 55!U!cf1X~($#y0 "#V#^y???<= 8 >O 7ɧ!v(@w#6:#k (6.#k6v (w# ( ~/($# ~(# x !!7Device name too long: "%s" Device must be in /dev: "%s" /dev/~O #nf~- ##!"q*q|( ~#((<"S  "bk 8"*B(0"[ 8R[*RѧR0**B ** *[*Bss  0^VR8 ~ R8ut^'V(N)y(A~&o&)))n$f%6#= yͰͬ-R0DMͰͰz x>(x-ͰͶ{=͜ͰSͬ-o&)))))Ͱ ::Gq\8{=( (~͙[7qqJ y*91Oy??!0͕"8 KͶy>>*91O ^HVINJ~KsHrIqJwKwHwIwJ6KsLrMwN^LVM~Nn f w/w>:::{(~ <(w 6 w! ͏((>>8M! ~>'͆'0 ^#0>(sx(#r͆' #ѷ> ! ~!8>C#>O#>M*91 q#p͓0'͝0 j/6! 6w!?*91 s#r+!*@1}|0)(͝0 ~0# !(ͨ/-program too big'͝06" (s#r:H1(*@1*91H !͓0|)͝0~6*D18̈́(>8^#! ~"ͩ"(S͋^#̓#86~(~ V . n-v ! (&(!~) #*8 )% !>S))  >?>?w !"l"n"p͋r81Q͌+c!( !Ì+(1r Press any key to continue $͉>O!͉ !͌+>8^~#^{ 0.F+R!#^{ 0.F+R!8 #!KF+U!!m!^#(F+#U! c!7 <^#̓#82~ *n#"nW(!!~G! ~(x(~XWj&))))))).n-NͿ0z(#ͦ0Ϳ0*l"l*p#"p^#x-͍-!nf^VN8#z(#Nͦ00 ͌+*p'! ͌+*n'! ͌+*l'!!͌+'!!Ì+*** $ Files, $ Entri&-+-A-E-y/y)/y/ ͝0qy2h-y2j-PY Ì02h- ͓0Eì->>*h-s/*j-+ ͓0E ͓0Oì-͍-*>1X#^#V͗-ͤ-^#Vͤ-s#r*91#2.S.".x-͍-y (( 8--3.-8-88 *.:._f  8(;S\e>o:2G8 *.:2G:2!.( !. 5:2FO(p!FW(F_(p6 !.Pqp Hq*p+>w!NFqp ~w~w/((6:M@4Z^PPPPW>W>5/5/5/5/^# Ó0#xGì-K^#̓#~G ,W   ! N ~G ͧKN(ŧ?G*>1~8x( X#~# F 8 #?( ѧ7>  ՗#~+: ~?&@8###.  ##! w! wË0~?&!/=,.(*(#>?~/͋0Ì0s/KKK^#Kv '̓#~G MKF( W( KKKKnK(6J4J(NJ((~G KN(8/ͩ͋"$^#x-K?(K! ~?(#?$>ut[91!pH (![9%(FL|.^#V#bkW%%+}<w#!8~(E~(?͇ ~(! ~ ^^#V#.n-~#foR8ͷ x-͍- n(C~*+,(4 ~ &(&PY͏(~{/wJݾ3(+*91'!*91' ??w ="(*(O8* BO*& 5x* /* %~ O*& ͢* ))>*#w! w*q#ww #w^#͋8~ *.n-]i&==~/{s/E! p( & = y*.n-}! n&_T~/{(&(^#q͙ ! 8w##6ͬ&>*~w ?? (&(Ͱ]T6[\]^_`abc5/5/5/ 5/"5/$5/05/25/45/@5/B5/D5/P5/RDM !_/ _/[/! 9F+Ni`_^#VxBKͦ0BKͿ0W͐/zS0:__~͆/z0{0*91~(/0###Ĝ/+͜/##0*91.85~(.6 ~w .(.sw~ 7/   6 nb~/>_> g0 g0/F(/%/()/ 4͝0s#r͝0~#fo*91 >C( = z {?>70BB0 = *.}+".}͍-1͗1!Hp (z *$88 ^# ͓08!ͩ͋/$0 x> yz%8ͩ͋#8 ~ z%>6 ^##͝~(&=4<^#O#. n-~^(#V#b $%>ͩ͋!5$F%͋/$F% # ?(w#$%>ͩ͋!H5$F%~ˑG(w$%#a_">͋#>d&!ͬ&^#q ,͙ .!N! ~! 8w!~ 0 q'%ɗ># $#j/^#$% !>͝>0' 8! 4> )#z ""nf8z " 07++^#V#- ͋g ^#V#z7!!&!8*8%nf͌ ;nf8z ""07͋G~͋#*B##^#V#- BKC$*$|( ~#(͋(</etc/passwd/etc/groupWrong number of arguments Bad owner Bad group %s  8xwT78(UP~TG8 ͬ- !12ì-~*_~+W~,zq!#8,~O8x<~!( 7 zW{_ͩ!͙^#x-͋~#Ɂ ?(=_*>1~=8 #~#(>7ͩ ~ /8 (66.++ 0 !A+ï, {0! //d+!//!%/)//~( {+({>:{2$0^#s#+ͩ++$+++,,,,2,_++ c,h,,W~((####~#fo͋,sè,z+͚,~ ܚ,7͋,ͨ,zB##~͋,#͋,ͨ,##+8z>\ͯ,ͯ,ͯ,+~ͯ,+ z(>/ͯ,ͯ,ͯ,é+ͯ,V(z +6#z(6rG{p#x 0 >^ͯ,@>ͯ,> ͯ,>> ͯ,> v ^0/(>!~4w!|#1æ.. ---/2--!-es, $ K Displayed, $ K Left ***$ $ ~/|)!F!{0_F+> ?!R!U! F+,"+EW@R USͩ" Z(>! 6#!͍-~ V ::w^ #q ~(#p#y( ! 6͋#>8!~I> ~H=w#j/6!+"  # SYS DIR="4@ G~ O ~ <(9w q w!((y!0 ^#͕"0> #>! >"8%.n-Nl&Ϳ0Gͦ0 0{G!x-4. n-n}(O N{(#F+ ( x( x( 7{-!".*>1F#~##( Aͬ- #1I1&1p3p3,  ~;( *( <+~ @ ~ ($ ( ut##~:( ( ( #̈́(*#̈́(!ut##8 +~ 7^VR( +~ ( (#w~TG!07~TG 07DM͔++~͋h B8 (7! ,8$%%%%oh 7͋0:8 ag?'0! z8(%%% J̈́ 0:?0Ʌo$A[ ~# ! @ @B@@$ B ! 8 ! #>0{d(!z>7 ft(f(A8Qx2:G ѧ8;x2 !8$:Gbk!8R  !8:Gbk!8R >:G 7:G :G:(!8 :G *":=W:G*!R8~ #z 202xWȗ2G*":Gy2WY*"bkQY:G͇+~/(^(#6/#"T]~#(^(/ T]~# ~#(!fɅo$*B##^#V#- BK!5C"*|( ~#(( Files are different types %s matches %s ex^*Dz*0+!|5(͔0 7v !@:YG *L[Nїw"LSN! x2Y|7 |  ~>7+~/(^(#6/# 2X! x2Z!|t( fA 8x2[:ZG :[G:X(!8 :ZG *H"R:=W:ZG*R!R8~ #z Op0pOxWȗ2XG*R"R:[Gy2XWY*R"RbkQY:[G*F[H0^#V#fn7 *HV^s#r#!| "H!| 8 |(f $vG[U*Q:ZG*S8>8 R(0=2[SW[U>8>*Q[SKWxj4 4 4 4# t̀7(&ON!\6nf^V!9Wrong number of arguments Correct form: compare %s is shorter than %s %s is longer than %s %s doesn't match %s %s matches %s exactly %06lx: %02x %02x *B##^#V#z( - BKC*|( ~#(͚(<A[ "$AB@@D@@@@ A[ ~# ~# @@ ts copy copy ... Can't copy %s to itself %s "H@@ @ @  B Dactly Memory overflow -----> %s P; !@4|(n(I 8A5V^#V^#V#V#V# |(54|(n(=5V^"V^"V"V"V"|(5Rsource = destination no source specified no destination specified cptree %s  %(FL|.^#V#bkW%%+}<!F0!(~# G~# 6 +6.!>!F!F*@+)DM*BWSI~#(O( (  70xA[? SUndaDCompare ASCII version 00.05 Copyright (c) 1980 Cromemco, Inc. :@(!F!F*Bnf 8x27nf 8x28!8b:7G!8z !"9"/"38 */[3:9(!0$:: "*Bnfnf!!FFE:9?:9*/|("^#V#S/z++͹8**++8"s#r#*):7G͢8"+"/!97:9*3|(^#V#S3z++͹8x8s#r#*%"-*+:8G͢8BK[-+#"-"3!97w#w#w#w#++s#r#*-[+RR!9##N#F#   x(~w # >2@Copy tree version 00.07 Copyright (c) 1980 Cromemco, Inc. *F"H2W"Pnfs8Zfn"JSTnf|s8G*TRfn "DKJB *TR!(*!W48!Fo&:W(F ! !! F!| +"N! +"L x2Y8M0 (:YG 7!\ !~(t7 !|  #[N͖[L͖!| ~(H2VV^ST*!|5(͔t(f :VO[To/*!|5(͔ͩ07!|v !@V%(FL|.^#V#bkW%%+}</#(w#":,G *~(!1 RWrong number of arguments Do you REALLY want to delete all of %s? .*-|(^#V#z*'8a !> !  delete %s? > y~. .(þ(y[(A*(?( n#~ d(a*(Y* 70Ix ~.(?#~ (0](,(O- (](8y0(](~(7 # *B##^#V#z( - BKC*|( ~!~(0!c&nn!v(+!c!~(!c&n!2#zidirectory with more than 1 parent directory with wrong parent bad link count %5u, should be %5u more than 255 links bad inode number in inode unallocated inode with %3u links allocated inode with 0 links bad directory entry count Inode %5u, !- f n " !" * |(+" * #" !- ͵!-!-+\e.:!- ^f .%F0 (q8gnf|( +utsrnf|(+ut| n f #u t nf~(́ wwF!!N(F^ V !F8 !F F F Number of input blocks read: %6.,u Number of output blocks written: %6.,u F(8! N(+!SS![!3[ѧF7! ~(!8!ůO Tape read error Tape write error Ready At Identification Mark On Line Formatter Busy At Load Point FIFO  8 x(x7(_V^fnh&)))zݾ {ݾ |ݾ }ݾ(utsrz(NFͪnfnfT]6A[ nonstopW nostopW ucase] lcasec asciii stripo pad{ ebcdicu ֧ΧާzN FB0 DM!n ut ut,Q!,6 T]N F ,~ ( #~+ (  utBut^ V!,fS V/ NA vm ^ā ~w#z ~w#z  ~ O0 w#z +~ z +#6 ~˿ O0 w#z                c.<(+|& !$*);^-/ L Dcheck version 00.12 Copyright (c) 1980, 1981, 1982 Cromemco, Inc. {*B nf|(ͷ##nf|(͠8#! ͵8 ~(ͷ !!F!End of dcheck 8u!k!f! ( s! ( 8bx2 ͕8G!- f n " Sz :DMS 8.[R0#* [ 6 !"Ͳ]!J!cCannot read super block Out of memory Cannot read inode %u Device: %s : G!!- !͕6!uto͍ !#* ͕nf|V^( R( #((<A[ ~# ~# !!HHA    J: Gf! (s! >2 7: (R͵8M!#tu~(:~ .N( ^Vrs~w^( ^Vrs+S[ S\e.%: G8~#( x 7k͉ ~/($# p~͚ (# x !1!M7Device name too long: "%s" Device must be in /dev: "%s" /dev/~͚ O͚ #! 8x2 : G8: G!8!: G8/etcOutput Ready FIFO Ready for Input Drive Busy Rewinding End of Tape File Write-Protected Correctable Error File Mark Hard Error High Speed true false 8 !C0^VvTzSut^V##z7if=S-i`of=-oibs=obs=cbs=cbufsz=rec=iskip= oskip=icount=&conv=5rw= 8Dp0!m Missing filename 8p0 87qp8 !B8+q pPYFs r ͑8DMx(!7 Illegal si%(FL|.^#V#bkW%%+}< a !  8!Fͮ!| S/[/*2R8Bk8~( 0ͮ:,G  |,%_>? `:#@'=" abcdefghi jklmnopqr ~stuvwxyz [ ] {ABCDEFGHI < + }JKLMNOPQR \ STUVWXYZ % 0123456789: 7-./% <=2&?'"5@Z{[lP}M]\Nk`Kaz^L~no|_myjСsr~wfn[ R(~!!-; !! ͼ 8|:(nf#ut:g:o͕~<(wV(nf[ R(.sr"nf| * ut [ R(F !fn^VR(* !7* !?Inode %6d, error reading directory Inode %6u, cannot read inode ![ 2 ͕n(%~ ~ ~(0!c!~H~ 0!c!*F(H^(0!c!Hf(!c!uN(0!c%(FL|.^#V#bkW%%+}<utsrqp!  DM= !u*t+s,r-^(V)V^fnu.t/s0r1u2t3s4r5s6r7n*f+^,V-z1 {0 |/ }.0uMlcZ*Ϳ 8m n.f/^0V1N*F+BN,F-Bz R0BDMn4f5B8( u4t5 N4F5 ^6V7z 7>n6f7 u6t7n*f+^,V- 0u*t+s,r-^2V3s2r3z }8)B0}lcZ'?z } xn(f):ze: "%s" ͑8ut͑8ut͑8ut! C,(8 #~ #~#fo͋~# ##~ !t7 Illegal option: "%s" o$!81k( S{ !:008͌S{ 00˿7,7 [A?{a?  ed.bin8find.bin7free.bin6group.bin5h.bin4help.bin4icheck.bin3idump.bin2init.com1input.bin0l.bin/mail.bin.makdev.bin-makfs.bin,maklink.bin+match.bin*.>38"l(Sn(!~4D222>2q*l([n(>kk>k >v,(@ͥ: 2L!͍͂2!F(8 2::!n?͔Edit: At Copy Delete Exit Find Insert Jump Move Other Page Substitute XchangeEdit: % Beautify Home List Other Read Tabs Verify Write Zap@A%BCDEFHIJLMOPRSTVWXZ <,->.+33#7#HM V R0#> Z wy !å>Shell:i!i,!@ +| 4H8E8A%% J. 0:?0Ʌo$A[ ~#   @ B@@8> ~Vy0Insert: :w_:=:p(W$J*Q[)͉0~#g0=ʍ >[QRڍ[Q* (5O(v\(*($h(&B  (.H!*q6v  ͅ ܅ͅ~ͅ8 yɧv 8v 8h(y8A8 [8 a8{8͔7FB !T ( !W i^I^M! ͸q(vQ(q [w$! i$ 8!t(͋ 2s(>,!*w͋ ȗ2r(͈͏ :s(͘x:q((T͝! ͸# ͸$͍ ͸$($ͣ  $$H@@@ B@B@@@!  @ @ @Z@CROMIX Screen Editor version 01.40 Copyright (c) 1980, 1981, 1982 Cromemco, Inc. 1!2~)2t(<2})>>2 |EHCAKJFZZlmPLM  !ͦ({ z Swk:w(͉:x͞!ͦ(2x2wk!ͦ2x2w> 2xy>:w> :x !%(FL|.^#V#bkW%%+}<^(N F NFJutsr!Z8 7 ~ > nf^@x :A3 EXit will return to Screen 8shell!L4~! Ë!zi!i!i!3i!Oi%$vʥ!+ ͔!zix(=( !iá!!ií!!i͈͸!͚åCQUContinue Quit Update Continue - update and continue editing Quit - exit without updating Update - update and exit - return to editor >Exit: Continue Quit Screen aborted Update : >( 5(D ͏ p͐(d ͏ O:~)226:})=?>2})Í6%(FL|.^#V#bkW%%+}< 8nͮ(> 8!F!%snf~- ##!"*|( ~#((<A[ B @v! + ͔~͍0!*~(x0DF#~*)w5(G8%͈5X͚d: > ͐>ë #~:*(G͐Substitute: [Query] , Query :Substitute Query: Yes No YN!͸!t(͋ 2s(2r(͏(͈:s(͘ ͚:r(ÝFind: y[w ̆*w"})z8`:(PW͐ >22)y ( !? :($+͈KX͚d S})O! ~>>w!u͍͂U(WO(0 (5/y (G[})0S})y*)+w*w> ()*w͉(x (:͚"@ͦ*w!:w!<(͆!$!ͦ*w:!xG:w $!W!R!M!H!C!>!q_ ( ( 0ͅͼ> ü!w^ (:x :~)W$~̸#~ <ŗ *y,(Sy>@2{R(*yw#"y!{5_!-+ { 0 >^ͤ{@ͤ!;?󀁂 Uk!y^cv!_( ~#{ y: <28G(x2:8B(2!@::2!ͣ- % $|(@& V!RїOW!Z^ > !\ #y8!Z!Z~ 8 >. #y8> %06lx: %02x 6NFx( - ##nf| @NVnf ^ V F(NF NFJutsr##]8 5b utsrfe utsrfk S\e.)js ut s r fo u t srf!GfIllegal option: "%s" DM>++~5h ͟8 !7Illegal number: "%s" ! 8$%%%%oh 750:8 ag?'0! $8(%͐(d ͏ :Z>_(D ͏ :Z::Ý:č:G:})<8:(2>:})=(2}): *͏: > 5(D :~)VkZ͏ ͐(8:~)V=0 >_(D ͏ ͐6(d ͏ >>><2  Ík: :~)k!J ͂͏(: >(6:=? Zå:=_ Page! ~>>w:x2p(! ͍͂4 v(&h(E\(: (a ̆*w:})"}) d2 [w:N v ͐(8v!})5( v͔d͝ !x~kO~> (  })22 S})͐*wz8:ʣ{ |0> ͐"}):~)kG5[})8z8 (S})͐[})Xchange: ͌()n''("(2u): > 5͌(n͐!u(*)[)R|!v)p*)[)~(6#*(8Z("?(\Nͦ(:v)(*x)!w)F*z)#8: > \͉0 ( ?~#Oɿ́ͦ : >5Ð:u(O?*\:v(*(?O:u)(ỳÒ!:͈!|)6!iE(=E0, €!͂i!.iv_Y i͸!"6 J*Bnf^VS)|!z 2"")ʩ!:"w  8!z>©!x2)ͫک!x2)ͦک!x2)͋ک!͋ |("""*)  *)i#~( /(. T]z bk$>!" > ~< <~#̀G~̀ # !"F(*):)G|(5!"ˆV 7*):)G8$CT]:"O~# ( (ˡ!"qS)!"7aˡ > :"O(=*)R:)G|($C[)+~ (S)!" (ˮ!"ˎ7!")nˮ*) ([)͉02~#0oUy0T])))0t!U")+̀O~ȹ(# <,->.+Ce# (͏ :x2͏(k ͔: >r͏((! >>Ĭr(͏ ͬ(͏ rʔ0:!x0rʔ͏ ͬʔ0:x!0 ͬʔ0r͏ : >(:͐8(!)$0 v{͍͍!!})5 4558/)!$0!x:~)O> y !p!!}):4( ̆5͐k A"+w"+)$((#>!x#!q#2*:͒8:*G( Xd͖ÝCopy: Move: ͸**(EL!*[)S)d! #͞!)((#!"*(ɗ2*2*!@%:*([w $!^%i$U!l%W+((2*r%zj8O!)!~:q%S)8S) *)S)+*)B")*QB"Q")")")"Q*)[)R*[)RѧR!")")*T")")")")*R<<T]!p[)*R([)RDM[*)S)(+SQ>2S*)"Q>2Sl2S*)[QR[)(@[)R[Q(͉[)0S)+S)S)SQS)SQ͸*)[Q͉0#P:S ̸*[)R(I[)R([)*%(FL|.^#V#bkW%%+}< ͏8!F͊F!:FY88I)8~( Y8͊: G*W ͏܊"W+ 4 #6Ċ: G !  x2 8uuÚWrite: to already exists. Delete it? (y/n) !: ! 8>  ͈!|)6! 0!͂!(- % !|)/dev/prtError: List: !͂E 8[ÝRead: >2|)u:|)7:|)W K!RDM!*T]~# (* :|) %> 2|)!((p y **(|#>ߗ2|)2|)!*8 BK !*(25(83!)$8!|)V(܂:|)G g  !͓͂͂!|)!T]J abort!|) ( N  ( 0 >^@w#0k:~)V0<<N(q=7GN1?!͂:O0>{>> !TiU,0!!)͔set marker At: >>:OGܵx<8!!)$p${ɇ!t!^Jump: !:XdÝZap: ͂!i!i!i!͞!Ti^>,a$d Uj8!+(20!$0& j! !(!i͔71234567CBECursor Begin End 1> ( ͈!*6͂' ''(8 ((͐X͚:*5ܐd2*!*6Beautify: [Justify] [Margin] Justify :MJ F:o%! &͞&:p%!&͞&:q%!!&͞&!%͂U (Y_!o%P(!p%L(!q%*R(͔$!9&i@&8Fw:q%0O:o%0 ( :p%0 p͔r%Beautify: Paragraph(xxx) Left(xxx) Right(xxx) b&ȧ(b&ȧ(b&ȗ͔o&&͞!& :'(( !~)> '͈' (& ((͚͐!~)͵'':'(8 d<' )R( R(*͉8%bk+S)(#")ͷ!)p*)[)RDMbkS)(2W???!Htz$z  { > :G>1:8>0<*!H :G ^#> 0>T[w$:G!*^ U(0 (/ (_T(͔7 s#^!*H åA{wSet Tabs: #6!~)( 8 5(0͐Ʌo$0?:a{_R*)|+")ɗ2'ͽͽdͽ ͽ>0 >2*Q[)R:"GW <ɗ©!!" ++>/#(w#"W: G *W~(!  RWrong number of arguments .*B22!Y<8.y(.:Gy=x(/(y=:( 20ɠ!:!7Too many right parends Unknown binary operator (!b<!0!*!7(!b<!8y ~#foMissing operand Unknown operator  # #~ 7)-a-o(!-blocks-exec-group-links-mtime-name-ok-print-size-type-user)(5}]\NjELEEwLE!4i!<8 y !5!{> :|)%!RT]!*!=8 :|)2|)$$$.$$2v (h( 8"!R!R0͔ͅ !i[})$!i:?2})͈UY͆:!})=_6:==?<2}):E͚T͈Yr!8(w͆:!wwY$O!})54T͈͍͐>EÚ͈Y6͍J_TÚG_0 ͆5~#:!wG_(( (!7:w͈:})O5(0 y2Ú ! $͞!Y$*)Txxxxx!U#(y0" (")!):)G8>  !"~!"))R"):)G?8~!!)[)!"*):)GR8")~!! 0U!"!"i,!0 ,H"F!8:)(G !"6:)G!}2~)T]Kͫ8x2)!",Fr!*):)G!v":)G(4:"w( 2)8!x2)H:)G 8:"_ ͡p"ͫ:)O:)2)Gy2):"_ ͡p"*)A% %l,d bytes written to: %s Please make space with DELetenew fileNo input file .bak.bin.com.ovr.rel.sav.$$0.$$1H)$8 ( 5(͐ O~ #*)[)R(S)!~)Ngq:Sķ!)p$0З!W ( ( 0 y8O?zɗy*)[)R(9:SĽ!){!~) (( ($ 055$[)S):w-0N:~)?<[)! [)!*)R0   x(PY~#gz y2~)-[)8͐05G͐(͐(0  5y yG5(0 y A+4 A+5N !))!):SlRЗ!ͣ(5[)*)BR0]!ͣ([) [)͉0!p͐X͚͐:q%!~)(a'([ ( !'~/w "z'͐'( ( '=(6͐ ((' '(8 ( 5 ((͐'=(͐50 '͐͐(#((( 2*͚5 ' (͐'Ú~G:'(> > ͐*)6 5*)+6 !~)6> !~)Ngq͐8 G:'(!~)x5$5 "'}]).?!   7(!<8y  Unmatched left parend L HEz >2L͐ͮ(ߗ(*W|(Ͱ8>2=ɗ!7Missing name :/2! !=2%s ~. .(G (y[(A*(?( n#~ d(a*(Y* 0Ix ~.(?#~  (0](,(O-  (](8y0(](~(7! s#r#s#r#(!   ! sr##z ! nf|(> ##! Z>  y^Vz## # ? ;{}shell-%(FL|.^#V#bkW%%+}< /etc/group8c8Onfʹ !0" 7~TG 0" 7DM ++~ h J ͗ 8 (7! ́ 8$%%%%oh 7 0:8 ag?'0!  8(%%% J  0:?0Ʌo$A[ Ʌo$~# ~# ! 7Illegal number: "%s" ! V8$%%%%oh 7ͻ0:8 ag?'0! ͤ8(%%% Jͮ 0:?0Ʌo$~# A[ I @@@@!   B@J Free version 00.09 Copyright (c) 1980, 1981, 1982 Cromemco, Inc. {!58@*@+|(*Bnf|(%͡##%8!:8 ~(͡ !F!k8b! 8mx2!8cz d78K͙*[S\e.%*[:*[!!n!!5!!TCannot read super block: "%s" Not a block device: "%s" %-10s %6l,d blocks %6l,dK %11l,d bytes !""V#^#*"0*#"V^fnz(%S\e.%:G!8*|.hlp? # ɶ /usr/help/p(!,<8~(<=2!G7!57fdcbBad type operand Missing type operand !0^fn R7!z!N7nc"!V^fn!V ^ f n * R *R:(+( ?(8 2 =|0 W&kmSy??< x(  { (#~#+(-(+2' "S !N!Z7Bad number Missing number / (#* K 8V^R(.}=2!7' 8z(7!Missing user name Unknown user name ͎ (*K 8V^R(! 7' 8znf~|89tnft~# Ͱnf( #|!X77Name or password incorrect ~(#!ͪ> Password: ͻG~ͻ # !8+~ ( ( (#646T] ~ͻ(7jj#~!0 bk!y(!Y"HB!@A"$$ @ D BH%(FL|.^#V#bkW%%+}<9a{8Ƶw#= Z2Yckyd(vP)*||, BE~FN0qRL$BbLgj]zbF{IkEpƨshSϴr:<}W?ڼ}gƳy2alL 8xwT78(UP~TG8~;( *( %<+~ B ~ ($ ( ut##~:( ( ( #͐(,#͐(#6ut##8 +~ 7^VR( +~ ( (#w~TG!07~TG 07DM͵++~ͻh l8  UUUUUT@  @D @@HB@H@   HDD@ $@  @H@@@@@@!@@8s z(~(Q B0I*!!81~( ( (#z 6 ~ #!) /usr/help/help.msg/usr/help %s%s ŗ2P{_z(! " *' B[' > ~#(5.  *# !!:P< > 2Phlp%-14s  8$!P80 7  73~#(! K !dSK T !dR* [ R(! 6*!> !Fs[1 S S] >  ! p    : G! " S >*]* "]2 : G!ڧ * " ! : 9 ͒     G \ o u U b3 B3 r R q Q h H  !V *# w  !V *%w  !Vck %6lu !jk6>2g!prstu"hz 0:gP Ͳ 8# <2g*hrstu "hBlock %6ld, ---- block in free list ---- :g2kS\e.%:&G8!j:g2k!jB:&G!8!j!jzݾ {ݾ |ݾ }ݾ0!:0 :/ :. :-(07!l"'F N V^888x Gz(B8?")89"+V ^ :::"1[R0*'6#z 7  w /w Gwx$BA"!!~O #! 8x2:G8:G!8!:G8/etc/mtab!l>2jnf|(48s#r#s#r### y2k:kl    = 7nf~- ##!"2*2|( ~#((<DM ++~h u8 !_7Illegal number: "%s" ! ͬ8$%%%%oh 70:8 ag?'0! 8(%%% J 0:? ""!"$V:^;f0K' (K) !S >2K) (!:(!s!W 7Block %6lu, inode %6u, ---- block used in file ---- , ---- bad block number ---- , ---- duplicate block number ---- :(͔@4*-[/K' 0!c #| zݾ {ݾ |ݾ }ݾ8˧!:# !=>O0z %04x: %02x %c :sG!!~#( x 7 >2 2 ! r3 " : G "]!S- >2 2 ! !"]: G !" )  !V - !P !V : G!ڧ * " ! d : (*[   ! >w: § : 2 >  :  d *[   7::: {G7:&GS\e.%8&*1"1[R0"8! 7\Cannot read block %lu *1R"1*9*7*=*;*A*?*E*C*I*G*M*K*Q*O*U*S*Y*W*]*[*a*_*e*c! !09 Blocks missing: %6l,u Bad free blocks: %6l,u Duplicate blocks in free list: %6l,u Bad blocks: %6l,u Duplicate blocks: %6l,u Device files: LIcheck version 00.15 Copyright (c) 1980, 1981, 1982 Cromemco, Inc. {!j*Bs> >2a> >22jb(   ͖nf|(nf|(%##/8!jD8 ~( !F!u8t!!:( 8}x2&!8sz t͂8HͼS 8I22e ͵8":(>2e ͭ !:(!!!*$!<!!Cannot read super block Out of memory Cannot read inode %u Not a block device: "%s" Device: %s !78060Ʌo$~# A[ Block %6lu, ---- block missing ---- FNx(M  V^fnz(*͖8!x( ++++, ͚ ##FNx  840K' (K) !R![ !; !!_ 7Block %6lu, ---- block in free list ---- Block %6lu, ---- bad free block ---- Block %6lu, ---- duplicate block in free list ---- ! V ^ fn| + 8K' !; : 8  8!7Cannot write free list bloy͗ ~/($# ~~͋(# x !?![7Device name too long: "%s" Device must be in /dev: "%s" /dev/~͋O͋ #DMͅ++~͋h <8 !7Illegal number: "%s" ! &8$%" S ͭ " bk ͳ 8" * Bͳ (0" [ ͭ 8͝ ͝ R[ * RѧR0* * B * * * [ * B  +w# RH!@@@ HHD @  $D$H@!B ! A@BD"!$ $H@I@ %6l,u Ordinary files: %6l,u Directories: %6l,u Blocks used in files: %6l,u Indirect blocks: %6l,u Free blocks: %6l,u Free inodes: %6l,u 4~#(K$!Block %6lu, Inode %6u: !: :j(8*$~#( x 7 ~/($# ~(# x !!7Device name too long: "%s" Device must be in /dev: "%s" /dev/*$#"$*"|ʼ+"":&G*[ !ڥ:(_: :!K( !G(!O *$K+ !!"3"5*3[5z { | }! + !7: <*[  0"S rst u!>2:(: *$!:&G*[ !0*$!H Inode %6u, ---- Bad usage count ---- Inode %6u, ---- Cannot write to inode ---- :&G!!j:&G!!jf n <<FN 0"-S/^f .%"S f nKIdump version 00.06 Copyright (c) 1980, 1981, 1982 Cromemco, Inc. !*Bnf|&!y x2s! zb>) ?&##nf|(aͮ+z4+|ݾ }ݾ 0~#+FN !! 0S\e.:!:sG!t8ͥ!F!FÐ!y!V!Ðnf!pÐNo device name Not a block device: "%s" Invalid inode number: "%s" Inode %5u, byte %06lxH !)z(#y !8N!1# !7z("~ 8 >.O %%%oh 7͋0:8 ag?'0! t8(%%% J~ 0:?0Ʌo$~# A[ :/=:/(202u**/"0"v*-)<)¹&<)! !-;͌n&.MD[>ͅP*0*0!0 '<)*"*)͵E<):/=(:/G:0<(202u*202u*[/*00 #"0"v*; *h :0*0( =>ͅ:-4_>H(>Cw:.42.4!b*74"A"d""w :.4G /!*!!!Ͳ* >NN(:.42.4:.4O /!*!!!Ͳ* >NN(:.42.42 0F: 0<2 0~:.4(W(O_(I~20 2020#^#VS0@:0 ͅw#[0s#r#%{w#s#r2u*2v*2w*>2f+fnNy=2/.{(#" 0V^"/nf +"/v>S(>D2!!!Ͳ* :S>( v !!>2/:44>S(n(>D2!!!Ͳ* :S( n !!:44(xn(2/!.*74"z"!*/!]!h!+ ͙*/0!S/*/*/!c!h!+ */'͙*/0![/0!"/:/[ E P*0*0!2):0ͺ :/8:0(ff>20͏ :/G:00 <20͖ :/8ff20͏ :0:0 :-4W> >[ >  *3>048f020@ʴ!Oxy >[0f40020!:-4W!:54(!= :/Pﰱ4>f(y( PN 2N N 6NN( :  N teRead%s error: %s, Cylinder %00u., Surface %x, Status %00xH Appropriate index hole must be covered Warning: %d inch disk being formatted as %d inch disk No index pulses being received Index pulses being received correctly Rotational speed: %u RPM overflow Illegal drive speed (must be %d RPM +/-%d%%) Incorrect operation of drive or controller PIO's and direction control transceivers OK PIO's not working Memory-to-memory DMA completed correctly not working ZPU clT|5Initialize Disks version 02.82 Copyright (c) 1979, 1983 Cromemco, Inc. 1|5214! ͗!1|5i!I\!T͑îʘ214xژ yUژ224202/2 0242424204G 42444!î2-42.4!2"4:34 ,!"4!0"4!`"!4!"#4!xX"%4!L"'4!@K")4ZO ,!F"4!f"4!"!4!"#4!bg"%4!B"'4!t")4*!2"4!"4!"!4!"#4!"%4!?"'4!#")4!U!! :24_ +! ^#V#"+4A94~#(y>, x*!ɗ2 0(AF: 0<2 0͡x0!G~ <:.42.4!p!w'n&.MD>ͅ:.42.4!t!wF!0~( y2 0"0* 0!!;*0>(G:/8I~20#^#V#(<87S0%  5 _ W **0*0!_!!F[0>ͅ!Q*0"0: 0=o&N.F N * 0!!;fnV ^ +(*/!!+(j͙~U >20\0!S0*/!!+(͙*/0!{20[0 9!!S!*:0(*0*0uu > 4ŗ4:14xWWyW(:-42-4:-4O( (/ $:-4˗2-4*74"w*0*0!Dj!64:*g:*o!/!!!/,!ICf :0(!/!-:*20:*20*0*0*0!/!͌:642;!E,j#)>! ! >0>E##!['4*)4/ 8,!w!AK0!&8@308n(1`8q0n !j!K!,0!h!:54(!= > 4E Press: RETURN to supply default answers ESCAPE to abort formatting CONTROL-C to abort program Warning: INIT can destroy all disk data Incompatible with operating system Use single-user or simulator CDOS %02x.%02x or higher Initialization inhibited in this machine Disk to initialize (%s)?devnameTesting: Formatting: Declaring Alternate Tracks: Labeling: Disk type (C=CDOS, X=Cromix)? <_>CX $densitysided Single or double %s (S/D)? <_>SDWarning: This CDOS has N (NN2 Y"~2t*2u*Ͷ(<)™&<)žn͓ ͭ ~2t*͖!:-4_ PɗG!=O!v!*" S " [ͅ! ’ = !)>G>"=G[4({ ![!4#(({ !#![#4*%4/ 8N!:/4$(01x$(0 $(! !$(!!2*2u*2v*2w*>2x*!0"*͜"<)[)!!!!!Ͳ* >NY®0>ͅock must be set to 4MHz for correct operation of hard disk CDOS file bitmap written to disk Warning: Execute STAT to correct bitmap if files still exist Read error: %s register Do you wish to %s %s (Y/N)? YNformat drive anywayre-declare existingdeclare any additionalalternate trackalternate tracks %s %u.: unassignedillegal entrycyl %u., surf %xallno %s alternate tracks are now defined Alternate track table written to disk cylinder (0-%u. or Unassigned): 9FU #DCw(>234)234)![@(234*E!N:34G>D!x~/w/wxD>< D!94!(!94Ͳ*(,(2/A254*+4^#V!/2/E!K4!A!(!+()/8!/ 0z(! 8{254wz=(= 3{W 6!6M6 6!6(6 >4f >2264!xH"74f > :*_W !C (!(կ *!   !s (= &$.~8( .~1 &0.|2/4}204>X >C2!Ͳ* :C(:-42-4!m !FfnV ^ +(*/8f n +0 K 0 07?70:04>(>>ͅ2u*2v*2w*>2x*>2x*Ϳ0>ͅ>2x*!=:/=([/*/R[/0  !`!0"*2*͜"<)!!0"*!2"*>2*J#<)!:-4_!^Ͱ!7f(!?4242424x2424y2424>24f( :04(  n(:/(:/w(! ~24#~24#~24#^#N#~24*/8!*/8yf(=  :/( 7!4!G!+ !4 4> ͅ4~#f>0#|(400>0>!>20! ;͌)2020:/(20G:/ ͥ :/g(ͮ  ! :/g(w½ :-4_ʮ w :-4_ E:-4˗2-4:/2/:/2/˷2/:/2/2/2/:-42-4:/2/G:/2/:/2/(>20>2/xÙ [ FH#y9F Surfaces (0-%x,All)? 9A ~9 illegal value  second number must equal or exceed first illegal device Cylinder, Surface: restore %00u., %x Formatting aborted just prior to writing cylinder %u., surface %x Drive Diskette in %s is write-protected Can't %s %s, Status %04x SelectRe-zero%s not ready InitRestoreSeekWri surface (0-%x):9 cannot be assigned to an %s UserdiskHarddisk Disk name (up to 8 characters)? <%s> Date on disk (mm/dd/yy)? <%02d/%02d/%02d> Number of directory entries (64-512)? <%d>6:6 :4 Z 4@ZP PLGSMCLCSSSDSSDDD^ '^H8-1|'|H8-2|(&|H8-3P$H8-4'H5-1, 'H5-2,'H5-3, 'H5-4TPϳQ!!/%!!s$"V"**"T"!:~. #ͮ.S]~_L #~, #U-( ( _(~#^#VT-d-xq-u-cg-s..~##.--.Q( --.,-( ;0 - ,3e}A($%(;.> -> I(>0-$%(;.}D_0 (. ~#-l 80gn#f#a(|(Q( ^#V#z(a(z/W{/_|/g}/o#|  //{03 z(Y(>,3 i(>-3 yoÉ-n#f#~(#  A(+~3yoÙ-~.8.8 MD)) )O 0 ?_>C( = )B)(>!s*5 > 2*.:*( !r*5 > 2*:*<2* |)!s*5¸"> 2*|)'$$8$<)#-)<)#>2p*>2q*[)D2*D%<)#[)*}*:*(#"y***++++"{*!u*s$:*D_*d)B)(|)!p*5 >2*9!*F(0****"*͢""*<) [*++++ # x )>2*|)!q*5i#> 2*|)*****!*[)Ͷ(<)d)B)|)& *!g$:*>2*bPχ*y*"**{*+6"*!* :* C>)>Gy>yx$Ay>t) :*w *v*R8>>)t))2*>>ý):u*G:t*G:u*>ͭ)g> 2*@:*:*u* >2*!>2*2*t)O>2*:* >W>_2*>G>i8  +| >>2*A))) >2*)@  >2*|)[):* 2*v*})!{"v*,'!͒)>ͭ)"v*@!*( ˆB)&B)>xW>Y*=2*:*(2D,͞+͹+z(͹+:D,G> +:D,G>+ E,!F,F#~ 0 y2D,E,+V^fn V ^ f n ! ( &nn! ! FNV^fnͥ:! FNV ^!f"n#ͥ! F$N%V&^'f(n)ͥn&! ! F*N+V,^-f.n/ͥV^! > ! e (`l g  V!K ' * "V < 8(nf. 8z s#r#nf?9 x(" Cn CV !? ' * "X < 8(nf. 8z s#r#nf?9 x(" Cp CX * "r 6#6*%%"t K*t B"t t  ՗St  !  *r R0?*r sz {?>70BB0 = // ~/($# /~/(# x !t/!/7Device name too long: "%s" Device must be in /dev: "%s" /dev/~/O/ #/ A[?(>>A>y>*y*+"**{*"*!* :*w *v*R8>>):* B>Gy>yx%QAW>z>2*>:*w >:*Q>AW>z>2*p&<):*G:x*% G>Gx >2n*>2o*[)t)̶'(1})>>ͽ)!͒):*G(>2*|)!n*5 >2*|)d)B)|)!o*5 >2*|)>2i*>2m*&<)P*k(<) B)(!i*5 >2*|)_*_*&<) !*H)B)!m*5 >>2j*>2k*[) 'B)|):* !j*5 >2*|)&<)!k*5 %(FL|.^#V#bkW%%+}< +:D,G>+ E,!F,F#~ 0 y2D,E,+!F,~G(!#~%,w!F,~G#~+(1,Ͷ+!G,">,ê+CB,S@,">,KB,[@,*>,+(+ _G ( p#H *>,O~(Gyx (#˸#8˾8(#ya{0_?>+> +ê+!9~#(e%(.~- #~0 ͮ.#r#"r 6#67"z Sx ͟ "~ bk ͥ8"| *~ Bͥ(0"~ [| ͟8͏͏R[~ *z RѧR0*x *~ B *z *~ *z [x *~ B+w#RN#F#^#V#PYr  t  BBA # # V^*X |( Kp #0! V^*V |(Kn #8 ! ! ^#V#͟( 9 x 7NININ!--Y(.alQ(.wlI(.elA(.r!z!9%c%c%c%c l&kjy! -!!9|&okhjy! -!! 9%3.3s-%02u-19%02u %02u:%02u:%02u%3.3s-%02u %02u:%02u *(#I(#"y*!)!A(!=!"R":*>(>2X" "&  $& " $ >2!> 2![)F"!d)B)(:*( !!5 > 2* !!5 > 2*-)<) &>2!>2![)F"!d)B)( !!5 >2*F">G>0 >2x*!>G>0 >2x*!2x*!*R"V#"R"*T""*++++"{*$[{*!u**V"E"'$:X"= :x*2x*!g$* >>>>/2*!"}*@> @( >2*#"}*>>O$>>2r*> 2s*8$<)D#>2*[)D2*D%<) r[)**++++"{**}*"y*/%:*D_*d)B) *{*H%(FL|.^#V#bkW%%+}<2*|)t)(4}),'!͒):*G(>2*d))*v*>ͽ)}>ý)Ͷ(<)`(^#V*v*R0aiR~'*v*W(t'y;'>= y;'}|8bk| } 8> /Gy0;'v'+| N$ )*v*:*g'(%'! "v*B'' !L~'>ͭ)k'"v*!]!W(O(((><((><((!W(!"v*B'! **W(!"v*B'2v*B'O(:v*k(<)`(s#r*t*)&*> 2l*[)*}*&"y*!*"{*/%d)B):*:*w( :*<2* |)!l*5 >2*|)[))>):* >2*|):*2*>ͭ)G`(<2*xGV#z[v ?nf##|(!M 5!b 5  88x2m  ?9++~/(#6/#"v ͖ͮ80!T]:m G 2͖0:m G  *v :m G!6!~(~. a  ק !  2*v *c #"c V ^ f n Ke "e *g Z"g V^fnKi "i *k Z"k e b (sn&~G!] -nu (i (#x(.("bn^p -V^fnfnfn V ^ f n a `il  ':g  FNV ^!f"n#̈́! ! ~G!Z -^#V#u (x fn  000JanFebMarAprMayJunJulAugSepOctNovDec.%,u files %l,u blocks %l,u bytes Directory: %s DCB%11l,u %c %2u %7u:%-4d%c %2u %s owner: %-5u group: %-5u %-12s %-28s%11l,u %s %u:%u created: modified: accessed: links: %-5u dumped: inode: %-5u directorycharacter deviceblock device/etc/passwd/etc/group  ! 2 W# $ 83 $ 8 3 55@@$ $ A@$@"@@ B @%(FL|.^#V#bkW%%+}< 87mail.tmp !px2 =: G!!=;8O!3 8Ax2 : G!B 8 : G0% !: G v\ != !"<!=! 7Mail not sent to %s Mail sent to %s /usr/mail/!B !  8) 8^V  !  number of arguments Not a block device: "%s" Cannot make file system on mounted device Cannot read super block ŗ2 2% 2* 2/ rr͌ >2/ b͌(i͌(s͌(! !% !* 6#nfͦ8DMq#p#s#r##:0 G!!5 :0 G!!5 f n <<FN 0"1 S3 FNV^fnxc yr /zo {m %|i }x !! 8O~̓y K!5 6 6Uturcmo!xipqrstu38ͬ8 :87Existing file system will be destroyed. 8xwT) 7H 8(UP~TG8~;( *( s <+~ @ ~ ($ ( ut##~:( ( ( # (*# (!ut##8 +~ ) 7^VR( +~ ( (#wnf~- ##!"t *t |( ~#( (<l&kjy! " ! !9>|&o|&khjGy! " ! ! 9%3.3s-%02d-19%02d %02d:%02d:%02d%3.3s-%02d %02d:%02d 000JanFebMarAprMayJunJulAugSepOctNovDeco$DM ++~ h h ͵ 8 !R 7Illegal number: "%s" ! ͟ 8$%%%%oh 7 0:8 ag?'0!  8(%%% J  0:?0Ʌo$~#>Mail version 00.06 Copyright (c) 1980 Cromemco, Inc. {͢89*BB a\ (g\ (nf|(ͦ ,͂!0!F!m!c [x22b:G!B 8>2b[[:bRy\ ((n\ (b!!B 8g:B n(Ey :G!8S!}8Jx2:G!B 8 :G8& *:G 8":G!$ 3 8 !7/usr/mail/mbox Should mail be saved ? No mail 48nf|( ͇##yy7nf|(C' 01nf!Y!N 88 8Endevice typeIllegal device number%s makdev DM#++~h ̈́8 (7! ͻ8$%%%%oh 70:8 ag?'0!  8(%%% J 0:?0Ʌo$A[ ~#  @ @ 7/etc/passwdInvalid user name: "%s" d!!Wx0CLU2͙ !aFrom %s, !l---------------------------------------------------- !!3 8 !08zݾ* {ݾ+ 7!7Unable to determine who i am /etc/who!3 85!08) !! 8 !! /dev/ You have mail from %s x( ~(# 7 G~   Continue (Y/N) ? :0 G8lcZ:!* (R8 B8`ir s tu!* !7Invalid system size "%lu" !  !)"!=!!0 ![ !Wrong !`V ^ fn| +'8͑8 8!=7Cannot write free list block %6lu !8 9 6>25 !> rstu"6 :5 P 8#`<25 *6 rstu "6 :5 29 S\e.%:0 G8!8 :5 29 !8 Q B:0 G!8!5 zݾ {ݾ |ݾ }ݾ0:4 :3 :2 :1 (07:0 G^f .U%8J!!. 66666tutu8#8 |ݾ }ݾ 7!8 9 6tu:0 G!8 0( (*#"*["*#"*#"cbXlM!!*!*[W!*~^2(E"S#~*(E(1(~[(?(\N(:7*[8~  ~[(?(\7N77#~+~*##~(.](*N(A#~- #~(](N(0۸8#~(] 7~^#~+e( ~ONWrong number of arguments match ... %04lx: %d %d %s %%oh 7̓0:8 ag?'0! l8(%%% Jv 0:?0Ʌo$~# A[ $@A!!@$!  @!H!H  H@@" $ $@$mode.bin)mount.bin(move.bin'msg.bin&ncheck.bin%passwd.bin$patch.bin#priv.bin"restore.bin!root.bin screen.bin8sim.binsort.binspool.bintee.bintestinp.bin "* 8* 8B **[ͥ+~/(^(#6/#"T]~#(^(/ T]~# *B##^#V#- BK!5C"*|( ~#(͜( > (˿ 0>^@!6B8 ~#fo.^V##z7++V=͇-̇G~O͋( y͙8####~(Ч͇G# 7?7˿͒a{?A[?͇-(8- !RWː!͇(O,(^(VH(q:(0K(A` )DM)) i7~#( x 7*B##^#V#z( - BKC*|( ~ BA B@%(FL|.^#V#bkW%%+}< B8\N#F#^#V#%(FL|.^#V#bkW%%+}<2|(88qr( #?Ϳ"Ŀc *!:(G ##nf| !F!dF x2!"""#"!:G!S6+~ 8Xp))))i0 8?0e.8`7e$$.͇^7͇7@o&͇7`ˠ0 ?Ʌo$zA(H(!#N#F#y7( x y VJy( y(!++~+w( F+n`y~( (y7(ogwn, `  % K~ /dev//dev/tty=[ ~/($# B~̓(# x !!7Device name too long: "%s" Device must be in /dev: "%s" /dev/~̓O̓ #nf~- ##!"*|( ~#(̓(<DM}++~̓h 48 !7Illegal number: "%s" ! 8$%%#((<A[  B$!D@"DDDBBH"DD@HA@    %(FL|.^#V#bkW%%+}< 0!!h(#!/("!c G!z_!P 77Illegal argument: "" MODE cannot be used with block devices such as: "No terminal is connected to character device %u:%u Illegal baudrate for character device %u:%u G!KB> hM!~MN#GqF#h( ͞q:zK^#V#H(``ig o&X(x s     x x jj &P! O####~#( y(##~#fo! DLECho Kill FNkeysDIScardTANdemABaudCBreakARAWA BINary Erase DELECho LKillEChoAIMmediateechoEVenparityODDparity@CRDEViceLCaseAFNkeysADELAYcodeLength BMargin FFexpand PAuseWidth W8~;( *( <+~ B ~ ($ ( ut##~:( ( ( #ͅ(,#ͅ(#6ut##8 +~ 7^VR( +~ ( (#w~TG!07~TG 07!/ 8x29:9G8:9G!8!/:9G8/etc/mtabnf~- ##!"l*l|( ~#(n(<A[ Correction (seconds/100 days)REWindRWUNLOADERASEALLFile ZBlock ̚InblklnZOutblkln͚EOFcloseABLKSwrittenϚ IB$@$  BH@$! @  @@B@)JR * x2t ' ! 8 ! #>0t!z>7 ft(f(A8Qx2:G ѧ8;x2 !8$:Gbk!8R  !8:Gbk!8R >:G 7:G :G:(!8 :G *":=W:G*!R8~ #z ,M0M,xWȗ2G*":Gy2WY*"bkQY:G+~/(^(#6/#"T]~#(^(/ T]~# *B##^#V#- BK!5C"*|( ~#(( 88nf~# Hͥnf( #Ϳ7!Q7mountPassword: Invalid password /etc/passwdnG~n # ! 8+~ ( ( (#6~#( x 7~(#p͎ ~/Messages disabled Messages enabled nf)8! 00! !08[nf; ! 8V!R(RI!!$_!88/ ;!4> nf!C7 nf!\77!{7/dev/Message from %sEnd of message User not logged in "%s" Can not send messages to "%s" Unable to determine where he is RAParound@TABexpandABortenableSIGenableSIGChar SIGAllcharsHUPenableSIGHUPallDLECho Kill FNkeysDIScardTANdemABaudCBreakARAWA BINary Erase DELECho LKillEChoAIMmediateechoEVenparityODDparity@CRDEViceLCaseAFNkeysADELAYcodeLength BMargin FFexpand PAuseWidth WRAParound@TABexpandABortenableSIGenableSIGChar SIGAllcharsDIScardEVenparity  "!@H!@@  @@@H@@@  Ao$Wrong number of arguments move move ... Can't move %s to itself %s <"H@@$ B  D@  ($# u~n(# x !6!R7Device name too long: "%s" Device must be in /dev: "%s" /dev/~nOn #)6T] ~n(7jj#~!0 bk!y(!N !)j0NF NFJ0 ####>9a{8Ƶw#= Z2Yckyd(vP)*||, BE~FN0qRL$BbLgj]zbF{IkEpƨshSϴr:<}W?ڼ}gƳy2alL 8xwT78(UP~TG!R7(I~ 06@#z _2 !\;2 !x> 1!! 8 !08zݾ* {ݾ+ 7!7Unable to determine who i am /etc/who4|ªx2S! ڝx2T:TG!08<~(! 8Q:SG!88!:SG!U80  :SGnf|( 7!7Broadcast message .... Must be privileged user !8 !U8ODDparity@CRDEViceDELAYcodeLength BMargin FFexpand Width WRAParound@TABexpandCRDEViceLength BMargin FFexpand Width WRAParound@TABexpandDIScardBaudEVenparityODDparity@CRDEViceDELAYcodeLength BMargin FFexpand Width WRAParound@TABexpandDIScardBaudEVenparityODDparity@CRDEViceDELAYcodeLength BMargin FFexpand Width WRAParound@TABexpand%(FL|.^#V#bkW%%+}< msg.tmp !x( ~(# 7 G~ # nf~- ##!"*|( ~#( (< 8xwT 7*8(UP~TG8~;( *( U<+~ B ~ ($ ( ut##~:( ( ( #(,#(#6ut##8 +~  7^VR( +~ ( (#w~TG!0 7##6ړ“͙ͺ! 8!% 8G^V! gͪ ! ^ 8/ 8(nf 8͙NT 8 A !% 87^Vz( (##!Name not found: "%s" 4|(nf 8 ѧR !27!I7Invalid entry in file Can only change your own password vnf|(,! ut8Ͷ##nf| ! 8ͶQ8/8*8%gͪ (nf 8[Z "8[\ "8! V^*t! ~ KV^:u z(:!J 87!v 8~(x͖fnGo /( x(!>/ >x(~( # =(7DM͝++~h T8 !7Illegal number: "%s" ! >8$%%%%oh 70:8 ag?'0! ͌8(%%% J͖ 0:?0Ʌo$~# nf~- ##!"*|( ~#((<A[ !>2nf|(8 # /etc/passwd/etc/group/etc/passwd.tmp 8xwTb 7 8(UP~TG8~;( *( ͪ <+~ B ~ ($ ( ut##~:( ( ( # (,# (#6ut##>Patch version 00.03 Copyright (c) 1980 Cromemco, Inc. *Bnf|(* 88!>(2ͭ8͟oF!Fno file specified patch ͆#"!ͱ^#V#N# ( dehst!? ̀0 *[j0!T]0!T]"S̀8Í̀0 *[EO!ʹ>.8(̀8?z} ET͆(#, ~̀0'()-(. "S K ͙(C'(T%06lx: %02x s!F̀0!%lx %l,d. jC:L8~TG 0 7A[  B @@ D @$H"@@ B  @ut Name: %s !I!98 ~7(ut Name: !!8$~(g Sut!Password: %s _aWa_~(#s#r#6gͪ (y!!8cut;8"Z !!8Cut;8"\ ! !@8#~(ut !X!k8u t !!8ut;8!{!@8ut!ut u t ~( !7User number: Group number: s#r#s#r### y2:    = 78 +~ b 7^VR( +~ ( (#w~TG!0b 7~TG 0b 7͊ ͳ 6T] ~͡ (7jj#~!0 bk!y(!  !)j0NF NFJ0 ####>9a{8Ƶw#= Z2Yckyd(vP)*||, BE~FN0qRL$BbLgj]zbF{IkEpƨshSϴr:<}W?ڼ}gƳy2alLnf~- ##!" * |( ~#(͡ (<DM͛ ++~͡ h  R 8 ! 7Illegal number: "@ Passwd version 00.09 Copyright (c) 1980 Cromemco, Inc. {*B5͐ nͪ ( dͪ ( ͧlͥ!F!4| !Must be privileged user nf|5!% ڙ! ! gͪ ! ^ ڙ 89(0^Vnf|((##68QڟŸ͙ͺ8!% 8R^V! ! gͪ ! ^ 86 8#(nf 8Q8͙vnf|0!% ڍ! ! gͪ ! ^ ڍ 83(*^Vnf|((> L8>-> L8> L*6!!4 %s !D%06lx: E8^o&͡*w#"!x%02x *#"*~#͙( (+"ɧ ( >.:!":>#| | +x2s!z!T]2t(!"mSo*.%[RTE:=O*"qut6q 66ɗj͠~ѧ͠wj"mSo*qNFxF :t"mSoa ͱ0=f!qNFx(:F(-~ ~ ~ NFqpKq"qqp7N%(FL|.^#V#bkW%%+}<2u!J  8t:u( ! Directory: Starting program: User names: Invalid number 8! gͪ !  8 8 77!"++nf~  ]5 nf~(͟8W#-(.*~#"8(> ͟89y== O>:͟8)##> ͟8> ͟8!5  7!PASSWD line too long !)98z(+~ ( ( (#6͡ G~H  @@$" B@ H%s" ! < 8$%%%%oh 7͡ 0:8 ag?'0! ͊ 8(%%% J͔  0:?0Ʌo$~# A[  V^f_j8:n :o :p :m_ftsr_fw, .:sG*oR [mR?͆7ͮ8͆ͮ0 C!T]`iͱ͆ͮ0( ~̀)7~ɨ-+-+v*/A%~ڹͤͤz T8i7 TTU~8kͤͤz T0 TT ~86ͤͤzٲ ız Sz S 0<7S~͹8 Z7~͹8BRA*(?( n#~ d(a*(Y* 0Ix ~.(?#~ ͌ (0](,(O- ͌ (](8y0(](~(7 8S5V^#V^ #V #V #V #!T] #### 5!T] 5V^"V^ "V "V "V "!T] """"5V ^ f n " S 0! ut6@!ut$$utut62 O ~(nf####ut5nf^Vz(%y 3: (ut6 i!777!T7systemPassword: Cannot find privileged user Invalid password /etc/passwd͋G~͋ # ! 8+~ ( ( (#6~(# 8xwTĀ7͝8(UP~TG8~;( *( <+~ B ~ ($ ( ut##~:( ( ( #%(FL|.^#V#bkW%%+}< !F!F!5! ! $# x #((^#VRoot device not found in /dev root/de>Restore version 00.05 Copyright (c) 1980 Cromemco, Inc. O ̓8,!" 8@0 (w ![ Fw<(=H! >$ͦ!" #" : G 0! NFBNFB" S  (S !Jf n ))T]!: G" nf|" ##lA !+ ݾ!>>7!Q!fV ͕ nf|([ ͕ !V  8ͅ0 nf ͅx2 !z>!7Not a device !sx2 (: G!T]J7! W: G! 8* |#|(! : GCS*]}:(=WO*]T 7B}< x~(8~(x~(#x2͆7DMb.(CK!T] K,l\\\ JU K0C0:?0Ʌo$)jDM!T]͎,l\\\\o ͎0h 0:8 ag?'0z0/ͱ}/o|/g{/_z/W,$A[ u: Gnf87 ! Wͬ: G[ * z B8B0" S PY: GT]! 6!y(G͟(8DM* B" * R" 0! 6S\e.:* +))V^fn!V fn[ R!!>7inode %1d: bad inode Wͬ! NF NFJ! F N I 8 FNI 06 : G4V ^ fnK BK B" S : G !V n&!(< x2 !J80T]! 8'  A  A ! >!+ rPlease insert disk #%1d7(,#7(#6ut##8 +~ Ā7^VR( +~ ( (#w~TG!0̀7~TG 0̀7ͨ 6T] ~͋(7jj#~!0 bk!y(!. !)j0NF NFJ0 ####>9a{8Ƶw#= Z2Yckyd(vP)*||, BE~FN0qRL$BbLgj]zbF{IkEpƨshSϴr:<}W?ڼ}gƳy2alLDMͅ++~͋h <8 !7Illegal number: "%s" ! &8$%v/dev/smem/dev/! ! : G! [ cj" ! ~ !!! ͅ?lr (vr * .* [ R(^S  ͕ ͭ* ~(=(4~OV^x2 Aͧ~(0! 8! R* ! $7~>7#~(/ 68zw (7: G lcZNot a backup disk Wrong disk number No source specified /dev/backupnames.names.%s " [ z^Vͬ##^Vz 7" GOp#y8(x 7~6/w#~. .(z͌ (y[(! h SIM*=|(+"=*;^#V#";75*c 81!z> &!!58775*c'<PCannot set user / group ids !MN6!z2b2\2]2`2a!"^1S>2`͇ͦ!@+"|(!@!@"B?!8/!z {>(" >22!"!"K@[BBPError during loading of program %(FL|.^#V#bkW%%+}< 86nf~# .ͅnf( # in %s Hit any key when ready Wrong disk * ABORT * S\e.)j#B*B##^#V#z( - BKC * |( ~#(͌ (<A[ ~# %%%oh 7͋0:8 ag?'0! t8(%%% J~ 0:?0Ʌo$~# A[ I  @ H@@ B@$ % %!hBatch not allowed sM"W"OSQCS1S"UyQ)02Vm ͤ0_>2V 4 @4 >ݾ ~ <(w 66 ~ ݾw>2V6 !(ͤB0 _>Gͣ2Vm ͤ @!ͤ! $0_Z>2V:`2VS^>u!|S!z(!~08 0 GyO#nf|(## 8 x27*[%%R8;+r+sR:G8+~# (ܧ(!7##7 8 <*Input line too long U:!:G~#fo~#fo̓ : g( # 2RR(O++!"Sog*S|(: O(̓(:RGSSR(*S:RG*͢*#"͢!8*))px2sort  T{0 ![*6sr +| !"}*"!F N @# ~ ?(O~~.((#/b//c//d//e//f//g//h/%(FL|.^#V#bkW%%+}<2>22224"i*"*B}!0!F Ua6d6v6h6l6k69q6 c6p6m6e(ͱ>2>2>2>2nf8-hNV^it-------!7hJump table not allowed  %%Y%Y%Y%%z2z2z2:W8:W:W1:bhq {T [ ` m  ( 3 ; m    ? e  .  o {  h  @v{I*\G> 8W082V.(Z!a~{( (6 .(Z:YG !9 x2Y82V.(Z/dev/rdr:ZG ! A x2Z{ D!@I$I! BB"A! "BD@>  ՗#~+: ~@8##R .  #R ! w! w"O~!/=,.(*(#>?BKS"QBKTSQ"O>2V!U"Sbh1Z0Z{2S|2T}2Vbh3Z2Z{2S|2T}2V2\!D ! ~ ! ~<( w! 6ͣ8*^_>*>( 6#= !B B m ї2V!D *^0 ( ( ͤ_>>2Vɗ2V >? 8Z! 0Zo:([Q! !{O_:G2V{/2! ~! Fnf8Z*}^V|(̓ : O( 8S}" *+"| *}|(":G8* 7: ): 2 b ( ( ~( ( 2! : G~?( x(Fx2 b  :=2 v(*~( ͻ = ~(ͻ(= ~(#~<4 = ~(4(= ! f(FĬĬͻ(Gͻ((?f(ͻ(<7<~ ( #! ~(f~( G: x(N (J^( 86(2N( 8((0 O{((F~>S>S>SxS>S>.SxSz/!o0$~G~G!o0$^#V#~EHDCABKJbc][iI0PQMLWX12@RSZZgh89"(("("(" ( H`<`=tG2!/!wm~l~d~:@S;~~( (S#>SGy0 ~>S?~G~^{¦  > u!""O>"2V2Tɗ2V!"O{<(2:2Q @~# ~"8G~!(p w >2V7ͤ 0! z #} 0 *| ##2!=7!PPriority to large Privileged priority nf8z }2##!7Too many copies requested ͦ 8enf| !2UFt 8Si:( !QU8:(tnfi8$##nf| 7H87i----AGJ shell-pdaemon%s x2Ͱ8dx2!0:( [:G:G*"O 8**%%R8 ́ :G8  :GJ 87 ڬͤ ڬ! "[*0BP!.(Z/dev/pun:[G !0 A x2[{.(Z/dev/prt Z 0 ZZ:2V{2$_ͦ 18:w :_(:W(1*Q^##8G~ ( ( }(#66+}( +~ ( (}:_ :b >2a.(:b _Z> B(>2Vɗ2`!"^{2`6 !(!ͤ 0(  0_>Gͣ2V! ͈ Z2VS 2 8x2 \: G!  z : ([ ͇ ~(#! !  " S { z $${>2 2 : G<2 : 8: >SORT version 00.06 Copyright (c) 1980 Cromemco, Inc. *B*P[RF S"!6:"!"!"*">2>28M: G(*#")):w80  >8$ :!ͥ8>8 R !2 2 2 ! nf|q(n~- :#~08:89! |͉! w͉! ##nf|(=(4~-(+ /#q6~. #q ! 4 ##mubdfin r6~(/t #~(#2 G((ݶw#~- '#~o #~ nf|(##8x2<f.<o0$\ej:!c ~#<( (  <+F !c~<( !rDp# Too many opened files !c ~(   6!Zz {@ | }8@!%}lc(#V :R8| }8>w 80> a_ # x ~#͇!g_Fx<  Zp!!gx( #  6?( 0=:`o&))- ͇O~(##~ (# ~ (>.~ (#!  ~.( 8":8A8[8a8{0V###y~(! z(j+~~(G: x y(#M(F^( 8(N( 8(08:8A8[8a8{0V~A(z(+~(# a{_A[ sorttest"qSs͉ "wbk ͏8"u*wB͏(0"w[u͉8yyR[w*qRѧR0*s*wB *q*w *q[s*wB+w#|R $ - ګ: *|( V^R ~(!(!!V^8 !! n-&f+n,f)n*n& n/&n.fn!-> Filename User Seq Device Pri Pages Lines Copies %3s%-24s %-9u%-9s%5u %1u:%-2u%-5s %1u %5u %5u %5u ͤ ڃ$ 2nf|(.b8>286:( !:( ##nf!nf!%-16s not found %-16s not deleted %-16s deleted ͘ ! ~*Mw#"M[ISI*KR&[Iz(*O"M:0G8!"I~(0!G~((###>*#~#foN#F>$ͦ# > { > Wz8>  a@bXcpdefghijk0lHm`nxopqrstu v8wPxhyz012345(6@7X8p9/:.*_$   >   77/usr/spool*"[*R87( *0"*8"[R0!u 7Not enough memory  T{0 nf|(9  ~/($#   :8!  8## !!  !  8 ; 8 7prt/dev/!82z 4!8'z2{2B_S ZS7! 7Not a character device: "%s" ~#( /( ^(x~.ݾ. '~/ݾ/ ~ݾ ~ݾ fnV^R  H I$$ $    I@    @@ ""H@@@@D@ @"A$!!  B  DHI$$ !@@@@I$I$I$I$I$I~O # 8xwT788(UP~TG8~;( *( c<+~ B ~ ($ ( ut##~:( ( ( #(,#(#6ut##8 +~ 7^VR( +~ ( (#w~TG!07~TG 07nf~- ##!"N*N|( ~#((<"S "bk 8"*B(0"[8R[*RѧR0**B ** *[*BPP+w#RDM++~ ~$ 2nf|~b8U>2͘ ! ڕ!:ݾ(Rw8K͘ %8A !88:( ! :( ##nf!nf!%-16s not found %-16s priority not changed %-16s priority changed ͦ 8ͤ '$ -8- 8):ݾ. :ݾ/ *|ݾ }ݾ( | :(nf0 ^V- 8.Q(y |ݾ }ݾ *|( |ݾ }ݾ ! :͈ 87/usr/spool/st!/6ͥ :000000000 0`c3  0  @    0 0` 3c`O 8K"!!u 8B,8/nf8 O 86"s#r#nf 77/etc/passwd!z(~# 0L (1 (L !"f+n,#t+u,*#"[R0f)n*#t)u*!"*#*}o0$"[R8"Ê *KB?8 { #z ## ~#( x 7G~ # 55h 3̀8 !7Illegal number: "%s" ! j8$%%%%oh 70:8 ag?'0! ͸8(%%% J 0:?0Ʌo$~# A[ x20"1S3t"5͞"7:0G*3*5*7*1!9*1Q*7Q*5Q*3Q> & User - %s Date - %s Time - %s Filename - %s 2{!6:#z6:#{6!0|!6/#{6/#{6!o& T}0w#{0w#O "M"O*%%R"K!"I%(FL|.^#V#bkW%%+}<Testinp version 01.01 Copyright (c) 1981 Cromemco, Inc. *Bnf|͙fͳ :2dͳ :2rͳ :2nf" 8L!0 > 8:##nf|(8:G( !:W('!"!B0 :ˏ2!:W(!O( *8F>2:2:2:2:2*|2}2!  :2<2!""!! 8)tu͘ 8!08!8%8 7!  ~.o&͈ ~/o&͈ ~o&͈ fn͈ /usr/spool/sq!m 0<4! User id = %d & H!B ! 9!0 *g8#o#!8|8 }8 7/usr/spool/sequence_numberSequence number locked out O 8T""! 8V 8P! 83:(*sqR ! 8 0O 8"8 8x   0`  0`   D$ BBBBBBBBBHA@!A H I"DHH I@ B@ II@@ BI! 0%(FL|.^#V#bkW%%+}<   #~1(+ <+4O~4 ; A[?Wrong number of arguments Correct form: testinp [-dfr] file string1 [string2 ...]  # ͯ ~/($# ~a(# x !W!s7Device name too long: "%s" Device must be in /dev: "%s" /dev/~aOa #!" 8x2,:,G8:,G!8!":,G8/etc/mtabnf~- ##!"_*_|( ~#(a(<A[ !@%(FL|.^#V#bkW%%+}<t|(d|2|(4| ؗ2(! 5(~(g!RV ^ f n NF NFJutsr!VV^fnNF NFJutsr:cʵV^z :bG *^͵86"^! x2b+~/(^(#6/#Ñ*ZFN[\0 ^#V#Bq#p#"\7R %s Logical file space: %l,d bytes Physical disk space: %l,d blocks !02x.%02x ڨ>/ ڲx2*"! :G8:( 8! S Q !"*[ b*8 !* "[R !77 Pathname too long v? ! 8nz{ 8b*8^S ~#( A ># ##*R8*>ݾ # !BR! l!z  ! !%-25s%c%c No version number: "%s" Not a file: "%s" ~#( x 7 #*"*nf~- ##!"*|( ~#(4(< B!@@@ ! !B @   ww: Eo0{ ;.u}<01~<0*g~0"_2| MLK!ai3!͊02stu0stu|0 W&kmSy??<͟x( Y͟~͟Ts~!̀!de|(5^~!̀!k^^^!l~͟!x~!̀^!rC(p8_Of(8Gyw80>27y*|~#"nf##| "++*~#"0 ?ɇO؇؁=͟~#fo! "P{6 '.6@IPJanuaryFebruaryMarchAprilMayJuneJulyAugustSept~# ~# $HD" !" @ D H %(FL|.^#V#bkW%%+}< Version version 00.09 Copyright (c) 1980 Cromemco, Inc. 5{*#"8e"*B%nf|(6 8*z( G##nf| &* "U\&!!F!! Not a file or a directory: "%s" CROMIX version %  A H@@H System shutdown in 5 seconds r ͐ ~crx if -r install.crx goto continue1 %noinstall echo -e install.crx file not present on CDOS disk exit %continue1 ren install.crx install2.cmd if -e /usr/pkg goto continue2 %createpkg makd /usr/pkg chowner bin /usr/pkg %continue2 install2 #1 del install2.cmd echo CDOS software from disk #1 now installed on this Cromix disk $n%͎f(n)f&n'!2%-10s %-10s %5d %5d l&kjy!!!9>|&o|&khjGy!!! 9%3.3s-%02d-19%02d %02d:%02d:%02d%3.3s-%02d %02d:%02d 000JanFebMarAprMayJunJulAugSepOctNovDeco$@  @ if #1 = hd1 goto newdisk if #1 = hd2 goto newdisk wboot #1 %newdisk create /drive mount #1 /drive cptree / /drive unmount #1 del /drive mode pause echo echo Finished creating disk #1 %(FL|.^#V#bkW%%+}< /cmd/fixsb.temp testinp -d /cmd/fixsb.temp 'RB Makfs version 00.13' if -err go warning /bin/makfs -r #1 /bin/icheck -s #1 /bin/boot exit %prompt echo Call by: fixsb devname exit %warning echo "Fixsb requires Makfs version 00.13" .shutdown.msgcheck.cmdinstall.cmdfixsb.cmdnewdisk.cmdnewuser.cmdq.cmdquery.cmdrunqd.cmd runtu.cmd shutdown.cmd togcurs.cmd update.cmd help newuser nf|(^Vz(7!)7Cannot boot from this device Wdpp/etc/sfdboot/etc/fdboot/etc/hdboot8!r  8!8z 8b( 7!r !7>)Not a block device: "%s" !x: hڟA!ڰ!ڰ8vA!8t8p!8^!8J!fn | }0!++"*|(0+"!8 A8 A 7!7Boot too large ~#( x 7% This procedure is used to install CDOS programs on a Cromix disk if '#1' = '' goto argerror if #1 = fda goto install if #1 = fdb goto install if #1 = fdc goto install if #1 = fdd goto install if #1 = sfda goto install if #1 = sfdb goto install if #1 = sfdc goto install if #1 = sfdd goto install %argerror echo -e Wrong number of arguments echo -e 'Syntax: install fdx where fdx = fda, fdb, ..., sfda, sfdb, ...' exit %install del install2.cmd >* /dev/null cdoscopy #1 install.%(FL|.^#V#bkW%%+}<2! 8S!=08:(:M( 4!F!! 8 !=08zݾ* {ݾ+ !/etc/who!=!M!$!=F N!V"^#f if '#1' != '' goto checkargs echo -e No device specified exit %checkargs if #1 = fda goto begin if #1 = fdb goto begin if #1 = fdc goto begin if #1 = fdd goto begin if #1 = sfda goto begin if #1 = sfdb goto begin if #1 = sfdc goto begin if #1 = sfdd goto begin if #1 = hd0 goto begin if #1 = hd1 goto begin if #1 = hd2 goto begin echo -e Illegal argument: '"#1"' exit %begin echo -n Now creating new disk #1 ... mode -pause init makfs #1 if #1 = hd0 goto newdisk   d /usr/query if '#1' = '-s' goto s_option if '#1' = '' goto no_arg %query_match match #1 query_data shift; if '#1' != '' goto query_match exit %s_option shift if '#1' = '' goto no_arg_s %system_match match #1 sys_data; echo match #1 jsys_data; echo match #1 mode_data; echo match #1 tmode_data; echo match #1 query_data shift; if '#1' != '' goto system_match exit %no_arg echo 'Syntax: query [-s] [string]' echo 'Contents of query data file:'; echo ty query_data exit startup.msg ttys.iop /drive/etc d /drive/etc chowner bin fdboot group iostartup.iop.cmd chowner system login.bin chowner bin motd mtab passwd sfdboot startup.cmd startup.msg chowner bin ttys ttys.iop who access rewa.. iostartup.iop.cmd login.bin startup.cmd d / makd /drive/gen >* /dev/null cptree -f /gen /drive/gen cptree -f /usr /drive/usr d /drive chowner bin bin cmd cromix.sys cromix.iop.sys dev equ etc gen usr access rewa.. cromix.sys cromix.iop.sys ac%This command file will restore the original Cromix configuration. d / ren cromix.sys cromix.iop.sys ren cromix.orig cromix.sys ren etc/iostartup.cmd etc/iostartup.iop.cmd ren etc/ttys etc/ttys.iop ren etc/ttys.orig etc/ttys echo 'Ready to boot and log in on 16FDC/TUART console' mtty3mtty4nullprtqslpt1qslpt2qslpt3qslpt4qtty1qtty2qtty3qtty4qtty5qtty6qtty7qtty8 if '#1' != '' goto check_arg echo -e No device specified exit %check_arg if #1 = fda goto begin if #1 = fdb goto begin if #1 = fdc goto begin if #1 = fdd goto begin if #1 = sfda goto begin if #1 = sfdb goto begin if #1 = sfdc goto begin if #1 = sfdd goto begin if #1 = hd0 goto begin if #1 = hd1 goto begin if #1 = hd2 goto begin %arg_err echo -e Illegal argument: '"#1"' exit %begin d / echo -n Now updating disk #1 ... mode -pause creattty9jtyp1ityp2h %no_arg_s echo 'Syntax: query [-s] [string]' echo 'Contents of system call and query data files:'; echo ty sys_data; echo; echo ty jsys_data; echo; echo ty mode_data; echo; echo ty tmode_data; echo; echo ty query_data cess rewa.e.e etc %update complete d / unmount #1 del /drive mode pause echo echo Finished updating disk #1 msg -a */dev/null echo -n 'Time until system shutdown: 5 '; sleep 1 echo -n '4 '; sleep 1 echo -n '3 '; sleep 1 echo -n '2 '; sleep 1 echo -n '1 '; sleep 1 echo -n '0 '; kill -2 1 qtty9qtty10qtty11qtty12qtty13qtty14qtty15qtty16rootsdiloadsdisdi0~sdi1}sfda|sfdb{sfdcze /drive mount #1 /drive if #1 = hd0 goto updatefiles if #1 = hd1 goto updatefiles if #1 = hd2 goto updatefiles wboot #1 %updatefiles cptree -f /bin /drive/bin cptree -f /cmd /drive/cmd copy -f /cromix.sys /drive copy -f /cromix.iop.sys /drive cptree -f /dev /drive/dev cptree -f /equ /drive/equ d /drive/etc move -f motd motd.old move -f startup.msg startup.msg.old d /etc copy -f fdboot iostartup.iop.cmd login.bin motd sfdboot /drive/etc copy -fcromix.iopgioprun.binf%This command file will configure the Cromix system to use IOP/Quadart %terminals; /dev/tty1 (on the 16FDC) remains the console device. d / ren cromix.sys cromix.orig ren cromix.iop.sys cromix.sys ren etc/iostartup.iop.cmd etc/iostartup.cmd ren etc/ttys etc/ttys.orig ren etc/ttys.iop etc/ttys echo 'Ready to boot and use IOP/Quadart terminals' consolefdafdbfdcfddhd0hd1hd2iomemioplpt1lpt2lpt3lpt4mtty1mtty2echo -n 'Z' sfddysmemxtimerwtp1vtp2utp3ttp4sttyrtty1tty2qtty3ptty4otty5ntty6mtty7ltty8k CS*[RDM[$$+K[*@r@ÏHV _Sh!@#~#~#fo~#foP#M Cromix IOP System version 11.16 Copyright (c) 1980, 1981 Cromemco, Inc. Version 11.16.00_qtty_qslpt_iomem !@#~#( ## > 7~#fo!A@@s#r#!KOP!8LpQ!OOP!SOP !YOP!YO"WO!SO!OO!NQ8 xݾ eQ!YO ͽO0 7*WO(= !OR0!*WO!SO͙QP"WO!CPw#!CP~( 0#7~wz!CPPzG7/w K>(7 0P~ 0P(P~p>"7yGy/GPPɅo$˽˵oկ[A wwwwU!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èVͼVMgV)WWW=XjXW!W!W!Vc81 Z!Wutp*~(~"w"4>>6>} KJ|z(-͌K K@(x(z( KPK>>6nfP}>:J|*KfJ|>UKIG(GO͌K Kw ({y{0>@{0@0 x˿ (((<"F(+j8Mz\˿ 0+j0y(~$R( ~%z\>  qp6\i\i\G"n L~Ox([[q i\yi\˸˿n (v(w !fB\& !^(>\!~xF(f'tͭZ>ëJ! ͭi8|"n~!>\FS\!NFx˿ f(> \~ WF^>ͫJ^#\_nfJ~ V^~)"n>F^"n (A (1((#( 0 >^ͩ\@v(~$R ;\> \>]!V> \> ~  7>͌Kg~ ~<0 K|@ ̀H<@##~#foBBB"CPC~CCCD6DdDDDDEJExEEEF0F^FFFFGDGrGGGG*HUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU(Q y nf}7~w#~w+www#w+^Vut{ ut}|}( #V+^{7^V{  }|~(srww~#+~~# w~w ^V~#~w#~ww+w+w+wUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!B ##~#(# 7p+q+V+^BR}!BPw#w1@@|G^HPiͅOYS!@B>> KHSK JJqJ ISP!KO Q8 z!w!sP7O!SO(QOO(N&g~* K5>$7x)f͂K05 An(͂K0~W.>UK~W>ͫJI8 K"~( _~*hd KK_ww"Vȯw-NFxfxͅf3g&Z\N`~"O(o ~ |˿ >͝^|w[n^Neyn-et- f>ëJf~nf"^J ^+V,zJw+w,͌K(((_GK\n+f,N9fK͌Kg K͏K|()(;!XY_(D(g_GK.7Kn+f,|Xq+p,Kn+f,|XB`i>"7>͝^>.͝^x>9f"l =ˍ͝^u"|=e]>@UK> 8("n n ~(=]84Ý^v ɧ "nʈ^ ] (7 o^ ]^~ ~'8͝^~ Á^~=G~(=x"n 8&N  ͝^~ Á^> ]~ !v7] ^"n~)"n !n > ͝^~ @́^6a ^ 5 4~'w!F(("n "n ~) v(6 o^i\"n fo^> ͝^~ ́^65~'w6> ͝^~ 0"ngW|ͪ^͝^ͪ^n^!ͭi8v Wn^N~(g> >g^t_nU!QSP!Q@Q!USPoWgN#F!@@B B!S~( > P76#6#6#s#r#6!#q#pq#poWg@@^q#Vpi`R(!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èV!èVO?8 K!SO Q*K7I"Knf87}!KO(Q!VsPsISI"IH8:!H*I*I*I!9ut!SO(Q{I 8 > ͻI  P !OO*K!9ut1@*K(Q!"KqJ IH8SKHGox (/(2(90A&))B^#V#N#Fo&y(( ~#fo_U BGH>GH>>"7!US Q?##J_ JJ!QS(QJnfP^ ͺKG!QS Q8##p#q#s#r!US(Q]T(>Nfx(C fx}(?~TY8-x ~ | 6mY0>.~ͅf8$_|p"FW|0͊W>.7>"7>UK~N~ͅfQf8F ~ͅf8_Y0(+Y0( ! ( (|Yw>ͫJIw7\  7(>ͩI0>!0! Ji666!6$R6%6'66F `~ '! Ji8QG"n VęZxͭZ !JiGn ~"0 x˿( ~x( KNKGK>UK~ (^G!"n 4˿n "f (T(P#(K%(X f( xVPͭi8vz\n !~" N c^ LN!Ji8@ Ji84 ;nu( } Ic Ic}(n f P͋cɯͭigFx͢e|!{c"IJIͩIx~e c͋cF~(>@ëJ!Ji0!ÚP!åP!cP~+!cP6+6{c8;XH8KͶd8H.AP}cq#put}͌dwi`rHG^#V^#VnfB =>$7rH̀H̀HFxcNxͧex͢ex͝exCew!hP~!hP~͘d͘d͘dͪdtS8@͘dMDtS8-ͰdetS8ͤdtS8Le7Te7\e7%(FL|.^#V#bkW%%+}<}o(!b_(!g(!8]::Gy8tz8!>ݾ w# s#^#V#SS#### 8&:Gy0 l*r8 !:GB +"fh!bhƧ>"7!j>P}o~#+ s#r+T]>P x SjW~(Knf4~5(}< )}o~(^#V+sr[js#r+"ji|i7_W~<(d=(~ A*j|(S^#V+Sj~(^V{_s#r# 6#6#ututnfs44j{(j7W~(P5nf~5(} -}o~(^#V+{_sr[js#r+"jj|j7 $A$@!$@@$  $@DDf}(5~ 6+ut!"_P~: !Ji8F"n ( Ji84 ;nu( } \_ \_}(nfP͞_ɯͭigFx͢e|!_"IJIͩIx~e^͞_N~(>@N(>ëJ!_! _!_Ji0!ÚP!ͥP#\ɐg`F`Pa```d`!q`!8`!_c8! !`6!`u t p ͦ`~GK4 5>$7 K5 ~( ͢c~hdaNx˿`N cNey͌Kͮc͌Kg K͏K|!`8ôcGKNfx~(|ͅf8|̓e|~e~p>"766@6B6 B66( (>ͫJ7N >0yN4fg\3g|((|(( y ͤdͷSͰdͷS͘dͷSͪdͷS !feP xw>y!feP x/w>y >(y ~!ePPxFwN &ayx e͝eQfe>(éIye4f 7 x 4fpg x0og3gexͩIf&g>PQ>y>yR>y>dy.PtS_x0:!BhP~(0W{!hPNx(&f fVg{̓e{~e{!2hPf>"7VgN>GyQ >yyO>yy=7g!hP  F!R5(:O! i a2ij(!!a*@}8*Bnf| >!'7 8Ͷ!!a*@}8%*Bnf|(###~5018_!~2!>7ξͣ 70> ͊x@  x  7! - % *!T*"~#͊z :Ox@  x ~ > w͊:~# Gxxxx {_0͊:ͣ >!y7 y!:Ox- % ~#  #~(. 7|}0:8RS O^>ͫJb͌Kg^ (~La8"~<0 K|a>@UK>Kf |!aͦa0 4>;6>bÂK~ o(w |*aͦa0w |~w+#~7# ~wSEQa0pp;:P12P345678P9P 8~= cb84 bɧb (m (& b zbb~ =w >b~b~ =G~=x8%N  b~ z> a~  v7nb͢b(!~ n > b~@b6 ~w ͢b f> b6 > b~b5 6 b~0gW|bbbNb!ͭiW>yx>D >Ly hhe&gy7gve> >yy >!h>>y>y Y Qpgx {8/w_Ggy7gO 0!gPyN!hP!g~6dfc<!fe6#!g"NGg#!hs#!hN#f$7 K!ah5:ch̀H#~ˆ*fh}(+"fh*dh~#"dh KNK͌KG*fh}( +"fh*dhp#"dh͌Kg K͏KGK|( Cdhognly IOP1, IOP2, IOP3, and IOP4 allowed No input file IOP is improperly addressed or not in system IOP talking to Quadart No response - the IOP is busy The IOP Monitor RAM test failed The IOP Monitor ROM test failed .iop jsysequ.z80emodeequ.z80dstructs.z80ctmodeequ.z80b .exchg equ 0CH ;exchg(b,c) exchange data in files .trunc equ 0DH ;trunc(b) truncate open file .pipe equ 0EH ;b,c=pipe() create a pipe ; equ 0FH .getpos equ 10H ;dehl=getpos(b) get file position .setpos equ 11H ;setpos(c,dehl) set file position .getmode equ 12H ;d=getmode(b,c) get device characteristics .setmode equ 13H ;d=setmode(b,c,d,e) set device characteristics .rdseq equ 14H ;de=rdseq(b,de,hl) read n bytes .wrseq equ 15H ;de=wrseq(bcurrent equ 1 ;forward from the current file position fwd.end equ 2 ;forward from the end of the file bak.current equ -1 ;backward from the current file position bak.end equ -2 ;backward from the end of the file ; ; C-register modes for .fstat, .cstat, .fchstat, .cchstat ; st.all equ 0 ;all of inode (128 bytes) st.owner equ 1 ;de = owner st.group equ 2 ;de = group st.aowner equ 3 ;d = owner access, e = mask st.agroup equ 4 ;d = group access, e = mask st.aother 33H ;settime(e,h,l) set time .getuser equ 34H ;de,hl=getuser() get user id .setuser equ 35H ;setuser(hl) set user id .getgroup equ 36H ;de,hl=getgroup() get group id .setgroup equ 37H ;setgroup(hl) set group id .getprior equ 38H ;l=getprior() get process priority .setprior equ 39H ;setprior(l) set process priority .getproc equ 3AH ;hl=getproc() get process id ; equ 3BH ; equ 3CH .ksam equ 3DH ;ksam(c,de,hl) ksam call .lock equ 3EH ;lock(c,de,2 ;program id id.hl equ 3 ;id contained in HL register ; ; Signals ; sigabort defv 1 ;CNTRL-C key siguser defv 2 ;user-specifiable key sigkill defv 3 ;kill sigterm defv 4 ;terminate (catchable) sigalarm defv 5 ;alarm clock sigpipe defv 6 ;broken pipe sighangup defv 7 ;modem hang up sigmax defv 8 ;maximum signal number ; ; SYSTEM CALL NUMBERS ; .makdev equ 00H ;makdev(d,e,hl) make device entry .makdir equ 01H ;makdir(hl) make a directory .getdir equ 02H ;getdir( 55H ;hl=version() get system version # .boot equ 56H ;boot(hl,de) boot new operating system form ;* error code definitions -- RVH Jan 30,1979 ?badchan defv 1 ;bad channel # ?toomany defv 2 ;channel already open ?notopen defv 3 ;channel not open ?endfile defv 4 ;end-of-file ?ioerror defv 5 ;I/O error ?filtable defv 6 ;file table exhausted ?notexist defv 7 ;file does not exist ?badname defv 8 ;bad file name ?diraccess defv 9 ;directory access ?filaccess defv 10 ;file access ?exists list off ; list noxref ; (Permitted only with ASMB versions 03.08 or higher) stdin equ 0 ;standard input channel stdout equ 1 ;standard output channel stderr equ 2 ;standard error channel argc equ 40H ;location for argument count argv equ 42H ;location for argument list vector arg0 equ 0 ;arg offset arg1 equ 2 ;arg offset arg2 equ 4 ;arg offset arg3 equ 6 ;arg offset arg4 equ 8 ;arg offset ; ; C-register modes for .create, .open ; op.re,de,hl) write n bytes .rdbyte equ 16H ;a=rdbyte(b) read 1 byte .wrbyte equ 17H ;wrbyte(b,a) write 1 byte .rdline equ 18H ;de=rdline(b,de,hl) read a line .wrline equ 19H ;de=wrline(b,hl) write a line ; equ 1AH .printf equ 1BH ;printf(b,hl) print formatted string .error equ 1CH ;error(a,b,de,hl) print error message .fstat equ 20H ;fstat(c,de,hl) get file status (inode) .cstat equ 21H ;cstat(b,c,de) get channel status (inode) .fchstat equ 22H ;equ 5 ;d = other access, e = mask st.ftype equ 6 ;d = file type st.size equ 7 ;dehl = file size st.nlinks equ 8 ;de = number of links st.inum equ 9 ;de = inode number st.device equ 10 ;de = device number of file system containing inode st.tcreate equ 11 ;de-> time created st.tmodify equ 12 ;de-> time last modified st.taccess equ 13 ;de-> time last accessed st.tdumped equ 14 ;de-> time last dumped st.devno equ 15 ;de = device number if inode is a device ; ; fihl) lock key .unlock equ 3FH ;unlock(c,de,hl) unlock key .signal equ 40H ;signal(c,hl) set up to receive a signal .kill equ 41H ;kill(c,hl) send a signal .sleep equ 42H ;sleep(hl) sleep for hl seconds .alarm equ 43H ;alarm(hl) set alarm clock .pause equ 44H ;pause() pause for alarm clock .wait equ 45H ;c,de,hl=wait() wait for child process .exit equ 46H ;exit(hl) exit process (close files) ; equ 47H .fshell equ 48H ;fshell(de) fork a shl) get current directory name .setdir equ 03H ;setdir(hl) change current directory .mount equ 04H ;mount(c,de,hl) mount file system .unmount equ 05H ;unmount(hl) unmount file system .delete equ 06H ;delete(hl) delete file .chkdev equ 07H ;chkdev(d,e) check for device driver .create equ 08H ;b=create(c,hl) create & open file .open equ 09H ;b=open(c,hl) open file .chdup equ 0AH ;c=chdup(b) duplicate channel .close equ 0BH ;close(b) close file defv 11 ;file already exists ?nospace defv 12 ;no disk space left ?noinode defv 13 ;no inodes left ?inotable defv 14 ;inode table exhausted ?badcall defv 15 ;illegal system call ?filsize defv 16 ;file size too big ?mnttable defv 17 ;mount table exhausted ?notdir defv 18 ;not a directory ?isdir defv 19 ;is a directory ?priv defv 20 ;privileged system call ?notblk defv 21 ;not a block special device ?fsbusy defv 22 ;file system busy ?notordin defv 23 ;not an ordinary file ?notmount defv 24ad equ 0 ;read only op.write equ 1 ;write only op.rdwr equ 2 ;read and write op.append equ 3 ;append only op.xread equ 4 ;exclusive read only op.xwrite equ 5 ;exclusive write only op.xrdwr equ 6 ;exclusive read and write op.xappend equ 7 ;exclusive append only op.truncf equ 80H ;truncate on create flag op.condf equ 40H ;conditional create flag ; ; C-register file position modes for .setpos ; fwd.begin equ 0 ;forward from the beginning of the file fwd.fchstat(c,de,hl) change file status .cchstat equ 23H ;cchstat(b,c,de) change channel status .flink equ 24H ;flink(de,hl) link to file .clink equ 25H ;clink(b,de) link to open channel .faccess equ 26H ;faccess(c,hl) test file access .caccess equ 27H ;caccess(b,c) test channel access ; equ 28H ; equ 29H .getdate equ 30H ;d,e,h,l=getdate() get date .setdate equ 31H ;setdate(e,h,l) set date .gettime equ 32H ;e,h,l=gettime() get time .settime equ le types for st.ftype ; is.ordin defl 0 ;ordinary file is.direct defl 1 ;directory file is.char defl 2 ;character device is.block defl 3 ;block device is.pipe defl 4 ;pipe file ; ; access bits for access flags ; ac.read defl 0 ;read access bit ac.exec defl 1 ;execute access bit ac.writ defl 2 ;write access bit ac.apnd defl 3 ;append access bit ; ; C-register modes for .setuser, .getuser, .setgroup, .getgroup ; id.effective equ 0 ;effective id id.login equ 1 ;login id id.program equ hell process .shell equ 49H ;shell(de) transfer to shell process ; equ 4AH .fexec equ 4BH ;fexec(bc,de,hl) fork and execute program .exec equ 4CH ;exec(bc,de,hl) execute program ; equ 4DH ; equ 4EH ; equ 4FH ; equ 50H .indirect equ 51H ;indirect(a,b,c,de,hl) system call in A-register .update equ 52H ;update() update disk I/O buffers .mult equ 53H ;dehl=mult(bc,hl) multiply .divd equ 54H ;de,hl=divd(dehl,bc) divide .version equ   ;device not mounted ?nochild defv 25 ;no child processes ?nomemory defv 26 ;not enough memory ?ovflo defv 27 ;divide overflow ?argtable defv 28 ;argument table exhausted ?arglist defv 29 ;bad argument list ?numlinks defv 30 ;too many number of links ?difdev defv 31 ;cross-device link ?nodevice defv 32 ;no special device ?usrtable defv 33 ;user process table exhausted ?badvalue defv 34 ;value out of range ?notconn defv 35 ;I/O device not connected ?devopen defv 36 ;device open error ?diruse fl_AUTO equ 7 ; (bit 7) input CRs from keyboard to set baudr ; d-register & e-register bits for MD_MODE1 calls TANDEM defl 0 ; send XOFF/XON to control filling of input buf XTAB defl 1 ; expand TABs LCASE defl 2 ; convert alphabetics to lower case ECHO defl 3 ; echo input CRDEVICE defl 4 ; on input, map CR into NL, ; on output, change NL to CRLF. RAW defl 5 ; on input, return after each character, ; no erase, linekill, or EOF characters, ; no output PAUSE or output width truncatle defv 50 ;lock table exhausted ?tapeio defv 51 ;tape I/O error ?badio defv 52 ;bad I/O ; list xref ; (Permitted only with ASMB versions 03.08 or higher) list on function keys enabled HUPENAB defl 2 ; hang up modem when device is finally closed SIGHUPALL defl 3 ; send SIGHANGUP signals to all processes which ; use this TTY device if modem hangs up CBREAK defl 4 ; on input, return after each character, ; no erase, linekill, or EOF characters. BINARY defl 5 ; on input, return after each character, ; no erase, linekill, or EOF characters, ; no output PAUSE or output width truncation, ; treat X-OFF & X-ON as regular input, ; no tandeequ -101 ; flush input queues MD_FNKEYS equ -104 ; turn function keys on or off ; d-register = 1 to enable fnkeys ; d-register = 0 to disable them MD_PSIGHUP equ -105 ; signal current process if hang up ; equ -106 ; (this value reserved) MD_BREAK equ -107 ; output break (QTTYs only) ; d-register = 1 to start break ; d-register = 0 to stop break ; d-register values for MD_ISPEED baudrate calls S_HANGUP equ 0 ; hang up phone ; equ 1 ; 50 baud ; equ 2 ; 75 baud Su S_19200 b.auto equ ^Sfl_AUTO md1.tab defl XTAB md1.echo defl ECHO md1.lcase defl LCASE md1.cr.nl defl CRDEVICE md1.raw defl RAW md1.odd defl ODD md1.even defl EVEN md2.pause defl PAUSE md2.later defl NOTIMMECHO md2.noecnl defl NOECNL md2.sgenable defl SGENABLE md2.abenable defl ABENABLE md2.ff defl XFF md2.wrap defl WRAP md2.esccr defl ESCRETN st.charrdy equ INOTEMPTY hangup equ HUPENAB huptty equ SIGHUPALL list xref ; (use this line only with ASMB version 3.08 or laion, ; treat X-OFF & X-ON as regular input. ODD defl 6 ; parity function bits EVEN defl 7 ; ; special definition for the big version of the TYP printer driver AUTOPRO defl RAW ; automatic proportional spacing ; d-register & e-register values for MD_MODED calls NLDELAY defl 03H ; (pairs of bits) TABDELAY defl 0CH ; CRDELAY defl 30H ; FFDELAY defl 40H ; (single bits) BSDELAY defl 80H ; ; d-register & e-register bits for MD_MODE2 calls PAUSE defl 0 ; wait for CNTRL-Q after a pag list off list noxref ; (use this line only with ASMB version 3.08 or later) ; ----------------------------------------------------------------------------- ; mode definitions for terminals and printers, ; TTY, QTTY, MTTY, LPT, SLPT, QSLPT, and TYP ; c-register values for .GETMODE and .SETMODE system calls MD_ISPEED defl 0 ; input speed MD_OSPEED defl 1 ; output speed MD_MODE1 defl 2 ; flags: RAW, ECHO, etc. MD_MODED defl 3 ; delays for NL, CR, etc. MD_MODE2 defl 4 ; flags: PAUSE, XFF, em mode (i.e., no input buf control), ; no abort signal (^C), no user signal, ; no changing or checking parity bit, ; no delays after control chars such as NLs, ; no echoing, ; no character transformations (i.e., ignore ; the LCASE, CRDEV, and XTABS modes) ; no function-key decoding. DISCARD defl 7 ; discard the device when it is no longer open ; d-register bits for MD_STATUS calls INOTEMPTY defl 0 ; there is a character in the input buffer ; (but if not CBREAK_110 equ 3 ; 110 baud ; equ 4 ; 134.5 baud S_150 equ 5 ; 150 baud ; equ 6 ; 200 baud S_300 equ 7 ; 300 baud ; equ 8 ; 600 baud S_1200 equ 9 ; 1200 baud ; equ 10 ; 1800 baud S_2400 equ 11 ; 2400 baud S_4800 equ 12 ; 4800 baud S_9600 equ 13 ; 9600 baud ; equ 14 ; External A ; equ 15 ; External B S_19200 equ 16 ; 19200 baud S_CTSWAIT equ 125 ; wait for Clear To Send S_NOCHG equ 126 ; no change of baudrate S_UNINIT equ 127 ; baudrate has not been initialized yet Ster) list on defv 37 ;directory in use (delete) ?filuse defv 38 ;file in use (exclusive access) ?nomatch defv 39 ;no match on ambiguous name ?chnaccess defv 40 ;channel access ?notcromix defv 41 ;not a cromix disk ?badfree defv 42 ;bad free list ?badinum defv 43 ;bad inode number ?readonly defv 44 ;device mounted for read only ?noproc defv 45 ;process does not exist ?signal defv 46 ;system call was aborted ?badpipe defv 47 ;bad call on a pipe ?locked defv 48 ;locked ?deadlock defv 49 ;deadlocked ?lcktabe is output NOTIMMECHO defl 1 ; do not echo characters typed-ahead NOECNL defl 2 ; do not echo NLs SGENABLE defl 3 ; send SIGUSER signal if MD_USIGNAL key pushed ABENABLE defl 4 ; send SIGABORT signal if CNTRL-C key pushed XFF defl 5 ; expand FFs WRAP defl 6 ; wrap-around if page width is exceeded SIGALLC defl 7 ; send SIGUSER signal for every key pushed ; d-register & e-register bits for MD_MODE3 calls ESCRETN defl 0 ; ESC causes input line to be returned FNKEYS defl 1 ; response to 3102 tc. MD_MODE3 defl 5 ; flags: CBREAK, VRAW, etc. MD_ERASE defl 6 ; auxilliary erase character MD_DELECHO defl 7 ; erasure echo character MD_LKILL defl 8 ; line kill character MD_USIGNAL defl 9 ; SIGUSER signal key MD_LENGTH defl 10 ; page length (lines) MD_WIDTH defl 11 ; page width (columns) MD_BMARGIN defl 12 ; bottom margin (lines) MODELEN equ MD_BMARGIN + 1 ; more c-register values for .GETMODE and .SETMODE system calls MD_STATUS equ -100 ; check whether input queues empty MD_IFLUSH , RAW, or BINARY mode, ; it won't be accessible until a whole line ; is entered) ; ----------------------------------------------------------------------------- ; old names md.ibaud equ md_ispeed md.obaud equ md_ospeed md.mode1 equ md_mode1 md.mode2 equ md_mode2 md.mode3 equ md_mode3 md.erase equ md_erase md.dlecho equ md_delecho md.kill equ md_lkill md.signal equ md_usignal md.length equ md_length md.width equ md_width md.bmargin equ md_bmargin b.9600 equ S_9600 b.19200 eq ; ; super block definitions ; frbcount equ 80 ;free block list size fricount equ 80 ;free inode list size frbsize equ frbcount*4+2 ;free list size in bytes frisize equ fricount*2+2 ;free list size in bytes struct 0 sb.version defs 2 ;version number sb.cromix defs 6 ;'cromix' sb.istart defs 2 ;first inode block sb.isize defs 2 ;number of inodes sb.fsize defs 4 ;max block number sb.time defs 6 ;last modified time mend struct struct 512-frbsize-frisize sb.nfree defs 2 ;free block countite EOF to tape when device closes ; TPSTAT status bits, returned in e-register (obtained from PIO input port A) DRVBUSY equ 7 ; drive busy WRRDY equ 6 ; FIFO ready for input (used for write) RDRDY equ 5 ; FIFO output ready (used for read) LOADPT equ 4 ; load point FBUSY equ 3 ; formatter busy ONLINE equ 2 ; on line IDENT equ 1 ; ident? RDY equ 0 ; ready ; TPSTAT status bits, returned in d-register (obtained from PIO input port B) HISPEED equ 7 ; high speed status HARDERR  created in.tmodify defs 6 ;time last modified in.taccess defs 6 ;time last accessed in.tdumped defs 6 ;time last dumped (backed up) in.index defs 4*20 ;block pointers inosize defs 0 ;total inode size in bytes mend struct inocount equ 20 ;size of inode table is.type defl 7 ;file type mask (in.stat) is.ordin defl 0 ;ordinary file is.direct defl 1 ;directory file is.char defl 2 ;character device is.block defl 3 ;block device is.pipe defl 4 ;pipe file is.alloc defl 7 ;inode alloca>@81!>z4y0= 400 x2z43>048÷0g(LGSSSDST2!"!"222>2̀8͹!:(A!x2"! N":(>22: := :<22:*o0$~2͛8+8&*["R(0:<2G: >2zSD >2ɗ2|DD >2*~#~     Fdboot version 00.09 Copyright (c) 1980, 1981 Cromemco, Inc.  list off list noxref ; (use this line only with ASMB version 3.08 or later) ; mode definitions for TP tape devices ; c-register values for .GETMODE and .SETMODE system calls tpmmin equ -60 ; minimum mode number TPABORT equ tpmmin + 0 ; re-initialize tape driver TPFMARK equ tpmmin + 2 ; write file mark TPSECURE equ tpmmin + 3 ; security erase TPREWIND equ tpmmin + 4 ; rewind TPUNLOAD equ tpmmin + 5 ; rewind and unload TPMODE equ tpmmin + 6 ; mode bits TPFILNO equ tpmmin + 7 ; file numb!> 84!Z!{!Z 8!Z~(͕ fncromix.sys! !qpu t s r 66^V n f c~(7!N(73 (i Z8!8Z+}::!FN 0Oͯ G~ͯ # A[  , 3 k!  O6}@(4~= XsS A66{2>2D4>͛w ${_} sb.free defs frbcount*4 ;free list address sb.ilist defs 0 ;i-list address sb.ninode defs 2 ;free inode count sb.inode defs fricount*2 ;free inodes mend struct eject ; ; inode buffer definitions ; struct 0 defs 2 ;avail list pointers defs 2 in.devn defs 2 ;inode device number in.inum defs 2 ;inode number in.flags defs 1 ;flags byte in.ucount defs 1 ;usage count in.begin defs 0 ;beginning of inode on disk in.owner defs 2 ;file owner's user id in.group defs 2 ;file owner's grequ 5 ; hard error FLMARK equ 4 ; file mark CORERR equ 3 ; correctable error WRPROT equ 2 ; file write-protected EOT equ 1 ; end of tape RWINDING equ 0 ; rewinding list xref ; (use this line only with ASMB version 3.08 or later) list on ted (bit in in.stat) if.lock defl 0 ;inode locked (in use by a process) if.want defl 1 ;inode wanted by another process if.modf defl 2 ;inode has to be written out if.modt defl 3 ;update time modified if.acct defl 4 ;update time accessed ac.read defl 0 ;read access bit ac.exec defl 1 ;execute access bit ac.writ defl 2 ;write access bit ac.apnd defl 3 ;append access bit eject ; ; directory format definitions ; struct 0 dr.name defs 24 ;name of entry namsize defs 0 ;size o> 2c `c(Uͫ:::ˇ2222c  (ͫ7 (ͫ:O7ɗ2224804W =0>0͍W͛@ ͆4W 0>014W 0>27ɗ4:3O:2:1ʆ804W 0@͍O>04W 00.2@ - @ ͆$:W(_(7:͆!dͨ027:2'048484O 0͆02͆>27BWbƈ_z4{͛Wbƨ_z4{04848 K40͆͛027:O͜8 er TPBLKNO equ tpmmin + 8 ; block number TPOBLKLN equ tpmmin + 9 ; block length for next block written TPIBLKLN equ tpmmin + 10 ; block length of first block read TPOBLKS equ tpmmin + 11 ; number of blocks written TPSTAT equ tpmmin + 12 ; get error (status-2, status-1) tpgmmin equ TPMODE ; minimum getmode number tpgmmax equ TPSTAT ; maximum getmode number tpsmmin equ TPABORT ; minimum setmode number tpsmmax equ TPOBLKLN ; maximum setmode number ; TPMODE bits EOFCLOSE equ 7 ; wrut6666̀ > ,}@(A(̀ , ~5}n ͌ ~7 ~7}y?>"! ^#Vc    ~ ~~~wf ^ V.)jutsr>"7i&:o:o:on f ^ V ^V &kjxo ! y ! q(x=(! ͭ !9>25n f ^ V z { | } 0A| }8$f V(Ϳ  ͛814 8, 25B 8!6z { >  66:wnf|(:wF Ϳ S:ˇ2 ͛84 8*"ݧoup id in.aowner defs 1 ;owner access in.agroup defs 1 ;group access in.aother defs 1 ;other access in.stat defs 1 ;file status in.nlinks defs 1 ;number of links to inode defs 1 in.size defs 4 ;file total size (in bytes) in.inode defs 2 ;this inode number in.parent defs 2 ;parent inode number (for directories only) in.sdevn defs 0 ;special device major & minor numbers in.dcount defs 2 ;number entries in a directory in.usage defs 4 ;number blocks actually used in file in.tcreate defs 6 ;timefdbootagroup`iostartup.iop.cmd_login.bin^motd]mtab\passwd[sfdbootZstartup.cmdYstartup.msgXttysWttys.iopVwarningUwhoTf name defs 4 ;reserved dr.stat defs 2 ;status & flags dr.inum defs 2 ;inode number of file dirsize defs 0 ;directory entry size (32 bytes) mend struct ds.alloc equ 7 ;entry allocated bit 483͆027{7'K88A043#43#43#43#403>*E3*O4(2D4͍_:(!!: :g:2 4 ͛! Nͨx2>2:G7G:W(G(x 4/ >ɯ42H4͍!'͍ͨ:(}x!:W ! +}  1*!"! nfc!!Zut6:_sr nf c~ Q!8C{8>> 89!!Z{*!R8 KdC>2:2>2BKf* vCannot boot CROMIX  nf"!"n}2>F ~(2} 22̀ ~2:V(2^V$(H%R0 8!8NF QN(,2}2:5(n f ^{2r6k6̀ 8,>2!"͛ 882  w 66F ~w!f V(F  n&N()+NF 8f V <<^Vu t srzSDr ~TDr |DDr xSCr(LCr(SBr(lBr( *~#~{ 8xwTė 7͸8(UP~TG8~;( *( <+~ B ~ ($ ( uusers : :1 :user1,user2,newuser,gm  J  0:?0Ʌo$~# A[ "II$H @T@$   H!  $ @    B@sh-q.startup.startup.cmd-c[#8![#8Z#8 #8 # 8!80 ! nf~#( 8 z(!/usr/mail/You have mail *78%78*5858nf 87!!'38nfN 8"nfN 8"7/etc/passwd͗8cͬ8Onf4 ͈ nf~89ͽnfͽ~# ͜ nf( #͈ !77Name or password incorrect ~(#!!@" !C͹!C*  @*> system : :0 :0 :/ user1 : :1 :1 :/usr/user1 user2 : :2 :1 :/usr/user2 newuser : :99 :1 :/ :newuser bin : :32767 :32767 :/bin ! < = ( (MM( ( M$M                        >C( = z {?>70BB0 =  Ru(t)!K>utsrqp!  DM= !u*t+s,r-^(V)V^fnu.t/s0r1u2t3s4r5s6r7n*f+^,V-z1 {0 |/ }.0uMlcZ*8m n.f/^0V1N*F+BN,F-Bz R0t##~:( ( ( #N (,#N (#6ut##8 +~ ė 7^VR( +~ ( (#w~TG!0͗ 7~TG 0͗ 7Ϳ 6T] ~+ (7jj#~!0 bk!y(!E  !)j0NF NFJ0 ####>9a{8Ƶw#= Z2Yckyd(vP)*||, BE~FN0qRL$BbLgj]zbF{IkEpƨshSϴr:<}W?ڼ}gƳy2alL! 8 0/etc/who6T]/% Remove comment signs, "%", in order to load IOPs with the QTTY, QSLPT, % and IOMEM drivers: /dev/iop/ioprun /dev/iop/cromix iop1 % /dev/iop/ioprun /dev/iop/cromix iop2 % /dev/iop/ioprun /dev/iop/cromix iop3 % /dev/iop/ioprun /dev/iop/cromix iop4 % Remove a comment sign "%" in order to load an IOP with the TP % and IOMEM drivers: % /dev/iop/ioprun /dev/iop/tape iop1 % /dev/iop/ioprun /dev/iop/tape iop2 % /dev/iop/ioprun /dev/iop/tape iop3 % /dev/iop/ioprun /dev/iop/tape iop4 Message of the day: Welcome to the CROMIX Operating System Password: *!!F ...timeout + G~+ # ! ! 0+ CLU25 ; !* *$ !? :F Logged in %s on %s !8+~ ( ( (#6>@8!!>z4y0= 400 x2z43>048÷0g(LGSSSDST2!"!"222>2̀8͹ !:(A!x2"!N":(>22: := :<22:*o0$~2͛8+8&*["R(0:<2G: >2zSD >2ɗ2|DD >2*~#~   Sfdboot version 00.09 Copyright (c) 1980, 1981 Cromemco, Inc. BDMn4f5B8( u4t5ͿN4F5Ϳ^6V7z 7>n6f7 u6t7n*f+^,V- 0u*t+s,r-^2V3s2r3z }8)B0}lcZ'?z } xn(f):Z8 x(x7(_V^fnh&)))zݾ {ݾ |ݾ }ݾ(utsrz(NFnfnfT]6_V^fnh&)))w(#6t&u't(u)s t!u"s#t$u%s+r*!  8 o&0S80 !  8 0 /etc/accountl&kjy!" I ! !9>|&o|&khjGy!" I ! ! 9%3.3s-%02d-19%02d %02d:%02d:%02d%3.3s-%02d %02d:%02d 000JanFebMarAprMayJunJulAugSepOctNovDeco$DM% ++~+ h ͏  8 !y 7Illegal number: "%s" !  8$%%%%oh 7+ 0:8 ag?'0!  8(%%%%(FL|.^#V#bkW%%+}< 2c `c(Uͫ:::ˇ2222c  (ͫ7 (ͫ:O7ɗ2224804W =0>0͍W͛@ ͆4W 0>014W 0>27ɗ4:3O:2:1ʆ804W 0@͍O>04W 00.2@ - @ ͆$:W(_(7:͆!dͨ027:2'048484O 0͆02͆>27BWbƈ_z4{͛Wbƨ_z4{04848 K40͆͛027:O͜8 Type "system", "user1", or "user2" to log in initially. For information about this version of Cromix, log in as "newuser". Any user may access this same information by typing "help newuser" once logged in. ut6666͂ @ ,@(A(͂ . ~5n ͎ ~9 ~7y?>"! ^#Ve    ~ ~~~wf ^ V.)jutsr>"7i&:o:o:on f ^ V ^V &kjxo ! y ! q(x=(! ͯ !9>27n f ^ V z { | } 0A| }8$f V(  ͛816 8, 27D 8!6z { >  66:wnf|(:wF  S:ˇ2 ͛86 8*"ݧ If you have reset the computer, immediately execute "check -s". BDMn4f5B8( u4t5N4F5^6V7z 7>n6f7 u6t7n*f+^,V- 0u*t+s,r-^2V3s2r3z }8)B0}lcZ'?z } xn(f):\8 x(x7(_V^fnh&)))zݾ {ݾ |ݾ }ݾ(utsrz(NFnfnfT]6_V^fnh&)))vice drivers S266##= 2nf|(cnnfnf!~ !~(͖ ~B*^#V#"y(n sr## :<2: %-29s %-s <%c> ? %-29s %-s !:Kr!s͖ rnry !!!ͤ ( e #~(!ut###> 0+}(2W!*Q!%ͤ (e #~(+ut!(ut####"Q User supplied character drivers (Y = Yes, N = No) ? Enter driver entry point (blank = none, E = End) %7d - Enter names of rel fi483͆027{7'K88A043#43#43#43#403>*E3*O4(2D4͍_:(!!: :g:2 4 ͛! Nͨx2>2:G7G:W(G(x 4/ >ɯ42H4͍!'͍ͨ:(}x!:W ! +}  1,!"! nfe!!\ut6:_sr nf e~ S!8E}8@@ 8;!!\},!R8"KfC>2:2>2BKh, vCannot boot CROMIX 1:n :tty1 0:a :tty2 0:a :tty3 0:a :tty4 0:a :tty5 0:a :tty6 0:a :tty7 0:a :tty8 0:a :tty9 0:n :qtty1 0:a :qtty2 0:a :qtty3 0:a :qtty4 0:a :qtty5 0:a :qtty6 0:a :qtty7 0:a :qtty8 0:a :qtty9 0:a :qtty10 0:a :qtty11 0:a :qtty12 0:a :qtty13 0:a :qtty14 0:a :qtty15 0:a :qtty16 0:a :mtty1 0:a :mtty2 0:a :mtty3 0:a :mtty4 0:a :mtty5 0:a :mtty6 0:a :mtty7 nf"!"n}2>F ~(2} 22͂ ~2:V(2^V$(H%R0 :!:NF SN(,2}2:7(n f ^{2r6k6̀ 8,>2!"͛ 884  y 66F ~w!f V(F  n&N()+NF :f V <<^Vu t srzSDt ~TDt |DDt xSCt(LCt(SBt(lBt( *~#~crogen.binScrolib.relRdefault.biniolib.reltime; time -s ty /etc/startup.msg if -r /etc/.warning ty /etc/.warning ren /etc/warning /etc/.warning >*/dev/null les which contain drivers (E = End) ? -s!:L!͖ ny ! ! !?ͤ ( e #~(!ut###> 0+}(2X!F*Q!ͤ (e #~(+ut!ut####"Q User supplied block drivers (Y = Yes, N = No) ? Enter driver entry point (blank = none, E = End) %7d - Enter names of rel files which contain drivers (E = End) ? -s!ͤ "S~!8#6#"O>  Automatic login name ? !"U!c͖ (ny !͖ (n( y !"U!@ 84!\!}!\ 8!\~(͗ fncromix.sys! !qpu t s r 66^V n f e~(7!N(75 (k \8!:\+}::!FN 0Oͱ G~ͱ # A[  . 5 k!  O6@(4~= XsS A66{2>2D4>͛w ${_1:n :tty1 0:a :tty2 0:a :tty3 0:a :tty4 0:a :tty5 0:a :tty6 0:a :tty7 0:a :tty8 0:a :tty9 1:n :qtty1 0:a :qtty2 0:a :qtty3 0:a :qtty4 0:a :qtty5 0:a :qtty6 0:a :qtty7 0:a :qtty8 0:a :qtty9 0:a :qtty10 0:a :qtty11 0:a :qtty12 0:a :qtty13 0:a :qtty14 0:a :qtty15 0:a :qtty16 0:a :mtty1 0:a :mtty2 0:a :mtty3 0:a :mtty4 0:a :mtty5 0:a :mtty6 0:a :mtty7 {! < = ( (MM( ( M&M                        >C( = z {?>70BB0 =  Ru(t)!K>utsrqp!  DM= !u*t+s,r-^(V)V^fnu.t/s0r1u2t3s4r5s6r7n*f+^,V-z1 {0 |/ }.0uMlcZ*8m n.f/^0V1N*F+BN,F-Bz R0%(FL|.^#V#bkW%%+}<2KbK >2L"M*? "O! "Q! !\! > 2W!S !! >2X+͆A !F Character device drivers Block de !ͤ >(e8z }(02V= !Jͤ >(*e8z }! ͤ >(e8z }02U Default root device (Y = Yes, N = No) ? Boot disk (Y = Yes, N = No) ? Major device number (1 = Floppy, 2 = Hard disk) <2> ? Minor device number (0 = hd0, 1 = hd1, 2 = hd2) <0> ? Minor device number (0 = fda 4 = sfda) (1 = fdb 5 = sfdb) (2 = fdc 6 = sfdc) (3 = fdd 7 = sfdd) <0> ? ! Y! ͤ ( ; 8!Y[ [ [ՑTSӠudU%4UMI 9RUSRSIZTԕ d%Td4H UM%jBUFTBLSӕ d4%9=Q 2FILCNTSVddD$59Q 9RMNTSIZS d$t4HIM%jARGTBLӕ d441 -Q 2CPUTYPEG@:*Jztt|*!*GH2Jt**!&GI22rt!*)GJ22dt$'*GL2JrzJt$'!&GM22Jbrt#$)GN22Jbdt&*!*GP2jrJu&**!&GQ2 :ru  #GR2 :du<&!*GT2bZJuH&!!&GU:ʂ, He"y4X#n F"eΧ3H GS00 &xI Ɠa@ , '#8P 3X@& *(0[O~(# :  (#!: ~# cromix.sysk ͥ͊ ͽ ͙ ͡ 3[͚ͫ :Xo&##)[ ":W_"! >CONFIG> [> >͈>! nf|ȗ ! nf|^V> + $bdevtabcdevtabrootdevlognamacctabl!W:U:V*S!Yroot:X!l:W!\_͍C^Vz(͍##{z![ :Xͳ!\[:WGnf|( >##~ (>_~ ((# J!t( dM"`8~k BUGA gaʡC~O0 EMA#SpF膗3@p=  [9 FsnP1v<|Zmv>g`Ka0L&?56 0P9y fՐ@L& mhR<!;!.jeY*mӘAr@p AhFtl2EVd0#Fm:̮SFE@,0FÂm }pV 2Yp#j@m/ڀVmd@MNf MA"huADcap<@H0!kD h(n:NB@H BI$D"HI$H @!"@ @@A@D!@ $ @@ @HH$HD@@@ ((( (*/өt#MG阊ͤ /+uRmm[0h: q,x27l gp, 0p, 6mt8RC`Ԁ:D H~ /+DB@]b&LgBA gto3Myc sI\b4ai7,Xh88P<&j[V@ 4h\He; V+L~簁a h8 j k 4^& ; 22 `K$b\0Y >C  ? Y SY SY S8~?~( #.(+(B! ~ ## +~W{_7rewa-*Oͤ "O[O*R8~( ( (#6#"O~B' 8 Y< 8 YS  Y_  Yj 8 Y 8 Y 8 N 8 N 8 N 8 N 8 N 8 N 1 - Console (Tuart) 2 - Console (Quadart) 3 - System 4 - Timer 5 - Parallel printer 6 - Typewriter printer 7 - Serial printer (Tuart) 8 - IOP memory 9 - Serial printer (Quadart)10 - SDI11 - Tape12 - NetworJʈ(I :)(I J*H(I 8SU DH%91%9OUTLINEURSeEEUHQQeMQRPIDENT`eu%E$II5MDSKTYPG@"JrJt$&$"gzbJr,v*,GkzvD*, GZ@rJ"*rt'')",W򺒢|w")&q"Zʄ1 ͯ#xpCJpCe@ Q ^4#N@ 6hXm*n ӐEZ@Y! 3L0f@n8fp D0fa"t !I`@d4`P^e:3t:3is.fN1ya9mx~#B_8R y_~͚# 7t_7txF{z> O (t:2:=2:G:2Ha{_!8x2!"!">27config.rel͈:G :*w#"*#"R !"!">2![z:Gnf~- ##!"c*c|( ~#(B(<DM<++~Bh ͦ8 !7Illegal number: "%s" ! 8$%%%%oh 7B0:8 ag?'0! +8(io9Fy@d2&3(u6!Ѐh2 X 4"b, !@2c!@= 1 "cD!`d24s3 "h,Cz 31 d24"Si7Bt cI 7M#)t KlD6(#b'X+T!@ #bݫrCzY8Cb(<*83c$^e:ӡ9Fb[^ͬ 0f03k`Ś0Z.녒uhhR(ThLFmgPEp;m`0 (nU;7m|faX0fPax@|[f| DPb1<<9KuoØdjvC6k6LWݧ2Px $@ys2M`$$I$@ $BBI@"I BHDD$ AI $$ @GE@2** $t")"!v:**Jtw!'@<8r( 0rYp>Z.K~\!2(ؠ ,ژ8Z,Kd\Vn\Y@a  @u7N荺#??B[(?B`0f۰(X# 5 ( ӨtDma nPȬ0‰bP@nY.VtnU;gPE\p\V+T#B3##6- %?X͠#v $ g3PS et5$X]!=QQfWHOUSRU`utDX]!=U%WHOGIDUetUH]!= 1JACCUPDG@2Bz,t+'*,N2Bzu' "\:BzJj,u`+'GW2Bz:J$uk(E = End, Y = Yes, N = No) Must be present (Y = Yes, N = No)a 8 Yr 8 Y 1 - Floppy disk 2 - Hard disk tuttyiodevsysdevfdctimertulptprtyptuslptiomemiodevsdiiotapec_net fdccbhdccb " *Q!q ut!t ut66* !9 !G  L Creating %s /bin/blink.binblink-nq-bconfigcrolib-siolib.sysV \ ` c j 4 *Mnf|Ta1 @r2Le9 LFy  e yn㙼e!/13yS^i7Άpͦ@@N1ys:NGC/7M E8 ~ rXLrܢn de"y4XSi73e6So7\% y9L惠Pc#X G1 o6M3x@I7hp>mK0ʒ0 LTN tm0ͻAHt1·C-0'@d#C@͵bZv2@&xpnrhCbٶ 8 hh6ށL&A5> l6 h1n?LVmK 0 ܢv"+62^ʓY"lڊͷ%%% J5 0:?0Ʌo$~# A[ i:@#) (v2&c "Nf 2F@D2S JdFXJl2 3ɰ@% Lr3`e1X ) 'A`2<A@h(i9Sr9Cv L)X 7΂dBNKFREEPPTt44h5511>MEMFREEQSRSU tT$xM !SLEEPSQK`uD4Ĕ8]%RWAKEUPy:  rZv'%&'w:rZ2*,uX)"g@zj B ux&'xj*j2*,t$$GS:j*jb ?@ABCDEFGHIJKLMNOPQR &8 N"{u +[ftFDa6ڂMPͼm(yn\,{%n@膏O(3l#tn-Ә0G= ۫ N@nO ͻ6 ۧ u ] _n,6{> m[ tFm E"(@P?_~.tFDaQ aWحW(Fk(@ 0ڸpX,+UrJF< )< v- $uy 47dAi@Հ 0X 00/}0Z.ɖ'M ! .2STQ/]1I5UB3STP#>YUMI 9R3TԔV>`YUMIQ 22\T#< U#5ppAypn Ӑ 0nz@`,N ۬ @" @n-Ұh6zYL tn@e^/+EQdY`"ajA"#vC4z@~!M' E0 I&HP2NE&NPR"&  '#)o9@4K"NFSr< l6.pi:,@t4+!LI#t7HM(Le2@t0Pp2a6@\I*I Dyt<FKXzY|pjo)N(84 ni[ W!yBd@p@dC#`n%f-p1fݥ"!4Ntn.땢 V Ә1rF9D444U8$GETDATE4UDDH$GETTIME4UED($GETUSEE4UEU4XH$GETGROE4UDu$h$GETPRIE4UE$Ɉ$GETPRODT%$UPDATEDTH( $DIVDEdU%4H $BOOTD4($MOUNTrETT8 $WAITDUHh$FSHELLE4Tʈ $FORKDdUT8ʨ $EXECU44TH$SIGNALD$SLEEPD$($PAUSEҀu4t4T4Ϙ$PRINTF5U5CURBANKu5tDd̀KERNELuU5$UEU(USLOAD1uU4C(USSTOR2D4$UNLOCKSTTRD4-Ma%Rjjh)@ -dd# [S*9A7Pn@ 6 P:;(i,[[`63NY,n6D:ۧpK6G@*b**t0 $)"TzJjbJt+GQ@2 Z*Wy^+ ӨtSu s7Yb`ٶXF#?\- p>.һN@.%WyXV땺*@[@=su|1@n f,@nl,~C/+>d nZ,yl25H<ߢ:@WAX( ?OX?~Ly] xr_@@e  r\'ZK@`-R2 D3/eGH8DU"" 2"4D$6D `6€Z,dp\.qPEA:P'n_PCejA @h ۊ ۘUYPWpEU*`.QT"&Gm@bzzZt 'G]jJr4w*"&i2"*v!#GNBbj-XV1 jp, 0p, 6hͮ, gmH mfp 0z@` <. '@1naB0)n-fmfӠ En?L6D:ٶp n 0FFho`q 6ـ  mCB_7^?Jmk Ax$pn][`<0ڴ ۊ`aڀmn )۬ X0Ы`\Q0 j\-ӈ p7N`V  Ѱ Ѱ( ѰX ѰrD#eu7Nq nEMӠ g7N!00 nB0pFt"nIAI%>2>Uc$@Y-I923RSѓ<@5%= 9R3RS=5%=A=N3TQPT9] UI5=9R3&TP1U1 =1R2 ГQc! =QMR2 ГVc=Q=A &3 T#>Q=AM%i3TQ 1=UMMQ=H2 ВԒUc(} -1=2* ВԌgTS u544UMII=JSPSAVEQԑU&`1hJIQ hi(H9izZV6^V!laUrET$7tٴ&nh{D6+ ӹ!`|2^K1ALC\VlET"_#pݺ* jnҳNcNVCFhg E6[#pZ,h=pwp[t>)#0j7`h`2+N"ۦct ۧPct ʅ땂v &b5nÅu?NHmPVt*nip6˂6hfpW+yAF!# 7)q%FpY-R#qϋQ@j@L>`@ hCvhpl pj5Mհj `\PAh0U `G0gcq$Js f) 1ͦ N` m6MAtSqt  Nb PZc Ni/1M.1Ml6#I^ͦAx\b4ͦ@@DDS (i jQ`\ih*<i qZWꈪjhq hhq j@Ȩi "3kE [ @F,Bf2àB+64D40i`,[ӛr|[ ! 87`7Yb0 GT`)a3@8ʹ?Lg."  E$ q8t%nVvx@Ht1g3 :@7NC߀Xv ڰdOQ e 0DRFINDdd$THINRELEARDUH`BNKALLOt$e$TXUSPdU$TKSLOCKt44TH΀KSBANKTdxIOCNTЀT8PIOPOSd$tDxLOCKeT4TS U4T1==-UBDOCMDRSQTDU$ IIJCOFFTD55E)04tpfmӨt),fHwnp@07Y`%3uGc6- %N(P,_,n0A%XF9ۧ Bė+4f!@ =-Өt@/ tn-Ѱ,r[Pct c`:@{ts'[p %Ne ,N`9Oh$#Sؠ @Y.WX@uMP(C` ϋQ i8@! d?L2KD %3ɸa< # ̆Su6`JIQ* jQP.hɩjQjjSРDt)ht#'K@ct rY`uO7Y`3t*nl9!Kt&n4u@ na@YE@[GW\!-ӨtD D 0nEUPN) ʐ#+:@/f!UnM02:A 6jb5E"H3iX6 9w@xP ;E7`jRϬ}x[3t'nE Ӡ0y x[Ct)fT3 `uk / Ox T.Y`F3h0,<0`\+z[ۦ tn'tj0@)>t[EXVJaH&9[ H@b3E[.>ϊvx8nz5\+!>-YVF T.h#/p foxʹP f0ȁ#fRP<@x@uc2_>-YW@y[ XP fCO"ý-Ѡa 3ϋQ@Qy[Ũ3ȭ@9Y,tl?M'|Zh.Db6mlRP'F6>7`Fh8bStg[a M'|Z!7.h %oG3͐7pI&aa6 SirBSb\m 'L r jq`@ S~gŨR~ g@ _7Ff` `H?"!D#SC誈Ɋ<c)H1<`)ʩɉq 6)Ɉ0*)q*ʪjH(8i(1@.c}iI*ȱ`>( 1<8STS rDDUh !-Z$MAKDIRUTrE4UDD(MQR$CSTAT`rD445D N$CACCESUU rE4UDDHQQ%6$SETTIMUT`rE4UEU4XQI>$SETGROU`rE4UE$QAI>$MEMORYTU`RDTH%Y$VERSIOI&@H?i h`Ht誈*QڀHĈj*0Hi j1.H@B0bLc71 m6M@P@P$3eidC@ ģcju(fu QJ66EQ FQ@%1e6@+U? YN7x]pc =AMQUB2T##UMIQ 22<TԔV6= -1=3ВQ #`UMI 9R3U ̣/%YpUUS TU%$(AUQMQJPRACCESSQ`u%5DX Y %:OPSETUPT uDU5DU48MQMBADARGCTT&@Q0* jQh J)pjI)P jhhq I :<.rEYdP\YDPܦY$P\YPz7VV@(7dnA7`)dvH͠Mhͥ Lml1_C ~O0-G-mf6H/Ngn#;\ r}-"> HeL#ݒr1 :ڢ`m@ ?enjxSA0f@0AbX&m 8{pJx>|>:wn#w|--> Pel#ݒy߰6m<n ӓnnҰ/`;%^7JKtn,%w3 7OF D7 u@LͣPnJl OA)#tn 9-Ә!rO"ͣӛr|-)V[ct dKXn ҳ`hVJy[DȆ3jH!Cf0 wO;!^7J`iZP04N;BA1A.SJNK'7YxFVKN(ade**zg&))F}@2f "$& ozzbz*SPS EEX IQDELETESSQ`4D(5-%JPCMDTU&1XjH* H)pɨ)h*Q Jh0n?L3P~ߢ73OV@80np"7M¦V D0 X̤ [%wQrDo~'Ũ 3#<t3japY.W땚?Do~'Ũ6@49ܢnq] w~O0 d?KGX zYxpg?A!~g/J7t @~T#+ ݥ;N?tn Ba`H6sa`#mӨt7N6nm0ۣ@~@jsuh^.* NVWy\ t[ Ѩ nLCպ5 0 Og?‱xFV i8 tnݴ9BRh^.*>)ۮ %⭠/ar\P%Ѐy]D"Ybʽ#g_l8 v!4 ev%ef+` ٠@*!R@ #I.xݥ!>-DQ e U0- T1b xsnŒj[Rꄁݤ*`-Uv<,EvY@SeYYHP=B@eC*4!$t88 CVBINuDtU(8TESTESCTD4H INBUFTDU$HBRDERRUHSKPSPԕ54UECHOLN΀e54xȨCMPSTRTU%$)QSSӠdDT鬀 t" K@5l^7J¶hf ӨtM'|Zp 5l HP8fxp=?B8MӐɺslԼ` H!誈*>H誊)p>H誊h`NHD誈IנNH誊 I1NH誊 IH䊪*߀JH *ȑ^H'I[EAPn7"~/ӐqsNA6h'@fc @ |@ml2(7 ߧ;YO.PL,pv) qVh{%ٶXnzld ڲ~.`;> p -Uv~0q 7N7 3ۧPtnհ\@ nBӀ]u 7N4d Vfmd@~/p)fb@rpD1)Jc)Lrܦ)Ph0˅> S{49MNS! ڮ0˅%g1h`22 F#(dd F# J0BQ3J0Q:FA0 Fqb&NDȚa ;F j-%nMӐ-9 k%s7N@Ktn vIۧ#ul03P8 Ӹinn0uu|7N%3@K6N9'ݒtnmӫt|E@tn+vKtn݀TQ%1~D,;#'@I==QZ3 БTU#?@YI%92Uc }Q1B2,SPQ##}%9I12~SSQ>@%9UAR2Sc4@U9AUQF38SU#YIM%=:3T#1%=13RSӕ#0`%=1=2TQPT)} UI5=9R2TVc8 } UI!=UJ3TRSc9 } UIM >2 TԑPQ#?=UM]I%Q3zPP#`} 1=%:2Uc) -I%Y3 US Mū!n\# ;>-DFT3 !1!` ` <6dm˾@3ϋQ@;Y-ѰtJ3ƍՀDl@ ERRORt4UEU̸OPTESTt$D$t9PS $h=Q>REPEATTQ e$UtH] 5KILLQT U$( 5ANkI(p*H*Հ\H)ȑi)0& I)Q(-~OҰ e@E m4 ҜP0f bO ~ū*3̀@3OV@ ;_n3OVU4 m7Cf>7`~祛*3hpۧ 0B3l+4@plA7' |lpe_snhY,V~YpZ,KYhI*j<]ɊH(>QF5,[t*nl3tg.V)sDg@k u|2\,WCHr#sL+T4Bb58pc6 5=YMQJ2S%9 t()@8Q ( 5 gߢt=_GAmx^?Ju;£# 'C +C 7C 3CLrM:@[p[/pf]6h~O0͚:nV%q|`rMYP_~.W3ܯpf[-W(,؄$Cq Y ~9B(~/pFH,`P %f1kDcӭ13k`P` K`2$@P$3e @G$y #H@tfmd\@ `5`_l `6ڀs@n 70`pL-/Ұ)^ ~ ߥ`x`+"ߥ`+~ӫt|NodJ'x&?KgX?KGX ?\\\ \ Jx:vKtnlH f@$ fߐ63h %A[p!FM͢-9ͥLb_Ax|,G DfҐnpY xY@{@Vd [+xoV ہ[&ml?N@f& ~ml?OR&~̖ml?OR&~ml?OR&~  E8. 0ml?\K3@%~ !@%Y3 U M1@y!13& U'S`rDDTUDX IQ$OPENT bD44Xa !$TRUNCIT`bDdĔ 1%9.FLCLOSEÂG]""*b*,v!""@)"z*twx!"*GA@q"bz,u "!#V"rvd($"}@"2bJr\td!$%Hz2bbz, f m f +Uys6ZVp~O0.``&7Yͧ{~Ө!tMg:@[~Ө1tO0w2"~0Yn NF 9 ;-8[(3o4ͭ#W ~/ `[`00@ @8cq~&7 Yg@%3ipfMy -1=BKLOAD2ВԌ`t$5D#(%9RSUBINTTU `IꈈjH1Ψ i+H`)ʊIܪʪhOLʪjH(]i(1_ejjF1ʏeIh͏܄OIjH(ͯ`Ii(1ǏeIjjF1ʿeP()ʑ *IꪊR+U`h~ #[ 0ق#ApEg!Y'M u6XsbDgp &3 ВSU#3`}I==QZ3<S:=Y 1=M2 S##@Q1B3ёUc&`%9I2, SSPc4 }%911=3Sc0 y%91= .3&SS99 11Z2~RUT#(%1 9R2 SV'%1Q 23T#/} ! .3lUc)Y!1pSRSrE$DĔX]I1%9$RDBYTEԐU`bE$E4U]IMF$GETMODUS rDtUE8MQA=NFLREADѓԒU`e$THAA]I%QjH)ȱHHK*HĊHh1ѐ Hn誉֠HX誊 q`.HzɊH(~ H(߀-@E ,p b($UvگE!"&tOm!@8Z- E@v/ij[-W( ohl;OmWel Ep> 7OF)W<0^oV+Uz\q@=nu7!ac,p ,p "@, l\iͪ4_@2"iO8Z- Esh VU BȉAô6\-!pX/? qOvgyi ? qOvg#+ -2}[#:?һ -2}[#:?һ g!Y@<0\Ld"FRz:B*\fT&FSr ,dFv r\d#& LrZ*r*de` "$& K@rRjBdTP dE$dHIQ&DRSEARCUPe4u4THXUSPԔdxX IOCNTT8(CURTIMEeU4dISUU tdtUDdQ !FGETBUFёU`tdtUDUi t##&(GE:2:*B t#!*G~:2:*b,uH#&"K@\~Ұpb7hZpFcT!łX Y.QTv`,eaXqfa[0!"!5n7Lp˭ndO0X0qN@`ͯ` +UŒ,$Č,$2l,vM=,ւ)=,ւ6K1@E}@Ϳ \BmJwRjwRwROwRpX,X ox2עW-xx2aVK~_#C`2+<~j Y|P+~n_ E8+Hx> $r\ 4~X+tnV녺p7N!,8r\,F?I~CpV% >X#0r\,8u\+Unp}N?HVh͹@O+upX,+u?\w@9nOdn0n7LvhD8[D8 #yDQn۶8?H8: ~ӈukۮVueV녚7\-In(F'땺~Y[\,HD tD7DR@ bEUD|Z.04Qu( @ *ZAHkd--! * ఀ}~ D:`90~BkEd"Mb\`i|Uz8Z, f 3hP%hpfFlp) %n&+~ 87`ij( 3@pFl ?\,J'`K ~lpf j\1VO@f~O0 * pnhZ+ ~p r\pfEV0c[`P00_%68?@f`:V+UrP/`Kt nc? H{~)ڮ B 7‿O0 C\\e €;svy> ߮ E0 p,۾~[ 66 O|Ct 63 ۨ8-m[ 0fEU$v@_|X@>Wq@Dp~ӘUt ?Nvm  %ۮ Eb\Xͯ@PKr@ z~ G, _฀B!V<E$/ӨQt Ng.ͮ-ԑPU&@ H誈1@HjH*+uD3ijπ>ٶl`qfp՜@m;g@!/`;U3o8YPhY< f ~CmLn\,۔826̀ r\ 4~CmOn_+uY Pfn[mfud VurV8$#ۦtf-v|o@@ ߫0~ʹC;֗f FmmS@| un[P >7W_F0n\,ێͳ@N nͳ u`\!rmt f4f4@!_A$$7`L_@E*ű@?:q`ڔ{mP f :~oӠu\/+6߀hͻ !6?\.j_W8#DxR/`8epJx3fZ@/lN0@r?N`:٠rm 0fذmBfݐj@Y(pX,B ?F 4@hͻ ,rFPtnr9FwN &3 ВS69 I3БU#6= I138БԒU#:= 5=%3XБSSVc9=%95=%2HT#/5%=12RSTTSt$D$Tt =QMRBOTSIZEQ`uDDU5HQ=AM%iIPAGES eU4dHUM=Q>USRETURTԑPQ uU5u$DXUM1=USLOAD2TԌ`uU55D#( -=Q>BKCALLԑPQ t$u$DXLg#)""g2 JeT#&$FQzz"*fX#!*Fx@Jr* $f )""ZA:Jrjz"J4e| &'CA:Jrzre!'M2Jrbz\e`*&'zbfd $!wj* g ( "FMg\&#mjJzrf'n*Jzzd"Szzbz*eH'FUzJ"J:JSSS bDTHU95=U:MTGETFSUPTtE$T t&*Gm@9"rjztu0##)B@zj* u( "K@#ulXoí~0qN@ | Kb60[Eq!ͩ/|YXpP~0u7N 3ۧPtnӐq7Nvm n )rYr\,o ^~_C ~O0-pmY@p f6,~ fmf f&mdZ fp0xͦa@ fp0ͦa Pfp6n_Venpq?N#;녂fp&!n_C ~O0-y#67`+tn͡lvѰH?XG"hhtr[??[w8͡6_땢:@k ~Hǫ͠/ śY@Y `66``Kf߀1)P0 | _[B,ڲ~ ^7d?I7`[6 6+UP0!+It ~$* zpAhc`LX7F0 `[P0~,7Vő@42{0Ij43Lo 43Lo43Lo+43Lo;43LoK43Lo[43Lok43Lo{43LoЋ4 3LoЛ|iUPuEZd>UTa i]rOFX-2bݤ"!5p>-2@m2@;Jd |_³+0ǢD:ݤ[!nʜyNmWL1? ;OmW 3>*"  gYba;O"g9Mo9 @Q O)fia:Bu4@P%~1HҹzZPCPC4!!Lvp1f@USHBX, 7O(@a$pX,n7L@b\3UK@ ~0Yn bAϯͼ-+{Y0[iNHP@7`k6\-K4l?MG /`;tn-ӛr},ڲ~ P7d?Y`?y\//s#>-DDS CU'`(%N?Hw[`Cb_C ~O0-8X#cF ?IpK~i)f}RӨtN`gd\,7W1_u|-@ n0B/3i@fa>3jͫ@ ~s ھpP@RNj0 U6̀ vox  U4 W0+dHW P:>KX\`uāP;^o@xwQJT N*%cƂY`KV l-!Tk7r7㩴e9F h0S`u6 PoL&Ȁi6Nbyn!i9#ys9f e6 p2Sq@o3 ƓaD4bH 2Fo7 q@f4 1e7 h2gm&(o: Ȁ$ S9 3MQm2+~'Ũ~AӠ$DaC~0n?L6hfL8 ۧ1Ct)n gɌtd44XBNKFREEt44h MEMFREE4TUXSGINHEReU5$4HͰUSRSIZǀeU5%D$H USPd$uDPROCIDeU4dHHUSREADU5u$DXȐUSLOAD2d4U(AVALLOCQӐS rE4t-%12$SLEEPST`bEU4XMM9SGTTYSISTu4t4T41I5>ALARMUPSTP&@QאHi)HĈ)*IҐ,Hhhȑ@h)Q0)*Iڀ.1)*IivZ| RDd$a$EXECE" Jt"$Gwy"2B*bdtX )"&GQ@"2z\u#""l)"**B3@h4~,@nilv,@~ t>?W_W 0n0|_DC|`6T3j K0hfӀ՚ ӈqNvrM:Q@:>[ f vK:٠Uf mnl3i>͢ ӈqNvrEVD3@0j\,^np ~mӨ!tL:@x3@t;D@<.26Ԁ 麆٠B2t:a +U3@?\w|&h8-@ͷ!;_DCu|D/`DH*I*oHɩ(|HɊiP-n@h0D 4p,na@d@C 8[PSt nӐ5#`(nb\+tT;7Y`C08e €cu{7\m :#Y3l t2m7\.r\UFT;S $@na@9=+Y!uk3kh0x]G6n\-X"Y- ŒeXe̖,fP fS`t4UDdYt|()$*#G@2ʚ*w!GDzzJrLt#&*@V~G~AL`Y)qfy+:ߢ 6^Vfp!Pu Evmpyo8` 2,d 6mqˮ69`hٷ ,mF3o8{ ᠚P^0aueg ͸(0\;2 E6Y.vODwLwpX|7* ( Ϳ #4[@q XNdZQPL"*! TxXW+ur.! wiI*`*wiHb p\.ͷ.Vmrͷ.Vmrh;x @=FfQ#,( EśxU t$u4tUHIMAURBUFALLOЕQQ`u$44XAI IRPRFORKQ`ttUD%TdhI1M UjH*Hh誑`.J) Hih HIqK誈J-b\+6 "hCjk Rڰn HnP:@UBnCӠ}N~?Hhr@`0 n,?LŖ԰:OQ@24nۢ7#9hY,VRtB?E@#YbrOK1InC|pPvd n\'ūhXݒf XS`z\+7Mņ防~OV DacpX/Kr\p Ұ^t7"q 0fSb6PcI 7΂ e9&#aF4  e0")s:CI 9 &3(x4N3"Nfr2Ά@s8LfQh0NgC)@(4C)R*iy&)@o8MAo2DC e &aa6gm&`i6DCy@b4Cy@m0"!i1Nbin:Lq 0 t7(!e1 #Ȁi6Pi6LS y9 l6 o: 2NƓF4 t2D#'΂yi7NGl2SeAu7 D8 83)e9i: l6 SiyM"NƓ!@o;NFca'3e6 GS1r9 'c a1  6NgAo&pPoLpP,>-Dx +OOD@=Wݺ^7JSP =?WQ_x+OK1@@_DC|A%f0[[en<ѻ$# `u0 II8FFg&8>V 4nX+E@4j ,V+Vp6Z,=PpY,V~Yi!n$?LĖYP.` gp ө!t$DmF HT@~[ Eyij(ifuznb!mVL`!|,%3@ oU]C3nnY,Jͣ#p|5*$!R@ z)АeEEW"DT ͣ - %l 8EW<n7L:>Y6T gm nͻ ml3o>ͷ Ѱ @/+Uz@ 6?\ òMW녛D-ml3o n7`Unptn-sfulKfѰ&녢8l6-, W녛P,W:Ah=,F'` /,Pb5MӘr@ uM|Z:@oFt7N"fN9!Ku [7MZAuZB>ۮ[* R0; ? pyf>-X Ͱ ,ښfmMd{:zz"*fX"+)"+FKjb**ed+F}@22rd!*)F|22de!*#"B*bzbd)"FZz Jr*d &'Pt$8 -IBKDELETВSfQIhHIk6tnWV?K,F ?\2+ ~/ fZ`0Ofm6`6aB?N:Ffа 5XW+[tnڰf[Yd<_녒r\887\B3kXtnWߧ 1ZV땚?\pnҰBV pX/Ѱp@ ڲ~, Y$P p ÷6 Q@v >TT?h)mlDK6?DoP|>fc&003Yn6DoDl-@|CmYE(oFBeal͖[zb^g>3@ @6(r 4qi`0^0afZ!e["X ,GרyluC@ߢ7荖A0ͼJq@:# e<) }0f`t*nmѰ Wb\荺#9녢d[Wi]nt.n6o+u7N qW87 +|zYpfNg7`~pfeaf('opFDg~#Xj xXpf_P>?BFx +٠ ~@Ӡ0~Z/ ftnx9_PzY WN?H&Ȁi7hIe3Mak@!i1DCe9 o1Ng1b6Nb i6LF(a2a'΂n2ΆS e;LfQe7 #"NFSr< &e@&(nNfT8 6N3Bh0S`c1Ng1r7y@aFi 2NfdFS(i9# @i7̆Qm1N@dȀi6D3e6 #ys9 o: r:Lt2D3 (NQr7)@l7fS e0 L7bl2 As:LeEr7a`0F9m&q 9Me9 Cr7M'e!F@@:zJrLe#&*O:bz !TREtHa%R$FSHELLS u o7NFЊͦ B n"7LV:>[b 6"x0}^lb/b+tDnӛr|i*@,0b\(Z`!#EW鸈3OQ@[KwiH`өt"8 r_y{yh7inbAt Wc;Kt* ?\.Hi(t)h09i(H,ʪjJi+Q ,)*j&WhIȩ`ji(Qe8QTd$e$TH Q 2BFRELEAБԒU`t$du$H ]I%RBFMODIFБTU t$ddU4 U55fkFHH(ހMHH1 pu4,NA>:Q e u~Yfz~"G _p0z~ G& _> ߮K~\!20ڰpX,+UrNAG*:PfZ oӐysNB'`*]n^Ұ^Lz Ѱ ѰzYs`{6lDn^#P@f d\+=zhzͶ tnW,xگWX/_`=,֋Q@%S/ 6π@e Vmxd|@r2* $g4##!&FJ2*b* g# $FEz2"Jgl&$FGzj:*2e*$RS`d$TH%9I1INMODIFSSdH%9 =U9RINFLUSHS%|Z@=D jEW"@X},hd@r? +6Kjģ@#`Œ=,Gil TdOK1)* /AV@mp\0 fmM?j+OQ@pY#0*v+nDoX ( ?O0@ <0X7a#˘Onհ@eEg"k~հABctn _X?+@ͺn7LP>?W_Dw\ABߧ#q@ | \. %Wy\+tn-p f_9[tn 0pN`'pZ.%Wy\p fN&r[0tr\-+u?N:@}ZV3[V[J_S /]X BT[ _@"|Z _PjK`2 OP: X(y~Bj(਀}~p_C|OQ@0_DC|CWil~Z!Q*@]|/@>-E|@5]hD #d[W 6Gx +ߢ~/p~%#~_@[Y p\-KU; K3tj\'WbXmݢb\+eX ?IG 7`;fA-rY-߮`ZV~Yn_hBh}n[FfA1u~h/ H;E@tnbu 7NV8:DXu7NqnE ӠBwiy;Kt*Cs?N@w9D ~oӨt@!?8n) #XLlv, !`,6"àWC+u-Өt@:8|EXpD:P  l "F~DXE@ Gl#;J@@ O "7D;auC$ 2 OJ1n[0tnMӐ 6`(7`;4pb@Heaf( cCͪp_f`aɗ`@Z$DUeD((CDEVTABu$DDUhDVMOUNTHCALLDVtTԔH0USRTBLdED$ϸARGCNTuDDU5HAVINSERj` 0~fheX(?Y`Dsp@ &2PQ#$ = I12jБTU#' 1UM"2БSSVc'`%91UM"2dSTU#29 11Z3TQT#5`9]-UB2T#(=M]%Q13TSQc+= -I%YpUSU`RD4U91= .LOCKSt44T4 1=%:AVREMOVUSTtd8 !I%YBKDRIVEUS MtTDDH%YDIVD16Q`dTQ=UAAJTOLOWERTTTt4tU(%M%%RSWITCHTde5E( =9 RENDSTRS@q H䊩ɉiqyʩɉiq (i)0.*)hQ.iI*ȱ ong number of arguments default default Can't modify this CROMIX z( (#z 7 ( #7TU t44X%91= .INUNLOC@2Jr* $wX)""}:Jrjz"J4u &'_A2JrJrJwt !*GW@Jr2bDv *" GJzJrbz,w$&'DzJrrbzrjH(xn!庾 [0Be€sug9[W 4p%4ـ0)jK`t2 (fpaBeѰ$ͯ@ +pY-Vn_,VbTPF땢ͣCUf`rY tnӨtY`uO3@,FCyph nZ,j @~_V! n^,,dY`3c2C9rYtY`3'2B9~\,dXW+[XD(?IG 7B0f0%An! Xqead@@=GX 7ea&XUV` ! AH@u,ڼk,ڮc(S{@HtjAAl?cK/ͪ`c6 ?dͩgާtZS6Lڌ`LFv!W- $#[l# ˅jkq6ͶmK58dcz"* f"* Fb@zzz"*e"F_r Z*g&!*FHrbZJgx&!!&Fv@ZeH*"NUP`u54$H%9%QUMBUSPTSt5U%$M]%Q1KERNELUd44-M =U9RKSBANKTԕP t%TeD$%9=Q 2FILTABLSP t4D$IQ 2A,$rC/Ӡ u\/E~O70 @fp녺 *_d\ 8Ϗ4@>WV8 nj,xKX w녒j_WD 0 6;Vj@ % uPj`_Vmg _`|+\,ʸBKDELETd$e$TH'BFRELEAt$du$HȘ'BFDWRITt45D$`/MTGETFS4TUWAKEUPU5$4H̸USRSIZU5%D$8INOCNT4 INOTBLd4H FILSIZdD$ MNTCNTE4MNTTBLU5HAVITABLt5U%DXLBOLTte$Th`AVINSERtd9UP`dEdTY 1=MDVMOUNTSS`dEe$Eu(Y 12k^dDdCiUeD((CDEVTABu$DDUhDVMOUNTHCALLDVtTԔH0USRTBLdED$ϸARGCNTuDDU5HAVINSERɪ&.ȉ*ȆfQPW*j Q>e*h(*<i jQ`<ih*<ɈjRm,~:X(9E@ +|f6m[p#H`7`3lPa3W 4 ,OQ p]hgŨd7d9_U~@ӠӸ  ?N0F{,V~0pYb0h' az8Fx WV||1apX,m,~(ꅀ߬P6[|@'=,S\e>jh6XrXl5] B DMͯ++~͵h f8 !7Illegal number: "%s" ! P8$%%%%oh 7͵0:8 ag?'0! ͞8(%%% Jͨ 0:?0Ʌo$~# A[ I@@`;6?"c9B fm~+,f,VbTPFmpX/Kur@U` ^7Jw脼~_l~?V%hѻ?FX/_ef?M6mI0666?Ya͢,۬M3h+tT7KFX 90[t noӐ1s:P':Pp' .+l@?N67`;~C/+""]lQ 8Հ@je p[KUrJ7UB:s|/@~a9~~dJ m\Vl pZ,+U~_-ְ!n#Y`4r\/%4ٕ~@DYX7녢d_P*C^W?WqVBUFFEUUP td$uD%=1IOCNTRST8AI= %CURYEARTSӕ d5U$D UI!=UJCURMINUTPt5U%DX1 =1RCBLISTl#MY@cMeM ==R< SUT# UMB<TS UIAI%>< Uc -I92<U`-M1= .<S#-M 9.= TԕP#݃ UQ 2=(oSP#=%1Q 2UUP#`YIQ<$RSѓ`%= 9R<*RS%=A=N<^Q#  UIeJDefault version 00.01 Copyright (c) 1981 Cromemco, Inc. *B*@++++|(+|nf x2!8mSͰ8gnf8Lnf8@}w#s#nf |(!:G8 ![8 8!F!!!rootWr  :rB!e?D7PN(Ajzz `tl-+tCOۧ(@ OP0L۶ 8?Y`53w3i2dO P۶ 8 ?Y`73W  8, 0u V?m~ #պ~+j ^+ Nx-0IN F#;!€`l0SHB\ (  @r@(VmQF;O7(~NF#7,~NW fրg:_0s۰g:ߣ` n pPͳ#~BӠa=c{C}! lKn>2@ppB0PD A0062SUS"M1 R20 TT*I2 UԒUc!I%Y2 Pԣ(`QI .2 PQ#.@uY12 QK;V0HN?Hm~fa9Xeax +!u?N9/X =%2#6X ~i*8@~mKKO ͩ#k2_"xJd6mN@$6  S0 ͩ[w2_0~o`UY'F~\X0 !xD $- -@ -!4 -!4 .P . /0!4 ()4($@@@A00 APX`` А $@`p@Иd `xT@``H0`  <ѝ,bmɪ&ё<.Ȋhq`<ȊI*<Ȋ!xin bXl6 @ @ g+ͤ`5aQ$exٴ0PpаX2ET "]bK6j360,zAm Fhp`:`{FW1A3⫲" ⫶+WC}.cf:q ^pi@9>#O#r= 7#@r9 winG3ZnVۑi,6 ;;«j!| U7ͮFnFZPen@0>ݣMگiAi|iU>ܭ#4܌U8탈8]jux@]`pT) `iFmpWܡ`'9>#O#r= 7#``8 )]s;nAmSF¹-|`}h6*d~#vuPdC6M|pmp@c2s'Ad ,R%Ӱ6Xeax6ƍ#mc5sF6j4mAKlf>@3khÌ3S6I=4sDʙnLhrhHP!#hT :@c*jcG0@ fp0B '3i 2cʙV,9#pAGT6Y\Pedq@ <= ^2FJ4S06I!.ͭM160 'f@6m i(:@jq@ }<0Y"@uPeq B 1E``AVSR`TD44)Dt"!KA+@vdځ017 4?@h;%hA BY<0ff f]@w0`CWTX! Ufv@2@?! T"0FW0!?Wex,6mYd2 @#%>+M̯^PqnKT,im`T@+d,p[nG3ݦx\mpmvͲ@`m@22 6m@23ݦnG2@ ;m4܌>88eyoKuy ɖ'U t%RT T 1=NBU.GETMЕKUf\Jiq`\yJhYP~g?Gd#S?O;!5O/(|"lz eg[4Sj8L X?O5~0~ӻ3kQTՠTD4it$K@!kr9M`. A@ `TdD44),t"!KA+t h!@&'jNfՐF40, F0l1> h0#4mgq۸_~Ydp\/ӨAtѰ Ѱ@@ ڸͣ@a66,eY ڸálڲn Z[*( tYd "`tܣ+t nm1V\!V)xCr@Y@ xbB@>+t nm1Vx {~Q0  _0He3+ 6 6ف3@śD%.2 <T*Y U2 QT#2`%Y3 U ̣-5U1P3T#?@yII5M3Tԉ#?yMeMIJ2UTc1} T=A:3.ЕK7@} TQ62 ЕKUgSRQdDM1 RREADUԒU`E4TTIiI>PREADԒU`dDt=M.PREPRWԔ TdU%"HII=HCLERROQU`DTHQI .SECTORQTUd%TdhY1LENGTHQdD4]%QeBHDDTYPG@2JrJJ|ut)"GP"* $w$"[A"**\v-"'u* $th (+$"C"j :lv"'wr*wP+()'Gx2*$w")'G@b*|wP)$"uAB* $wX) v*zt#!*#"GɈ +1*%Ȋhj0,Ȋi(:OȈJњ ,Ȋj,RȪJIh]J I``k*hJQ\Jiq\JhddDXM.FDREADԒU ddDT5HU91GETDSKQSV`TdEE$M RFDUNITQ`TdDT UFDCURTQ ddDdyt#"$'F22"**\uD#")"GY22"Jw #""!Gy2"rb$w #")E"*b t"*)%N2"*t#"*$GN2"J",t"&"GO@2"24t#"!*GM2"*$u#"#& @&64Z Q(eMٷ`mvzd+y{M:c ݠ>4ܠirs=nFY> ;%E:qH>0 vvݯW8|\vmfѰw2Em$nYܢ@MNA##i8D extBٷͤ`5,aa0qerA!fFm`3m;63o0&ͽ €䃍Dexٴoٶmٷ@ 24 3ox36274j pa2@僳h;63oH3!HW7(j #+ä`nͼ`TCrƢ2@:Fͣ`⁣6n#B i;uyAdq@|^vKm0nYϭ7ìں ͼ`m/«v0fu7l ?Toۧ(ݒʹ ͆ 0: QPnM0-^7J֫^7JX59Ot.Q! KCt nm1Vx {~Q0&bAϯ >C6‚7Mf"7PD7Y`B0$ P_  Y6B[tl2[`(nnQ%bIpP fpUF z( p]F Il۬"@ghB(m0d2od0Z.KS+"]n8ir K<&^a7Y8F^lL& a0}?W@@bf & -@K n03kX#6B6@#K8(&2@ "f ͦ`.iu}7N9>Y#ݓ9J SPՠTĔ$5i8t$!K@ \r2c)i7`1   f NUU`UEUEEQQ9-fkh1ݐ-(p8@`[l4h!ӨUt ?F1@ NdF1n{٠5X(@4S,tL5_8 v!`dv"s!i"@ >2e4>0KV@/ 4p )DP+՛i/nM`PaٶL|.fœ|9~F[4@Ѭ:g0 =dI&h8 CY0f 5y?,ڒ>/7DrYb'p f8FP`>z['@ ?ׂ:@  `(z ~0D! du}@Ne#4d@K6́PiLYPZeJ@  fͷ#6B"DU ` ;%p\pfpR`'}sV@|~da ~g@ R#|>sQ %WX',Vlqd_3 U;0YD2{6?I hY]VX eB@c" S c*0u6mcn;%3oX>V&m=feFFmf 6mf`6mSnKtl@,Fx,p @,f!e#Au@BB*24w#& vAb*r:Dwl)+")G}"j zlw|+$,GxB""ʄ|i^r78snUx@!mAnG1P ?W|F"=n6K6!> 82`۾ͼ`+>0;6Ȏ`ʈ%dFmf0aɛ@T V+WlUwAWduT@!Dfvm fސalUv @63oH0|!`Q| ^ puxAA@4CtƢ2@W"ٴCtƬ*>;6Tfmf0ff@fmaZ0et!f vQLͲ@l ´`,*㫾Db+*XV"` Ճ6CLͷͽ €6n8@W090vYP0Pp(8C68DT@-0MVmh6MQ:zuPެ8ʠleP#*nS6mhC )ͭ-T@LVvA`#Un@Z-Y0S 2xݒSp1:S6mmipi6іWC160#6b,͠@m, qA0K,:2(|` 21eL씻64ƃnT 2S6"ʠ@lڂ8 12p|` $ Oi meq>0{l Bݶsm U We@nS`5;%@&@6*dL n2jvK6ԀM1lh #lh&tmdD>0{ٴ 0S 72qٴ |S 1 ͫEw61Lh{dh6lۼTM10m〓FVғ-ͤͿ6 yeٷ A3l ;m{܃88:ݐ>3j9`q@x2#`Cr;`3{W|ifd]Pw0G x;O כ4}LWixf 0AEG&mٶp E(P9!atp_q-d\`H  `ek1ԐÀEP(P'@hr X2 ʊ)*`Mꊪji Kꊪɨ*q`[ꊪj@ʊјVʊH(pꊉ(Ɋq`\ꊊI*@ ꊉꪊ ꊊi舱jJ) B舩+)`eEDTQQ%9IfTTREADSU uEDdU8QQ1UM"TTWRITEU`uEDUEXQQ5=TTSMODEЂ@2z*tw *$)",H@2* $u*$ B 7dOi< x7`$mvhfi| \6Cܯ Ob dh0<|$l?N Ә>@d?NHã`c664/ fLfѰ@( ,6d58ʹ i>ZfF-C6 ) *Ȩq0 )誈qphhȑ <i0 8ST`tdT8%=AA=JjD) *Ȩq-= 1{s A0톳=DSgTUe54DUi t)"K@(lQ 2{nSTڝ*ū[N)"[4SOjqBHa3)ȪQ SeYUL e߬@gDPww,BfaR'L ?YbͥOX^d?Yb#sd?B (( ?W1@M ^6ɁmPgOe8 [q;~9, 0}0 p(~FQ(W/Ѡe^)@x_UE5TUU~ (ʊ )ʑꊪ)ȑ航ѓ  I*p舱Ɋi8 dT1A]I%QLPOUTQSU tUEX1A5=LPSMODET&Q C I*, ) `.舱.Ɋi"~d2B~'6~HFK&("s %7/X~(ͤ .d@@~~[c 0}$0 ,fQ f÷~ @e~:7,*|rH68F`!wϏ? PK)<*XCCna<B#dh f`ͨ f@A @h7`5YX[4h,,ê ) )*2)iqB) I*Q) sRSUTDUhYMQIVDEVOPENUtDUdtHYM5=k)航航@航@-,@\@ lp:0 %c`60ma -id_verlpET0IOPINITtT@IOPCLOSt$TH͠IOPWRIT݀ttHΈIOPSMOD5U5 S fհ&CK_>)ݥ!@N> w땢sp8 'C6mqfٰ ;,P`0>;O,K +ݧ %fԠ' `P(>k{6 0G13i(~@Ӡ N ?OU8e4 ;٠$>3lhijklmnopqrstuvwxyz{|}~&) sёSQ`tdD5DYt"!$@(, b,h3@|N@h|i֘|@ȆhdL*2" 0" M!Uf`vp3k ^):q7aԀ;r@Մ[* vKCT8֧dA:rbb"*d '"FL:rj d "$*F]:Jj)r,T eEU4It**(*K@ S n.8[6T34~` ~AOӠ-,&~*`0%wKh>PH7 3k# svmb~ 0~Ӹa@k6?O0SeN)^ͯͰXf0E;%2ͻ#+S^/X zzY`Cs2<\K~?I&hb_s&Y|7, ~`qU,n ?LP~Cp@ ~1[~b xdY`G$V#e@yOG0=l;l|c(p@ 2( D 6H 䠀gW/Ѡ5@,(PmE5y_UT ~>3hs p;O0!Hhz<0G7,"NӸ4| f'$6O0@dYa3ݐͲ*vK6m6@ ~ 9vm~2;,ی }OXD>/0 l L?08}_Pc%6 ~ 9z#ٴ `Y4  .dD Pe8Y.һe Lp>,W+//pBYj7YgQ@-}W \UWeE&[n?Lhe`*m~ý,tt%$T%=A ]I&j)JH1@-a'A00vgq-O=`@d4io2@ 8_n,(|@Aa vA0U (ɸIOPCMDt4T8IOPCHK0dUD8pIOGETCS tH%=A 5IOPCHECS tT%=A 1=NIOPREADSԒU ttH%=AM5=j&) )*Ѱ Y)iqa) @) H()@-B4+@3@ oL3Ii0d,3mʹ 7ioy0@yS`ayS+H4"jO`6 oX|>,7K.5;AaOѰ(ѰuAmJyF1 f'`c4fٰ'S,ڔe ;k3@h?h=^o<߬#8|@fހ ùͲoÀBY#5YE~Xv ͩ@Gm !  rY(f7 `  +1` ꊪiq.cu))*Q>ʋ(J>h舱,[jI)ʑ< 1:)*8HIT uECQe%9%PTYOUTPUPQcK))*Q@ʋ(JZ: Q{(*G]zJ2bu*#&*GtJ,u**'(oA:zv4*#"dzjz",6ߣ`a6_a!I6_a8a6 `a~aQ~)q,f)w, VbX, }peP ip#Yap?_B1 vKc LO`PS*Yv#@"77X ?₣((?W1A- he€x~f fmd~~9ᖿ7hPUxdYb"0 =ee l@0ٴ@`<H) OY-q ?N8WmPaRe_ڦUja6G~F1~&`*wUeD(ydY-;%y&7lf8 `~Jw,vfX @fnɌeETHȰTUSSETUuEU54UHΈTUSFINDTDUhψTUSPEEDuET4XLPOPENtu$DXͰLPINPUTtUEXLPFLUSHttDXLPSMODEǀeET4͈TUUNMASUS UETIt*(*K@ \ i-66h{YpO`O &@0q3@~@Ӡp;;2x`Cf@PS S. {F1nx8C[6<ߣPe€;4,@;ͮ 0p[yeݧ[ydY8+j,hl1 ꊪiq @mZ ߬@~쳨>Nc.cϢ-7_`4~mWpT,~ 0~C%;##rBmpD 6@mp!m>"ChyhɌȂtUDDX̸/SETMODEtUEx$PUTQTUE(%HWAITdUD8ΘIOGETCu4uEE4ʘ/TUMSKTBuEUTD(`/HWAKEUPDD.HLADDRttU$4ST`dDUd(%=QAj4)航Q -Q@f 0C`d$$FD:Jz* d`!+$E@:"*d"'"FA:"*bzd("#FC:"*jz$RSQS`TT٫t@!,l0}Y"xA誉舱 .誊1(D)誈q  )h,8TT U%EAIU95QfPRMSKTY@*ʄvD )*&,fjZ̴Z@*tVp;\o 0X`X~NXdh NWl!өt43nò` @8lԬ hf: 6|D uNgf3 ,mh=XW+68Z,a~N@`,f׀f' $w  jq|@f64C ,>^5x;V"k0#? 8X7_a rMmhm+r?NbDߥk.[/~q/~ wiIk/`sߧqc0sµ e](PM{ ha:!,$#3]'p<&H @/7+(Dm `5 \u@h X}f ',>dI0nL%;~D/Ӡ5 : >3oh sFKliw_cK@V~B(C*2w'iN;JDBk[#6 @Td N(kc6bBY4KjKtt|fݠeDDTt0r@ in)ݥ!@CH@ ڰp\.<X0%QU T| f U  >3kPw;DeXF~nߎi~i"`@ ACCH@F?>N3! N6EQU T| fU  >3jݒ:O@"[Ґ 8Ȅ &Z0 KH@D$g#yxFc9#Ir9c)i7d3fi3AR G! !)o &)誈q IjH(ecm <À |>p3 QgUPT eETHQU ! .TUPCHECTPuEU54UEXQUMM!URTUSFINDTS uEU4UHQUA%9TUSPEEDPӓ`uEUT8QU5M.TUUNMTBST Ҡ,Dꊨ.train.datbanner.bintrain.cmdyahtz.binZVmUf =xf2iB'1hY,ão76@՛U@ٴ fր66s0=!l~ݒf&mDp\`ͨg %ͨm`#wBPwFQE&JRteys<xHLADDRT`etDH!]%RHWAKEUPU tDT t*&""G@*rz"*t d d d d HD @L HD @L d d d d HD H``L H``L H``L H``L H``L H``L H`S >@?NK6+ߧp[!~OӸw\m@`͵A6퀄B,>^'N3 /Өt?KWXL*YM1ݤ!n3n(eBl3n wNmuMWLv˭.)pf'~B6ނ pf)ʝB?#%~ζmv<R9Z3 {0SJLm~/0uNK64 nL§xB+.F3 ,n 7 ߦa+uM\:ߧAeW NH§b8 0?~/0ɛK\';6h++ pf3oH euN'1/Ný?/( ?€K(m aͫ^pf;JA۔i'̰raK1~LIhh)8Ih) 8d3fi3AR G! !)o &)誈q IjH(iiq>ꊪjJq@.ꊪji ."ʊ )ʑP.ꊪ)ȑ>ꊨiȱ>ʊ*iqp>ꊩijRER ooooooooo `P`````````P` oo d @`````D d oo d d d d @`````````D `P``P` d H`````L d d @`````D d d d ````P`````\`````````\`````P```` d d d d @```D d d d @`````D @`````D d d H`````L d d d d d d &"D@:*jz",t# G\@"*|v$& ")G^@:bz* u+$GM*B Ju,+GQ@:BJDuh" (K@nFh?)/h(fаegrHD7dTsȽL#\pfkP4p\0rMͭ@ jS f }ϋQ͢eYkUWaE-@tE2 ""Bb e+FU2 Z*`54D$t$@(pTS`=a=Y"EG@T` N 8 4l dKeF'% qk0Th {Q'pyn  Lۤmh *w$2Clۺ(D4 [D6@(Asny3@ #kP%(FL|.^#V#bkW%%+}<2nf|(nf|( ##!F!z!FWrong number of arguments banner [word1 [word2 [...]] !""!"!"*w#"[S*R[z(*":Gi `0V.p AD&EoV3m(8_%NH'b8 bK04@痲$ Qr@Yz Q8yOXh`w0a 0~Y@ 86?Md/ iIuN'63i`+Ďͫ, KX\Ͷ+wOYPw0fq@ 0~` sߧqXa? 7 _a:_A6@$ /x ͷ`+6pf?K°2:_Aa+ w\X >3j+b6wN_ w_ (w!_ ~# >2w!_ ~#   0`  0`   A[ H !@@@@ $I$I$I$I$I$_ Bonus Bottom total ___________________ Top Total Top total ___________________________ Total 2_g"] *] %S "] S#![d z [f z [h z [j z [l z [n z "~ | }?8#S [ z " ![p z [r z [t z [v z [x z [z z [| z " [ z " ! 8 ~o (T !F DMN ++~T h ͸  8 ! 7Illegal number: "%s" !  8$%%%%oh 7T 0:8 ag?peat 2 echo -n "Ha @" echo -n "9"; repeat 44 echo -n "Ha @" echo -n "8"; repeat 20 echo -n "Ha @" echo -n "9"; repeat 10 echo -n "Ha @" echo -n "8"; repeat 2 echo -n "Ha @" echo -n "9"; repeat 2 echo -n "Ha @" echo -n "8"; repeat 2 echo -n "Ha @" echo -n "9"; repeat 44 echo -n "Ha @" togcurs; mode pa access.hlpbackup.hlpblink.hlpboot.hlpcdoscopy.hlpcheck.hlpchowner.hlpcmpasc.hlpcompare.hlpcopy.hlpcptree.hlpcreate.hlpcrogen.hlpday.hlpdcheck.hlpddump.hlp~(0 !G~((###>*#~#foN#F>$o# > { > Wz8>  a b!c9dQeifghijklm)nAoYpqqrstuvwx1yIza0y123456 7! 89 9Q /i : . * _ $    > 000000000 0w!c ^+^+^+^+^+!+Dice = %d %d %d %d %d͘ !*d | !!}!*p | !!}!!{*f | !!}!*r | !!}!!{*h | !!}!*t | !!}!!{*j | !/!}!/*v | !@!}!@!{*l | !Z!}!Z*x | !k!}!k!{*n | !!}!*z | !!}!!{*| | !!}!!{*~ | !!}!!* | ! !}! * | '0! = 8(%%% JG  0:?0Ʌo$~# A[ B@@  UUUDD@@@!B !@D "@D "B "@D "@D!@ %(FL|.^#V#bkW%%+}<Yahtzee version 00.05 Copyright (c) 1981 Cromemco, Inc. p !d 6#6#A !I ( 8!I [8!I (y(n !F Dice to be rolled again ? Enter column number (1 - 13) - Do you wish to play another game ? _ !ACCESS CROMIX Instruction Manual ACCESS utility: ACCESS purpose: This program changes the access privileges associated with a file. user access: all users files owned by the user privileged user any file summary: access [+rewa].[+rewa].[+rewa] file-list arguments: access privilege specifier string one or more pathnames options: none Description The Access utility allows a user to change file acces`c3  0  @    0 0` 3c`8x! !}! !{* | ! !}! !{* | !; !}!; !F * | !d !}!d !{!{ %s%3.3uEYAHTZEE YAHTZEE YAHTZEE YAHTZEE 1 One.......... 7 Three of a kind.....2 Two.......... 8 Four of a kind......3 Three........ 9 Full house..........4 Four......... 10 Small straight......5 Five......... 11 Large straight......6 Six.......... 12 Yahtzee.............___________________ 13 Chance..............Total __________________________mode -pa; togcurs ty .train.dat echo #1 #2 #3 #4 #5 #6 #7 #8 #9 echo -n "8"; repeat 20 echo -n "Ha @" echo -n "9"; repeat 10 echo -n "Ha @" echo -n "8"; repeat 2 echo -n "Ha @" echo -n "9"; repeat 2 echo -n "Ha @" echo -n "8"; repeat 2 echo -n "Ha @" echo -n "9"; repeat 44 echo -n "Ha @" echo -n "8"; repeat 20 echo -n "Ha @" echo -n "9"; repeat 10 echo -n "Ha @" echo -n "8"; repeat 2 echo -n "Ha @" echo -n "9"; repeat 2 echo -n "Ha @" echo -n "8"; re @@! @ s privileges. The access privilege specifier string (first argument) contains three clusters of access flags separated by periods. The first cluster indicates owner permitted access, the second indicates group access, and the third indicates public access. Each cluster is composed of zero or more of the following flags, given in any order: + add the specified privileges r read access e execute access w write access a append access Refeplay map -r relocatable binary -s search library -x bitmapped -z size (use with -r) Description The Blink utility is a two pass virtual linker. One or more input files can be specified. An executable binary file is generated. Blink can be used to generate relocatable binary files which can share a bank of memory with other programs. Options The -b option may be used to specify the output filename. If used, the -b option must be followed by a space andBACKUP CROMIX Instruction Manual BACKUP utility: BACKUP purpose: This utility copies a directory and all subdirectories and files to a block device. user access: all users summary: backup [-tv] source-dir dest-dev [file-list] arguments: source directory destination device one or more filenames (optional) options: -t time -v verbose Description The Backup utility copies the source directorg the Ioprun utility program. The -n option prevents creation of a link map. Otherwise, the link map is created and written to a file with the filename extension .map. The -p option must be followed by a space and the hex value of the program starting address. If no starting address is specified, the program starts at 100 hex. A relocatable binary program is placed wherever there is space in a memory bank. The -q option inhibits display of the link map on the terminal. Otherritten by the Backup utility may be accessed only by the Restore utility. Modifying the source directory while Backup is in progress can result in a phase error. The disk in the destination device must not be mounted. (Do not use the Mount utility to mount the disk). Example: # backup -v fda filea fileb filec filex inking the Cromemco Debug program. The -z option allocates a specific size for the program segment. This switch is used only with the -r option, and only when free space (more than Blink normally allocates) is desired in the program area. Notes Blink manages memory so as to link programs up to the total amount of memory available. The memory area used by the linker during execution does not impose a restriction on the size of the program being linked. Thus, Cromix programs up tr to the discussion of file protection in Chapter 3 for additional information. Notes The Access utility allows the user to change file access privileges in several different ways. The first of these is to reenter each access privilege for each population segment, making the desired changes. For example: %access rewa.rw.a xyz %l -l xyz 312 1 rewa r-w- ---a joe Mar-09 18:25 xyz The second method for specifying access privileges involves the use of the plus sign (+) i the name of the binary file to be created. If this option is not used, the output file adopts the name of the first relocatable file specified on the command line. The output file has the filename extension .bin. This option may be used to force the output file to have a filename extension of .com. These are programs compatible with the CDOS operating system only if they were written using CDOS system calls. The format for linking these files is: % blink -b filename.com moy along with all descendant directories and files to the destination device. Disks to be used with the Backup utility should first be initialized for use with the Cromix Operating System. It is not necessary to make a file system (Makfs) on the destination device. Note that data existing on the disk in the destination device is destroyed. If the destination device is a floppy disk and all the data does not fit on one floppy disk, the Backup program prompts for additional disks. Only wise, the link map is displayed on the terminal. The -r option causes generation of the output file in relocatable binary format. Programs in this format can be executed with another process in a single bank of memory. The -r option is used with the -z option discussed below. The -s option precedes the filename of the library to be searched. The option applies only to the file immediately following it, and must be specified for each file to which it applies. Blink searchBLINK CROMIX Instruction Manual BLINK utility: BLINK purpose: This program links relocatable files. user access: all users summary: blink [-dinpqrxz] [-b outname] filename [-s libname] . . . arguments: one or more filenames optional library name following each filename options: -b output file name -d data section address -i IOP starting address -n no map -p program address -q do not diso 64K, minus 1K of memory occupied by the Cromix Operating System in each user bank, can be linked by Blink. CDOS programs running under the Cromix Operating System are limited to approximately 4K less memory than the 63K available to Cromix programs. This is because Sim, the CDOS simulator, must also be loaded. COBOL programs using segmentation cannot be linked with Blink. n one or more of the access population clusters. When used in this manner, the plus sign means that the attributes for the specified population segment remain the same. The plus sign may also be followed by access privileges to be added for the given population segment. % l -l abc 517 1 rewa re-- re-- joe Mar-09 18:26 abc % access +.+.+a abc % l -l abc 517 1 rewa.re.re-a joe Mar-09 18:30 abc dulenames The -d option is followed by a space and the hex value of the data section starting address. The -i option is followed by a space and the hex value of the starting address for an IOP program. It allows relocation of the program above the memory area occupied by the IOP Monitor. The IOP Monitor occupies memory between addresses 0000 and 0800 hex in ROM, and between 7F00 and 7FFF hex in RAM. This option creates an automatic header for the program to be run in the IOP usin files whose names match at least one of the names in the file list are backed up. Ambiguous filenames enclosed in quotation marks may be included in the file list. Backup does not modify dump times. Options The -t option backs up a file only if the source file was modified since the last back up. The -v option causes the names of all files to be displayed as they are backed up. Notes The data that has been backed up may be restored only by the Restore utility. A disk wes the .rel file for necessary functions. If no library is specified using the -s option, and there is no library in the current directory, the program looks into /usr/lib, which is the default system library directory. The -x option makes the output file a bitmapped self-relocating file. This option generates a self-relocating file which, when loaded into a user bank, loads in highest available memory and sets high memory to the byte just below itself. This option is used in l BOOT CROMIX Instruction Manual BOOT utility: BOOT purpose: This utility loads an operating system into memory. user access: privileged user summary: boot [filename] arguments: filename (optional) options: none Description: The Boot utility loads an operating system into memory. If no argument is given, the file /cromix.sys is loaded, and execution begins. In this manner, the Boot utility can be used to warm boot the  right of the rightmost slash. For instance, the following command line puts the file named memo onto the CDOS format disk in drive B. % cdoscopy -w fdb /usr/mary/memo Options The -b option copies binary files. When this option is used, the 1Ah (end of file mark) is not stripped from the end of the file. The -e option erases the specified file(s) from the CDOS disk. The -l option displays the contents of the CDOS directory. The -v option displays files while they are copiod to determine if there are users on the system is to execute the program status (Pstat) command: # ps -a PID State Command 1 S - 112 R Shell 105 R screen letter 18 S login 1 19200 tty6 94 S shell 16 S shell 15 S shell 14 S shell 89 S login 1 9600 tty1 Here the Pstat command is executed with the all option by entering ps -a after the Cromix prompt. The display shows one user running the Screen Editorb). Refer to Appendix D for a list of device names. Cromemco Disk Operating System (CDOS) format disk to a Cromemco Cromix Operating System format disk and vice versa. For example: % cdoscopy fdb letter % cdoscopy -w sfda notes The first of these command lines copies a CDOS file named letter (located on a large floppy disk in drive B) into the user's current directory. The second command line copies the Cromix file named notes from the user's current directory to a small floppy disk in drive A. In the first case, thCHOWNER CROMIX Instruction Manual CHOWNER utility: CHOWNER purpose: This program changes the owner or group of a file. user access: privileged user summary: chowner [-gv] ownername file-list arguments: name or number of the user to whom ownership is to be transferred or name or number of the group to which ownership is to be transferred and one or more filenames options: -g change group -v verbose DCromix Operating System. Example: # boot Floppy = 1, Hard disk = 2 Enter major root device number: 2 hd0 = 0, hd1 =1, hd2 =2 enter minor root device number: 0 Here, the Boot utility is executed and the Cromix Operating System reloaded. The root device is specified as hard disk (2) number 0 (0). If Boot is followed by a filename, the file is assumed to have a .sys extension. If the user needs to boot CDOS from the Cromix Operating Syed to and from CDOS disks. The -w option causes the file to be written to the CDOS disk. Notes When an ambiguous CDOS file reference is used, it must be enclosed in quotation marks. The file /usr/lock must be present to execute the Cdoscopy program. Examples: % cdoscopy -v fda "*.z80" % cdoscopy -vw hd1 ** % cdoscopy -l fdb These examples assume that the disks in drive A (fda) and B (fdb) and the hard disk (drive F or hd1) are CDOS disks. The first example co program to edit a file named letter. If the Boot program was executed at this point, the user would lose all editing changes made during this session. As long as all lines of the Pstat display show a command of shell or login, no processes are running and it is safe to load an operating system. The Boot utility may be executed only by a privileged user. CHECK CROMIX Instruction Manual CHECK utility: CHECK purpose: This program runs the Dcheck and Icheck utilities. user access: privileged user summary: check [-s] [devname] arguments: optional device name options: -s Description The Check command runs the programs Dcheck and Icheck on a file system. Check should be run after rebooting the system or any time the integrity of the file system is in doubt. The Startupe file is converted from a CDOS format to a Cromix format. A Cromix format to CDOS format conversion takes place in the second example. The Cromix Operating System cannot read CDOS disks. Programs to be executed and data to be read under the Cromix Operating System must be transferred from CDOS formatted disks to Cromix formatted disks before execution begins. Where a file pathname is specified, CDOS considers the lowest level filename. This is the portion of the pathname to theescription The Chowner utility changes the owner or group associated with any type of file. If the file abc is in the current directory and is owned by mark, the L utility might display it as: # l -l abc 27 1 rewa re-- re-- mark Mar-11 19:59 abc Using the Chowner utility, ownership can be transferred to cindy: # chowner cindy abc # l -l abc 27 1 rewa re-- re-- cindy Mar-11 19:59 abc Options The -g option allows the Chowner utility to change the group assocstem, the file cdos.com can be copied to the root directory using the Cdoscopy utility. The file must be renamed cdos.sys. The user then types boot /cdos to load CDOS and begin execution under CDOS. Notes Because this program loads an operating system, it interrupts any active processes. Be sure that no one else is executing a program and that there are no detached processes running on the system before executing the Boot utility. Otherwise, data may be lost. One quick methpies all CDOS files on drive A having the filename extension z80 into the current directory. The ambiguous CDOS file reference was placed inside quotation marks. The second example writes all files in the current directory to the CDOS hard disk designated as F (Cromix Operating System designation hd1). No quotation marks were used for the Cromix Operating System ambiguous file reference. The final example displays the directory of the CDOS disk in drive B (Cromix file designation fdCDOSCOPY CROMIX Instruction Manual CDOSCOPY utility: CDOSCOPY purpose: This utility copies files to and from CDOS disks. user access: all users summary: cdoscopy [-belvw] devname file-list arguments: Cromix device name name(s) of the file(s) to be copied options: -b binary file -e erase file -l list CDOS directory -v verbose -w write CDOS file Description The Cdoscopy utility copies files from a  command file program executed after every boot up indicates when the Check program needs to be run. See the Startup command file description in this chapter for more information on Check. Options The -s option is the salvage option used with Dcheck and Icheck to repair most file system problems. See the description of the Dcheck and Icheck utilities in this chapter for more information. The system is rebooted after running Check with the salvage option.  iated with the file. This option is used in the manner previously described, substituting the group name for the owner name. The -v option displays the name of each file as its ownership is changed. Notes When the ownership of a file is changed, the group with which the file is associated changes to that of the new owner. ending in .c to the directory archives. The files maintain their original names. Options The -d option allows directory and device files to be copied. If this option is not used, directory and device files are not copied. For example, a command such as: copy -d /dev/tty2 data can be used to transfer all characters typed at terminal 2 into the file named data until a terminating character is received. The terminating character for console devices is CNTRL-Z. The -f optioCOMPARE CROMIX Instruction Manual COMPARE utility: COMPARE purpose: This program compares two files. user access: all users summary: compare file1 file2 arguments: 2 filenames options: -t terse Description The Compare program compares two files and reports differences in length and content. Compare lists differences between the files on a byte-by-byte basis. It displays an address in hexadecimal, then the CPTREE CROMIX Instruction Manual CPTREE utility: CPTREE purpose: This program copies a tree. user access: all users summary: cptree [-ftv] source destination [file-list] arguments: source directory destination directory optional file list options: -f force -t time -v verbose Description The Cptree utility copies the source directory, and all its descendant directories and files to the destination direty copies one or more files. It does not alter the source file(s). In its simplest format, copy duplicates file abc as file xyz, with both files residing in the current directory: % copy abc xyz To copy to or from a directory other than the current directory is more complex: % copy abc /usr/fred/xyz Here the pathname of the destination file is specified. The file abc exists in the current directory. It is being copied to the directory /usr/fred and its name is CREATE CROMIX Instruction Manual CREATE Shell command: CREATE or CRE purpose: This command creates a file. user access: all users summary: cre file-list arguments: one or more pathnames options: none Description The Create command is used to create one or more files. The files are zero bytes in length and have default access privileges. They are owned by the user who created them and are in the domain of their creaCMPASC CROMIX Instruction Manual CMPASC utility: CMPASC purpose: This program compares two ASCII (text) files. user access: all users summary: cmpasc file1 file2 arguments: 2 filenames options: none Description The Cmpasc utility compares two ASCII (text) files and reports differences in content. Differences are shown by displaying the text of the first file, followed by the corresponding line in the second file whichn makes the copied file overwrite an existing file with the same pathname. If this option is not specified and another file exists with the destination pathname, an error is reported. The -t option causes a file to be copied only if: 1. The file does not exist in the destination directory; or 2. The source file has been modified more recently than the destination file. This comparison is performed on a file-by-file basis. The -v option displays the name of each file as it is copiedbyte in the first file at that address, followed by the corresponding byte in the second file. Compare does not adjust for offset, should one file lack one or more bytes in the middle (e.g., if part of a file was deleted). Use the Cmpasc utility to compare ASCII files. Options The -t option suppresses the list of differences. When this option is used, only a message is displayed to indicate whether the files are the same or different. ctory. Existing links within the source directory are preserved. If a file list is specified, only files whose names match at least one of the names in the list are copied. Ambiguous filenames enclosed in quotation marks may be included in the file list. Options The -f option causes the copied files to overwrite any file with the same pathname. If this option is not invoked and another file exists with the destination pathname, an error is reported. The -t option causes ato be xyz in that directory. In the command: % copy abc /usr/fred the pathname of the destination directory is specified. The file abc exists in the current directory and is being copied to the directory /usr/fred without having its name changed. The following form of the command can be used to create an archive of all C language programs in a given directory: % copy *.c /usr/archives This Copy command copies all files in the current directory with filenames tor's group. If the specified pathname already exists, an error is reported. Notes This command makes a standard data file. Refer to the Makdir command or the Makdev utility program if you need to make a directory or device file.  differs from the first. Notes The Cmpasc utility adjusts for internal differences in the two files (insertions or deletions). Example: % cmpasc fileone filetwo -----> fileone This file is sample file one. -----> filetwo This file is sample file two. . COPY CROMIX Instruction Manual COPY utility: COPY purpose: This utility copies a file. user access: all users summary: copy [-dftv] source-file destination-file [-dftv] file-list dirname arguments: two single file pathnames or one or more file pathnames and a directory pathname options: -d directory & device files ok -f force -t time -v verbose Description The Copy utili file to be copied only if: 1. the file does not exist in the destination directory, or 2. the source file has been modified more recently than the destination file. This comparison is performed on a file-by-file basis. The -v option causes display of the name of each file as it is copied.  CROGEN CROMIX Instruction Manual CROGEN utility: CROGEN purpose: This program generates a Cromix Operating System. user access: privileged user summary: crogen [pathname] arguments: optional pathname options: none Description The Crogen utility generates a new operating system. It allows the user to add and delete system drivers to provide the largest possible number of system buffers and Shells. The user may add useed under this Cromix system initially have these access privileges. Crogen now responds with the following message: Creating cromix.sys (or other filename if specified) This indicates Crogen is creating the new operating system and writing it to the specified file. In this example, Crogen has written the operating system to the current directory (/gen/cromix.sys). If the optional pathname for Crogen is Crogen /cromix, Crogen overwrites the operating system in the rwhen another clock is being added. 5 - Parallel printer (Y = Yes, N = No) ? Is the dot matrix printer driver to be included in this system? 6 - Typewriter printer (Y = Yes, N = No) ? Is the fully formed character printer driver to be included in this system? 7 - Serial printer (Tuart) (Y = Yes, N = No) ? Is the ON/XOFF serial printer driver which interfaces with TU-ART included in this system? 8 - IOP Memory (Y = Yes, N = No) ? ain tasks be done on certain days of the week. Notes When used without an argument, Day displays the name of the current day. Example: The following command line will remind you of a weekly Wednesday meeting. %day wed echo "This is Wednesday, remember your meeting" ct a root device number? Respond with Y or N. If you answer Y, Crogen responds with the following question: Major device number (1 = Floppy, 2 = Hard disk) [2] ? Is the root device a floppy disk or a hard disk? Respond with 1 or 2. If the major device is a floppy (1), Crogen responds with the following question: Minor device number (0 = fda 4 = sfda) (1 = fdb 5 = sfdb) (2 = fdc 6 = sfdc) (3 = fdd 7 = sfdd) [0]? If the  contains too many inodes for Dcheck to check. Make a new disk with fewer inodes and use the Cptree utility program to transfer the contents of the disk to the new disk. Cannot read inode xxxxx A disk I/O error occurred while trying to read the specified inode. Inode xxxxx, error reading directory A disk I/O error occurred while trying to read a directory. Inode xxxxx, cannot read inode A disk I/O error occurred while trying to read the specified inode. Inode xxxxx, directory with more r-defined character drivers to the operating system. Crogen is a menu driven utility residing in the /gen directory. To use Crogen, select the /gen directory and begin execution of Crogen by giving the commands: # d /gen # crogen Crogen displays the prompts shown below. To give the default response, enter RETURN. CHARACTER DEVICE DRIVERS 1 - Console (Tuart) (Y = Yes, N = No) ? Are the standard tty drivers (16FDC, 4FDC, and TU-ART) to be included in thioot directory. If the new operating system is not correctly configured, it will not be possible to cold boot the system. Therefore, it is suggested that the new operating system be created in the /gen directory, tested by booting that operating system (boot /gen/cromix), and then moved into the root directory. Is this system to have a driver that allows you to read IOP memory for debugging purposes? The default response here is No. Even though you have an IOP, you do not need to have an IOP memory driver. 9 - Serial printer (Quadart) (Y = Yes, N = No) [N] ? Is the XON/XOFF serial printer driver which interfaces with Quadart included in this system? 10- SDI (Y = Yes, N = No) ? Is this system to have a graphics interface? 11- Tape (Y = Yes, N = No) ? DCHECK CROMIX Instruction Manual DCHECK utility: DCHECK purpose: This program verifies the integrity of a file system. user access: all users summary: dcheck [-s] [devname] arguments: optional device name options: -s salvage directory structure Description The Dcheck utility verifies the integrity of a file system's internal directory structure. If possible, Dcheck with the salvage option should be run on an unmounte major device is a hard disk (2), Crogen responds with the following question: Minor device number (0 = hd0, 1 = hd1, 2 = hd2) [0] ? Which hard disk should be the root device? Respond with 0, 1, or 2. Automatic login name [none] ? Should this system automatically login when the system is booted? Respond with the login name if this function is desired or press RETURN if it is not desired. Default access for created files [rewa.re.re]? All files creatthan 1 parent A directory is linked to more than 1 parent directory. Use the Ncheck utility program to locate the names of the files and delete all but one link. Then run Dcheck with the -s option. Inode xxxxx, directory with wrong parent This error indicates the inode is pointing to the wrong parent. Use the Dcheck utility with the -s option to correct this error. Inode xxxxx, bad link count xxxxx, should be xxxxx The number of names pointing to this inode from various directories is greats system? Respond with Y (for yes) or N (for no). 2 - Console (Quadart) (Y = Yes, N = No) ? Are the IOP/Quadart drivers to be included in this system? Respond with Y or N. 3 - System must be present This is the main Cromix module and must be included. No user response is required for this driver. 4 - Timer (Y = Yes, N = No) ? Is the operating system clock to be included in this system? This question should always be answered Y except DAY CROMIX Instruction Manual DAY utility: DAY purpose: This program executes a command on the day specified. user access: all users summary: day [day-of-the-week command-line] arguments: day of the week command line options: none Description The Day utility executes a command on the day specified. Day checks the system clock for the specified day. This program is useful in applications that require cert Is this system to have a TDS tape driver? BLOCK DEVICE DRIVERS Disk drivers to be included in this system? If the answer is Y, Crogen responds with the following two questions: 1 - Floppy disk (Y = Yes, N = No) [Y] ? Are floppy disk drivers to be included in this system? Respond with Y or N. 2 - Hard disk (Y = Yes, N = No) [Y] ? Are hard disk drivers to be included in this system? Respond with Y or N. DEFAULT ROOT DEVICE Should the system automatically seled file system. If the file system that needs to be fixed is the root, Dcheck should be run by itself, with no other users or tasks running concurrently. If another task is writing to the disk, the results of Dcheck may be incorrect. If the -s option is used while another task or user is using the disk, the directory on the disk may be irreparably damaged. MESSAGES RETURNED BY DCHECK Cannot read super block The super block cannot be read. Out of memory The disk er or less than expected. Use Dcheck with the -s option to correct this error. Inode xxxxx, more than 255 links There are more than 255 names for this inode. Use Ncheck to find all the names. Delete some names to bring the total number of names to 255 or less, then run Dcheck with the -s option. Inode xxxxx, bad inode number in inode Each inode contains its own inode number. This error means the inode specified has the wrong number. Use Dcheck with the -s option to correct this err ddump if=/dev/tp1 of=file1 conv=ascii,lcase,strip This example causes input to be read from /dev/tp1 and written to disk file file1. EBCDIC characters are converted to ASCII, uppercase to lower, and trailing blanks are not copied to file1. The end of the tape file is indicated by an EOF tape mark written when the tape was created. Notes The following is a list of default values for options. input file standard input output file standard output conversion buffer ter running Dcheck with the -s option, run Icheck with the -s option. After both programs are run, the system must be rebooted. Refer to the Boot utility for additional information. It is not necessary to reboot if the -s option is not used. DEFAULT CROMIX Instruction Manual DEFAULT utility: DEFAULT purpose: This program sets default parameters for automatic boot up and log in. user access: privileged user summary: default pathname majornum minornum [login-name] arguments: pathname major device number minor device number optional login name options: none Description The Default utility allows the Cromix Operating System to use a default root  upper case lcase convert alphabetic characters to lower case strip strip trailing blanks in the conversion buffer nostop do not stop processing on an error (such as a file read error) Several conversions, separated by commas, may be specified in one argument. Description Ddump converts and copies data from one file or device to another. Since the input and output block sizes can be specified, it is DELETE CROMIX Instruction Manual DELETE Shell command: DELETE or DEL purpose: This command deletes a file. user access: all users summary: del [-v] pathname(s) arguments: one or more pathnames options: -v verbose Description The Delete command removes a link to a file. If there is only one link to the file, the file is no longer accessible and the space it occupied is made available. Options The -v or. Inode xxxxx, unallocated inode with xxx links Although this inode is unallocated, names point to it. Use Ncheck to find these names, then delete them. Inode xxxxx, allocated inode with 0 links This inode is still allocated, though there are no names for it. Use Dcheck with the -s option to correct this error. Inode xxxxx, bad directory entry count This inode is a directory. The number of directory entries in the inode differs from the actual number of directories. Use D 80 bytes disk input buffer 512 bytes disk output buffer 512 bytes tape input buffer 8192 bytes tape output buffer 8192 bytes DDUMP CROMIX Instruction Manual DDUMP utility: DDUMP (Direct dump) purpose: This program converts and copies a file from one device to another. It can handle direct physical I/O from devices such as the tape driver. user access: all users summary: ddump options Option Function if=pathname specify input file pathname -i pathname specified input file pathname of=pathname specify output file pathname -o pathna device and login name when booting the operating system. If the login name requires a password, the user is prompted for it; otherwise the boot and login procedure execute automatically. Pathname specifies the directory and filename of the cromix.sys file to be changed. The device number is that of the default root device (refer to Table 6-1). Notes This program is not in the /bin directory, but in the /gen directory. If the major and minor device numbers are both zero (0), theuseful for gaining access to devices that store data in raw form. Conversions are done in the conversion buffer. Each block read from the input file is transferred to the conversion buffer, one buffer at a time. The conversions specified are performed there before writing the result to the output file. For example, if the strip conversion option is specified, trailing spaces are stripped and a newline added before sending the result to the output file. Example: #option displays the name of each file as it is deleted. Notes To remove all links to a file, making it inaccessible, use the L command with the -i option to find the inode number of the file in question. Use that inode number as an argument to Ncheck, and find the names of all files linked to the file. A directory may be deleted by specifying a directory pathname. In order to delete a directory, it must not: 1. Contain any files; 2. Be the current directory for any user; or check with the -s option to correct this error. End of Dcheck (This is the last message) The program has finished executing. Options The -s option fixes problems reported by Dcheck. The program corrects an incorrect inode number when: 1. The inode is allocated; 2. The inode link is nonzero; and/or 3. The inode is being pointed to (i.e., is in use). The program does not correct an incorrect inode number if the inode is unallocated. Notes Immediately afdefault.hlpdelete.hlpdeltree.hlpdirectory.hlpdump.hlpecho.hlped.hlpexit.hlpfind.hlpfixsb.hlpfree.hlpgoto.hlphelp.hlphelp.msgicheck.hlpidump.hlpme specified output file pathname ibs=n input block size obs=n output block size cbs=n conversion buffer size cbufsz=n conversion buffer size iskip=n skip the first n input blocks before starting to copy oskip=n skip the first n output blocks before starting to copy icount=n copy only n input blocks conv=ascii convert EBCDIC to ASCII ebcdic convert ASCII to EBCDIC ucase convert alphabetic characters to n no default device is established and a prompt for the root device is displayed when the system is booted.   3. Be the root directory of a device. Examples: In the following example, the file named schedule is deleted from the current directory. % l 3,016 1 letter 200 1 memo 1,408 1 schedule % del schedule % l 3,016 1 letter 200 1 memo If there is more than one link to a file and one of the links is deleted, the file is no longer accessible through that link. The file remains on disk and is accessible through tDUMP CROMIX Instruction Manual DUMP utility: DUMP purpose: This program displays a file in hexadecimal and ASCII. user access: all users summary: dump [-b #] file-list [-e #] [-k #] [-s #] [-o #] arguments: one or more file pathnames options: -b first byte -e last byte -k first block -s width -o offset address Description The Dump program displays the DELTREE CROMIX Instruction Manual DELTREE utility: DELTREE purpose: This program deletes a tree, including all files and subtrees. user access: all users summary: deltree [-a] pathname arguments: pathname options: -a suppresses user verification Description The Deltree utility deletes all files and subtrees in the tree (directory) specified. Normally, Deltree prompts the user with the file or directory name and (y,ECHO CROMIX Instruction Manual ECHO utility: ECHO purpose: This program echoes its arguments to the terminal. user access: all users summary: echo text arguments: any text options: -e send to stderr -n do not print newline Description The Echo program echoes its arguments. Text may be enclosed within single or double quotation marks to insure correct interpretation by the Shell. Echo is a relocatablDIRECTORY CROMIX Instruction Manual DIRECTORY Shell command: DIRECTORY or D purpose: This command displays the name of or changes the current directory. user access: all users summary: d [dir name] arguments: optional directory pathname options: none Description When given without an argument, the Directory command displays the pathname of the current directory. Given with a directory pathname, the Directory te-up only covers those features of the Cromemco Cromix Screen Editor which are different from the Cromemco CDOS Screen Editor. The Cromix Screen Editor is a special version of the Screen Editor, which was designed to take advantage of some of the features of the Cromix Operating System. It utilizes Cromix Operating System calls and does not use the CDOS Simulator. Because of this, full pathnames may be used when calling the Screen editor. The only outwardly apparent difference to he remaining links. The following example concerns itself with part of the /dev directory. As the Cromix Operating System is shipped, the dummy file prt is linked to the dot matrix printer driver lpt1. In the first listing that follows, the link is shown by the 2 preceding each filename. When the file prt is deleted, the file lpt1 remains intact and the number of links is reduced to one. # l 5:5 C 2 lpt1 5:5 C 2 prt 6:5 C 1 typ1 file(s) specified by the pathname(s). Dump displays any type of file. The file is displayed in hexadecimal with an ASCII equivalent to one side. All numeric arguments to the Dump utility are assumed to be decimal numbers unless followed by an h (for hexadecimal). Options The -b option allows the user to specify the first byte of a file to be dumped. The -e option allows the user to specify the last byte of a file to be dumped. The -k option allows the user to specify the first block to n). If the user types y, the file or directory is deleted; otherwise it is not. If the -a option is used, Deltree asks once whether the user really wants to delete the entire tree, instead of prompting for verification of each file. If the user types y, all files and subtrees are deleted. If n is typed, Deltree returns to the Cromix prompt. If Deltree is called from within the specified directory, the program will not allow the deletion of that directory. All the files must be deleted fe binary program. Options The -e option echoes arguments to the standard error channel. The -n option suppresses the echo of a newline. command makes the specified directory the current directory. SCREEN CROMIX Instruction Manual SCREEN utility: SCREEN purpose: This program allows the user to edit files. user access: all users summary: screen filename arguments: name of file to be edited options: none Description The Screen utility program enables the user to edit files. Please refer to the Cromemco Screen Editor Instruction Manual (part number 023-0081) for a complete discussion of the Screen Editor. This wri # del prt # l 5:5 C 1 lpt1 6:5 C 1 typ1 be dumped. The -s option allows the user to specify the swath width of the dump. The -o option causes a specified offset to be added to all addresses displayed by Dump. Example: % dump -b 1000h -e 5000h filename This command dumps the file filename starting with the 1000th (hex) byte and ending with the 5000th (hex) byte. rom a directory before the directory itself is deleted. Options After asking for verification, the -a option deletes all files and subtrees automatically. the user is the addition of the % command. This command will cause the Screen Editor to create a Shell process, which will allow the user to execute any commands provided there is enough memory in the system. Even without any additional memory, any of the Shell commands, such as List and Type, may be used. The user can return to the Screen program at any time by entering the Exit command in response to the Shell prompt.   EXIT CROMIX Instruction Manual EXIT Shell command: EXIT or EX purpose: This command exits from a Shell. user access: all users summary: ex arguments: none options: none Description The Exit command is used to exit from a Shell. If no higher level Shell is active, the Cromix Operating System logs the user off the system. finds all files modified n days ago. If the number n is preceded by a plus sign, all files modified n or more days ago are found; if a minus sign is used, all files modified fewer than n days ago are found. Action Specifiers -exec command-line The action specifying keyword exec is followed by a command line. This may be any valid command line, that is, any line that can be entered in response to the Cromix prompt. This command line on must be enclosed within quotation marks so that the Shell passes them to the Find utility. When one of the action specifiers is used to execute a program, the return code of that program can be evaluated and used within the expression. The ! operator may precede the expressions to negate the sense of the tests. Options File Specifiers -name file-list The file specifying keyword name is followed by a list of one or more unique or ambiguous filenames. If an a use of the -a and/or -o logical operators. Either operator combines the sum of the expression to its left with the subsequent item in the expression. For example: find / -name ted -a -print find / -name ted -o -name mary -a -print The first example finds all files with the filename ted and prints the pathnames of these files. If the print instruction is left out of this command line, all of the correct files are found and no action is taken: their names ay a group name or number. The Find utility finds all files owned by the specified group. -size n The file specifying keyword size is followed by a number, n. The Find utility finds all files of the specified size in bytes. If the number is preceded by a plus sign, all files with more than that number of bytes are found; if a minus sign is used, all files with fewer than n bytes are found. -blocks n The file specifying keyword blng an older version of the Makfs utility. After restoring the Superblock, the Fixsb command automatically runs Icheck, to check inodes in the file. Notes Fixsb is only to be used on disks whose file systems were created with the default number of inodes. Refer to the Makfs utility for additional information. FIND CROMIX Instruction Manual FIND utility: FIND purpose: This program locates files. user access: all users summary: find pathname [!] expression arguments: pathname [!] expression(s) options: File specifiers: -name -type x -links n -user name or number -group name or number -size n -blocks n -mtime n Action Specifiers: -exec command-line -ok command-liis then executed each time the Find utility finds a file meeting the find criteria. A pair of braces ({}) may be placed within the command line. They will be replaced by the name of the file found. -ok command-line The action specifying keyword ok is used in the same manner as exec. When ok is used, the Find utility prompts the user prior to executing each command line. The user may respond with a y to execute the command line, or n to prembiguous filename is used, it must be enclosed within quotation marks. The Find utility finds all files that match the file list. -type b block device c character device f file d directory The file specifying keyword type is followed by either b, c, f, or d, as shown. The Find utility finds all files of that type. -links n The file specifying keyword links is followed by a number, n. The Find re not displayed. The second example demonstrates the use of the logical OR. All files with the filename ted OR mary are found and their pathnames printed. Examples: The following example finds all subdirectories of the current directory, then executes an l command with the -d and -e options. % find . -type d -a -exec 1 -de {} The next example finds all entries with a .c extension, then lists the entry with the -l option. # find / -name "*.c" -a -exec l -l {} ocks is followed by a number, n. The Find utility finds all files using that number of blocks (actual number of blocks occupied by the file). If the number is preceded by a plus sign, all files occupying more than the specified number of blocks are found; if a minus sign is used, all files with fewer than n blocks are found. -mtime n The file specifying keyword mtime is followed by a number, n. The Find utility FREE CROMIX Instruction Manual FREE utility: FREE purpose: This program displays the amount of unused space remaining on a device. user access: all users summary: free [devname1 ... devnameN] arguments: optional list of device names options: none Description The Free program displays the amount of unused space remaining on a specified device. If no device is specified, the free space is displayed for all mounted dene -print Logical Operators: -a -o Description The Find utility locates a file. The pathname is the pathname of the tree, directory, or file to be searched, and the expression is the string to be found and what is to be done with it. Expressions are combinations of file criteria and operations. Refer to the following list. Parentheses may be used to change the order of evaluation of the items in the Find expression. Used with parentheses, the expressivent its execution. -print The action specifying keyword print is used to display the pathnames of files found. Logical Operators -a The -a operator is used to logically AND two items in the Find expression. -o The -o operator is used to logically OR two items in the Find expression. Notes The expression used with the Find command is evaluated from left to right. Items to be found and actions to be performed may be combined logically by utility finds all files with that number of links. If the number is preceded by a plus sign, all files with more than that many links are found; if a minus sign is used, all files with fewer than n links are found. -user name The file specifying keyword user is number followed by a user name or number. The Find utility finds all files owned by the specified user. -group name The file specifying keyword group is number followed bFIXSB CROMIX Instruction Manual FIXSB utility: FIXSB purpose: This command file restores the Superblock. user access: privileged users summary: fixsb arguments: none options: none Description The Fixsb utility file restores the Superblock, should it be destroyed accidentally. This command file has the same function as the Makfs utility used with the -r option, but without the possible risks associated with runni  vices. Example: The following is a sample output of the Free utility. It shows the available free space in blocks, kilobytes, and bytes. /dev/root 7,513 blocks 3,756K 3,846,656 bytes n the /usr/help directory. Each topic is contained in a file with the name of the help topic and the filename extension .hlp. Additional topics can be entered in the /usr/help directory. The files must have the .hlp filename extension so that the Help program can gain access to them. The message written on the terminal above the listing of Help topics is found in the file named /usr/help/help.msg and can also be modified. The file /usr/help/msg.msg contains the messages printed on xecution. Example: %sample_label x y z % this is a comment goto sample_label This sample command file causes repeated execution of the commands x, y, and z. The first line of the command file is a line label, as indicated by the leading percent sign. Notice that the percent sign indicates a comment on the fourth line of the file. The fifth (last) line of the file transfers control to the specified label (sample_label). ICHECK CROMIX Instruction Manual ICHECK utility: ICHECK purpose: This program verifies the integrity of a file system. user access: all users summary: icheck [-s] [-b blk# ...] [devname ...] arguments: optional list of device names options: -s salvage -b blocks Description The Icheck utility verifies the integrity of the file system's inode structure. After a power failure or after the computer has been res available topics and asks you to select the desired topic. Entering help with a program name lists the manual entry on that topic, omitting the list of available topics. The list of utilities and Shell commands may then be displayed by pressing the r key. Help displays the Cromix manual entry one page at a time. The percentage of the file yet to be viewed is displayed at the bottom of the screen. Several functions aid you in viewing the manual entry. Pressing the space baon units called blocks. A block is 512 bytes. Every block should appear either in a file or in the free list. Blocks appearing in files include those permanently assigned as either system or inode blocks. The free list is a list of all blocks available for use. A block is missing if it appears neither in a file nor in the free list. Missing blocks do not compromise the integrity of the file system and the problem does not need to be corrected immediately. If a block is mGOTO CROMIX Instruction Manual GOTO Shell command: GOTO or GO purpose: This command causes transfer of control within a command file. user access: all users summary: go label arguments: line label options: none Description The Goto command transfers control within a command file. Control is transferred to the line specified by label. This command is used to execute the same commands within a cothe bottom line of the screen when the help program sends a file to the console. The msg.msg file is linked to the file msg2.msg, which contains messages taking advantage of the attributes of the Cromemco 3102 terminal. If your system uses the Cromemco 3100 or 3101 terminal, the file msg1.msg should be linked to the file msg.msg by entering the following command: # maklink -f /usr/help/msg1.msg /usr/help/msg.msg HELP CROMIX Instruction Manual HELP utility: H or HELP purpose: This program displays pages on Shell commands and utility programs from the Cromix manual. user access: all users summary: help [command-name] [utility-name] arguments: optional command or utility name functions: b beginning h help q quit r return to menu u up RETURN next line space next page Description The Het, run Icheck on all mounted devices. If no device names are specified, Icheck checks the integrity of all mounted devices. The list of mounted devices is obtained from the file /etc/mtab. If no options are specified, Icheck produces a report on the file system, but does not alter it. A sample report and explanation follow. If the -s option is used while another task or user is using the disk, the directory on the disk may be irreparably damaged. % icheck Devir displays the next page of the manual. Pressing RETURN displays the next line. Pressing u displays the previous page. The u key and the space bar can be used to move the user back and forth through the text. The b key causes a jump to the beginning of the manual. The h key displays a list of available functions for the Help program (Up, Beginning, Return, Quit, and Help). To exit from the Help program, press q. Modifying the Online Manual The database for the online manual is located iissing, it is simply not available for use. The problem may be corrected by executing Icheck with the -s option. Bad free blocks This message pertains to blocks located in the free list. The term bad indicates that the block number is out of range. A block number can be out of range if it is: 1. Past the end of the disk; 2. In the system area of the disk; or 3. In the inode area of the disk. Bad free blocks do compromise the integrity of the file system andmmand file repeatedly. When used in conjunction with the If and Shift commands, the Goto command becomes part of a conditional loop with varying parameters. A line label is any line within a command file that begins with a percent sign (%). If a percent sign appears as a character other than the first character on a line, the balance of the line is a comment and thus ignored by the Cromix Shell. The Goto command given with a nonexistent line label causes termination of command file eEType "help" for a directory of all topics. Type "help topic" for help with that topic. Type "help help" for more information on this program. Directory of topics: elp utility program provides a convenient online manual for user reference. The Cromix Instruction Manual entries for Shell commands and utility programs are the only accessible entries. Information regarding system calls and other aspects of the system must be obtained from the Cromix Instruction Manual. Help can be called alone or with an optional program name. If unsure about the name of a utility or command, enter help and press RETURN. The Help program lists thece: /dev/hd0 Blocks missing: 0 Bad free blocks: 0 Duplicate blocks in free list: 0 Bad blocks: 0 Duplicate blocks: 0 Device files: 16 Ordinary files: 269 Directories: 44 Blocks used in files: 13,546 Indirect blocks: 172 Free blocks: 6,212 Free inodes: 3,871 Blocks missing All disks (also referred to as block devices) are divided into allocati!  the problem should be corrected immediately by executing Icheck with the -s option. No files are affected. Duplicate Blocks in Free List This message means the same block number appears twice in the free list. Duplicate blocks in the free list do compromise the integrity of the file system and the problem should be corrected immediately by executing Icheck with the -s option. No files are affected. Bad Blocks This is similar to Bad free blocks except that the Bad blocks a must be rebooted. It is not necessary to reboot if the -s option is not used. Refer to the Boot utility for additional information. Do not execute the Icheck utility when other processes are being executed. This includes detached processes as well as other user processes. ile before it is deleted and should be carefully checked because it will probably not be correct. MESSAGES RETURNED BY ICHECK Cannot read super block The super block cannot be read. Out of memory The disk contains too many inodes for Icheck to check. Make a new disk with fewer inodes and use the Cptree utility program to transfer the contents of the disk to the new disk. Cannot read inode xxxxx A disk I/O error occurred while trying to read the specified inode. Not IF CROMIX Instruction Manual IF Shell command: IF purpose: This command is used to conditionally execute another command. user access: all users summary: if -err command -rewa filename command string-1 = string-2 command string-1 != string-2 command arguments: error condition specifier or access method and a filename or two strings separated by the equal (=) or not equal (!=) relational operator  tofind the status of a certain block and the block is missing. Refer to the previous discussion of Blocks missing. Block xxxxxx, ---- block in free list ---- This message is printed when the -b option is used tofind the status of a certain block and the block is inthe free list. Block xxxxxx, ---- bad free block ---- Refer to the previous discussion of Bad free blocks. Cannot write free list block xxxxxx When running Icheck with the -s option, the free list isrecreated. This INIT CROMIX Instruction Manual INIT utility: INIT purpose: This program initializes a disk. user access: privileged user summary: init arguments: none options: none Description The Init program is used to initialize disks. Below is a sample script of a typical Init session to format a small (5-inch) Cromix floppy disk. The messages and questions are displayed by the Init program; the user's responses are descrppear in files. Bad blocks do compromise the integrity of the file system and the problem should be corrected immediately. Icheck reports the inode number of the bad blocks. The Ncheck utility is then used to determine the names of the files containing bad blocks. These files must be deleted. The file may be copied to another file before it is deleted; the new file should be carefully checked because it will probably not be correct. Duplicate Blocks This is similar IDUMP CROMIX Instruction Manual IDUMP utility: IDUMP purpose: This program displays the contents of an inode. user access: all users summary: idump blockdev inode-list arguments: block device name list of one or more inode numbers options: none Description The Idump utility displays the contents of the specified inode(s). a block device: "device name" The device specified is not a block device. Inode xxxxxx, ---- Bad usage count ---- This inode has an incorrect usage count. The usage count is used by the Usage utility program to calculate the amount of disk space used. This error can be corrected by running Icheck with the -s option. Inode xxxxxx, ---- Cannot write to inode ---- This error message occurs when the Icheck utility is attempting to correct an inode and an error occurs. Block xxxxxx, inode x and a command line options: none Description The If command is used to place a condition on the execution of another command. It is frequently used in conjunction with the Goto command and is terminated by a semicolon (;). Referring to the summary above, the If command has three basic forms. The first form executes a command if the previous command returned an error. In its second form, the If command causes commands to be executed if a particulaerror message is printed when there isan error in writing the free list. Cannot read block xxxxxx This message is printed when a block cannot be read. Options The -s option salvages and recreates the free list. The -b option displays information about blocks. Notes When using the salvage option, Icheck must be used in conjunction with the Dcheck utility. Icheck is run after Dcheck. Both utilities should be run using the -s option. After both programs are run, the systemiptions of each part of the execution. Initialize Disks version xx.yy Press: RETURN to supply default answers ESC to abort formatting CTRL-C to abort program Warning: INIT can destroy all disk data Disk to initialize (devname)? sfdd Testing: Index pulses being received correctly Rotational speed: 300 RPM Formatting Disk type (C=CDOS, X=CROMIX)? RETURN Single or double sided (S/D)? RETURN Single or double densi to Duplicate blocks in free list except that the Duplicate blocks appear in files. Duplicate blocks do compromise the integrity of the file system and the problem should be corrected immediately. Icheck reports the inode number of the duplicate blocks. The Ncheck utility is then used to determine the names of the files containing duplicate blocks. At least one of these files must be deleted. The Icheck utility should then be run with the -s option. The file may be copied to another fif.hlpinit.hlpinput.hlpinstall.hlpioprun.hlpkill.hlpl.hlpmail.hlpmakdev.hlpmakdir.hlpmakfs.hlpmaklink.hlpmatch.hlpmode.hlpmount.hlpmove.hlpxxxxx, ---- block used in file ---- This is not an error message. This message is displayed when the -b option is used, indicating the number of the inode in which the specified block is used. Block xxxxxx, inode xxxxxx, ---- bad block number ---- Refer to the previous discussion of Bad blocks. Block xxxxxx, inode xxxxxx, ---- duplicate block number Refer to the previous discussion of Duplicate blocks. Block xxxxxx, ---- block missing ---- This message is printed when the -b option is used r access method applies to the file specified. The third and fourth forms of the If command cause command to be executed when the specified relational condition is true or false. Neither of these forms of the If command requires that the strings be enclosed in quotation marks. However, both forms do require a space on either side of the relational operator (= or !=). ! ty (S/D)> RETURN First cylinder (0-27H)? RETURN Last cylinder (0-27H)? <27H> RETURN Surfaces (0-1,All)? RETURN Cylinder, Surface: restore 00H, 0 00H, 1 01H, 0 01H, 1 : : : : The Init program first asks for the device name of the drive containing the disk to be formatted. Legal responses are device names of the disk drives connected to your system, such as: fda, fdb, ..., sfda, sfd requests the cylinder and surface numbers of the track containing hard errors. Alternately, you may press RETURN at this point and the alternate track declaration will remain the same. Or you may type U for unassigned, and a previously declared alternate track is freed up. Init can format both 8" and 5-1/4" hard disks. Once a track is known to have hard errors and an alternate track is declared for it, Init makes no attempt to salvage the data stored on the bad track. It is best toly the default responses by pressing RETURN each time. On occasion, it may be necessary to format a portion of a disk (e.g., one track that seems to have frequent errors). Next is a question about the surfaces to be initialized. The default response, that all surfaces are to be initialized, is made by pressing the RETURN key. However, you may format only one surface by typing its number, one of the values shown in the prompt. Having been supplied with answers to all containing hardware for only single density operation. The system contains a 4FDC disk controller board; it requires a 16FDC. Illegal device The device name given in response to the Disk to initialize? question is not in the Cromix /dev directory. Illegal Value The number supplied in response to a prompt is illegal. This usually means the number is out of range. Second number must equal or exceed first This error appears when the response to the Last cylinder? question is no message illegal entry is a warning that, as far as the Init program is able to determine, an illegal value has been stored in the alternate track table. Whenever possible, this should be changed to a legal declaration. Following the display of the alternate tracks originally defined, Init asks two questions: whether the user wishes to redeclare any of these already existing alternate tracks, and whether the user wishes to declare any new alternate tracks. It's usually best to keep56789:;<db, ..., hd0, hd1, ..., and so on. These may also be complete pathnames, such as: /dev/fda, /dev/fdb, and so on. Be sure to specify the device name correctly, as the Init program destroys all data on a disk. Init briefly tests the specified drive to check if it is operating correctly for disk formatting. Since drive speed is particularly important to correct formatting, it is reported by the program. When formatting hard disks, the program also verifies that the controller board recover as much of this data as possible before declaring the alternate track. The Hdtest program, supplied as a part of the Cromemco Diagnostics Software package (CDS), has special provisions for recovering this data. The procedure using Hdtest to recover data is quite complex and best left to your authorized Cromemco dealer. INIT ERROR MESSAGES Incompatible with operating system Use single-user or simulator CDOS xx.yy or higher A version of the Init program is these questions, the Init program proceeds to format the disk. It displays its progress by giving cylinder and surface numbers. The disk is always formatted from the outermost cylinders inward, for proper head positioning. Alternate Tracks Since hard disks are designed for long term use and reliability, there is a provision for declaring alternate tracks, that is, good tracks to be used in place of tracks which develop hard errors. Once declared, the locations of these trat greater than or equal to the response to the First cylinder? question. The Init program always formats disks from the outermost cylinders inward to provide consistent head positioning. Drive x is write-protected Diskette in Drive x is write-protected The drive or floppy disk specified has been write protected and cannot be initialized until the write protection has been defeated. Drive x not ready The drive specified is not ready, which usually means it cannot be selecte the factory settings of the drive's alternate tracks unless you have a specific reason for changing them. The Init program cannot and should not be aborted during the process of declaring alternate tracks for a hard disk. Certain information about the drive is in volatile memory during this time so aborting the program causes this information to be lost. Finally, if you do choose to declare alternate tracks, the Init program prompts you with the alternate track number an error. The associated error status is reported. Init error: Drive x, Cylinder ww, Surface z, Status yy Restore error: Drive x, Cylinder ww, Surface z, Status yy Seek error: Drive x, Cylinder ww, Surface z, Status yy Write error: Drive x, Cylinder ww, Surface z, Status yy The error occurred on the specified drive, cylinder, and surface, which has the reported error status associated with it. Formatting aborted just prior to writing cylinder ww, surface z Although not an error, this messa is working properly. The next prompt asks about the type of disk to be formatted, that is, will it be used with the CDOS or Cromix Operating System? Either type may be formatted under either operating system. If the disk to be formatted is a floppy, two more questions are asked about the combination of sides and density to be used in initialization. Next, the Init program asks for the first and last cylinder numbers to be formatted. When an entire disk is being formatted, suppbeing used with an earlier, noncompatible version of CDOS or the CDOS simulator program running under the Cromix Operating System. Use the version of CDOS specified in the error message. Initialization inhibited in this machine Switch 4 of the 16FDC or 4FDC disk controller has been turned on. This switch prevents disk initialization in the computer system. 4FDC not capable of double density operation The user has attempted to initialize a double density floppy disk in a system cks are stored in a special area of track 0 (cylinder 0, surface 0) called the alternate track table. When a hard disk is formatted with Init, the program displays a list of previously declared alternate tracks and gives the user the chance to change these or declare new ones. The display of alternate tracks usually prints cyl xx, surf y to indicate the cylinder and surface numbers of the track containing hard errors, or unassigned to show that the alternate track has not yet been used. Thed by the software. This occurs when a floppy disk has not been properly inserted in its drive or the door has not been properly closed. Can't Select Drive x, Status yy This occurs for reasons similar to those given for the previous drive errors. However, this message usually indicates a hardware failure and displays the error status associated with the malfunction. Can't Re-zero Drive x, Status yy This error occurs when a hard disk drive cannot be rezeroed, or restored, without" ge shows how much of the disk was formatted before the user pressed the ESCape key and aborted initialization. PIO's not working PIO's and direction control transceivers OK The first of these is an error message displayed during the drive test phase of initialization if the PIOs on the WDI hard disk controller are not working correctly. The second message is displayed when the Init program sees the PIOs are working correctly. Memory-to-memory DMA not working Memory-to-memory DMA completedanguage programs by redirecting the output of the utility to a file and then testing the contents of the file with the Testinp utility. Refer to the Testinp utility. Input reads a maximum of 255 characters from the standard input or 512 characters if input is redirected from a file. Input terminates reading upon reading a newline or the maximum number of characters, and does not output the newline to stdout. Example: % input > temp This command line reads one ange for this type of drive. This is generally an indication of a drive malfunction. ZPU clock must be set to 4MHz for correct operation of hard disk This error message is printed if the operator is attempting to use a hard disk in a 2MHz (rather than a 4MHz) computer system. The problem can be corrected by switching the ZPU to 4MHz operation. Incorrect operation of WDI and hard disk This error message is displayed following any of several errors. It indicates a problem with the operackage on the specified disk to run under Cromix. Install works only on Cromemeco software shipped on CDOS disks that contain a special file, install.crx. This file contains the neccessary information for performing the copy. Install will issue an error message if this file is not present and terminate execution. Thus, install will only work for certain CDOS disks which have this special file on them. To copy files from CDOS disks that are not designed to work with install, reftrack Since the alternate track table is stored on track 0 (cylinder 0, surface 0), this track can never be assigned an alternate track. he system IOP. Ioprun is found in the /dev/iop directory.  correctly The Init program tests the hard disk DMA circuitry by using it to perform memory-to-memory DMA. The first message is displayed if the WDI hard disk controller DMA is not working correctly. The second, an informational message, is printed if DMA is working correctly as far as the Init program is able to determine. No index pulses being received This error message appears if the program receives no index pulses from the drive during the test phase of initializationline from the standard input and sends it to the file temp. tion of either the hard disk or the WDI hard disk controller. Read error: alternate track register Do you wish to format drive anyway (Y/N)? A list of alternate tracks for the hard disk (to be used in case of hard errors on any normal data tracks) is stored for use by the operating system in a dedicated area of track 0 (cylinder 0, surface 0). This area is called the alternate track table. Before initializing the drive, the Init program attempts to read this register. er to the Cromix Instruction Manual entry for Cdoscopy. Example % install fdb If the disk in floppy disk driver b was the recent Cromemco release of WriteMaster, for example, then the appropriate files needed to run WriteMaster under Cromix would be copied to /usr/pkg . If the disk in fdb is not set up to be copied by install then an error message will be sent to the console and the files will have to be copied using the CDOSCOPY utility program. INPUT CROMIX Instruction Manual INPUT utility: INPUT purpose: This program reads a line from the standard input and sends it to the standard output. user access: all users summary: input string arguments: none options: none Description This utility reads a string from the standard input and, upon reading a newline, sends that string to the standard output. This utility can be used to write interactive command lKILL CROMIX Instruction Manual KILL Shell command: KILL purpose: This command sends a signal to a process. user access: all users summary: kill [-12345678] [PID] arguments: process id options: -1 abort -2 user -3 kill -4 terminate (default) -5 alarm -6 broken pipe -7 reserved -8 reserved Description The Kill command sends a signal to the process specified. If the signal . This indicates the drive is not rotating, or is not properly connected to the controller. Index pulses being received correctly Rotational speed: xxxx RPM This informational message means that index pulses are being received from the drive and indicates the drive's rotational speed in revolutions per minute. Rotational speed: overflow Illegal drive speed (must be xxxx RPM +/- yy%) These error messages mean that the rotational speed calculated by the Init program is out of the legal rINSTALL Cromix Instruction Manual INSTALL command file: INSTALL purpose: This program allows the user to copy certain Cromemco software packages that are on CDOS disks to Cromix. user access: all users summary: install devname arguments: Cromix device name options: none Description Install is an easy to use program for moving CDOS programs to Cromix. Install will copy only those files on the CDOS disk that need to be copied for the software paThose tracks that have already been declared are then redeclared after initialization. This error message and question are displayed if the Init program is unable to read the alternate track table. Answering no to this question aborts the Init program until the problem is corrected. Answering yes to this question allows the Init program to go ahead and attempt to format the drive anyway. In this latter case, the alternate track table information is lost. Cannot be assigned an alternate IOPRUN CROMIX Instruction Manual IOPRUN utility: IOPRUN purpose: This program loads a program into an IOP. user access: privileged user summary: ioprun filename [address] arguments: filename of program to be loaded into IOP base address (in hex) of IOP (default CEh) options: none Description The Ioprun utility loads a file into an IOP. This utility is normally used to load the IOP/Quadart driver (cromix.iop) into t" type is unspecified, Kill sends a terminate signal. When a signal is sent to process 0, the signal is also sent to all processes belonging to that user. If the user is a privileged user and a user signal is sent to process 1 (kill -2 1), system shutdown is initiated. Kill 0 aborts all background jobs attached to the user's terminal. Kill -1 1 consults the /etc/ttys file and allows any terminals that have been added to be logged on. It also logs off any terminals that have been dename, the field on the extreme left contains the number of bytes in the file. This is followed by the number of links to the file, and the filename. If the entry represents a directory, as in the first entry shown, the leftmost number shows the number of files in the directory. The D indicates it is a directory. The last two fields show the number of links and the directory name. 3 D 1 cromix.doc 1,559 1 default.fm0 A sample of the output of L using the -e option is shL CROMIX Instruction Manual L utility: L purpose: This program lists directory or file information. user access: all users summary: l [-abdeilrst] [file-list] arguments: optional file or directory pathname(s) options: -a all -b brief -d directory information -e everything -i inode number -l long list -r reverse order -s summary -t time modified Des- modified: Dec-21-1981 13:56:57 karen pubs1 accessed: Jan-19-1982 12:49:41 links: 1 dumped: 000-00-1900 00:00:00 inode: 734 pipetest 10 directory created: Dec-21-1981 13:56:13 rewa re-- re-- modified: Dec-21-1981 13:56:13 karen pubs1 accessed: Jan-19-1982 12:49:33 links: 1 dumped: 000-00-1900 00:00:00 inode: 781 system.c 1,641 created: Dec-21-1981 13:56:10 rewa re-- re-- modified: Dec-21-1981 13:56:11 karen pubs1 accese listing is listed most recent file first. The -s option generates a summary of disk space used. The -t option sorts the file list in order of time-last-modified. This order is from oldest to most recent unless the -r option is used. Notes The meaning of the first column of numbers displayed by the L utility is as follows. If the file listed is a regular (data) file, the number associated with the file is its size in bytes (or number of characters). If the file is a directoryy is a file, and the leftmost field shows the number of bytes in the file. Moving to the right, the third field indicates the number of links to the file or directory. The next field shows the read, execute, write, and append access of the directory or file for the owner, group, and all other users, in that order. Immediately to the right of the access privileges is the login name of the owner. The three rightmost fields in this format are the most recent date and time oleted from the file. Options The -l option causes an abort signal to be sent to the process. This option has the same effect as CNTRL-C from the keyboard, and aborts only interactive programs. Detached processes continue unaffected. The -2 option sends a user signal to the process. It is generated by a character typed at the terminal. The character that generates the signal is determined by the mode. The -3 option sends a kill signal to the process. This kill signal own below. This is the most complete display. The name of each file in the directory is displayed on the extreme left. To the right, on the same line, is the number of bytes in the file. The first column on the next line lists the operations performed on the file: created, modified, accessed, or dumped. To the right of each operation is the date the operation was last performed. A third column shows the time of execution. The rightmost column contains additional information.cription The L program lists directory or file information in alphabetical order. If no pathname is specified, it lists the contents of the current directory. If a directory pathname is given, the contents of that directory are listed. If a file pathname is given, information about that file is listed. Options The -a option lists the names of all files, including invisible files (those files whose names begin with a period). The -b option makes a brief list, which contains only sed: Dec-31-1981 12:17:05 links: 2 dumped: 000-00-1900 00:00:00 inode: 782 The following example shows the L program output using the -i, or inode number, option. This display first shows the directory name. The names of all files and directories within the subject directory are listed on the right. The number of links to each file or directory is shown just to the left of the name. Moving left, the next field is either blank or contains a D. A blank indicates the ent, the number is the number of files stored in that directory. If the file is a device file, the numbers are the major and minor device numbers. Example: Samples of the output from the L utility follow. Each is preceded by a note as to the option utilized. The following shows an output of L with the -b option, containing only filenames. apa apa1 apb apc apd ape The following shows an output of L using the -d option. For a filef file access, and the file or directory name. Directory: cromix.doc 9 D 1 rewa re-- re-- karen Dec-21 13:56 locktest 10 D 1 rewa re-- re-- karen Dec-21 13:56 pipetest 1,641 2 rewa re-- re-- karen Dec-21 13:56 system.c The following is a sample of L program output using the -s option. This display is similar to that obtained using the -d option, except that the last line of the display is a summary showing, from left to right, the number of files, numbcannot be ignored or trapped. It is typically used to abort a program caught in an infinite loop. The -4 option sends a terminate signal to the process. The terminate signal kills both interactive and background processes. This is the default type of signal sent by the Kill command. The -5 option sends an alarm signal to the process. The -6 option is sent by the operating system when a pipe is used improperly. The -7 and -8 options are reserved for future use.  At the top the read, execute, write and access privileges for the owner, group, and all other users are shown. The second line is the login name of the file owner. The third entry lists the number of links to the file, and the final entry is the inode number. To the extreme right of the owner's login name is an entry showing the group name of the user: in this case, pubsl. Directory: cromix.doc locktest 9 directory created: Dec-21-1981 13:56:57 rewa re-- re-filenames. The -d option lists information about the directory, rather than the contents of the directory. The -e option lists everything about a file. The -i option lists an inode number, rather than the file size. The -l option makes a long list of information. This option does not display as much information as the -e option. The -r option performs the sort specified in reverse order. Thus, an alphabetical listing is given in reverse alphabetical order, and a time-datry is a file; a D means it is a directory entry. The leftmost column in this display is the inode number associated with the file or directory. Directory: cromix.doc 734 D 1 locktest 781 D 1 pipetest 782 2 system.c The following example shows the L program output using the -l option. If the second field in the entry is a D, for directory, the leftmost field indicates the number of files in that directory. If the second field is blank, the entr# er of blocks, and total bytes in the directory. Directory: cromix.doc 9 D 1 locktest 10 D 1 pipetest 1,641 2 system.c 3 files 6 blocks 2,313 bytes What follows is a sample of L program output using the -t option. These files are listed in order of the time last modified. Directory: cromix.doc 1,641 2 system.c 10 D 1 pipetest 9 D 1 locktest MAKDIR CROMIX Instruction Manual MAKDIR Shell command: MAKDIR or MAKD purpose: This command creates a directory. user access: all users summary: makdir dir1 [ ... dirN] arguments: directory pathname(s) options: none Description The Makdir command creates directories. ent directory, since mail creates a temporary file mail.temp. Options The -a option sends mail to all users. The list of users for this option is obtained from the /etc/passwd file. The -g option sends mail to members of a specified group(s). Group members are defined in the /etc/group file. The -n option causes mail not to be saved. The -v option displays the list of users who received mail. The -y option saves mail. Notes Upon logging in to the system, a user is infor if you need more files than the default allows. Otherwise, Makfs decides how many inodes are needed and uses that number. The -r option restores the Superblock, should it be accidentally destroyed. This option should be used with caution. If you have an older version of the Makfs utility, using this option causes destruction of all data on the disk. After you have run Makfs -r, you must then run the Icheck utility to complete the restoration process. Notes A more prudent ms executed, references to the device name refer to the device indicated by the device number. Options The -c option displays an error message if no device driver corresponds to the specified device number. Notes Makdev calls for two numbers in its arguments: a major device number, which is the driver number, and a minor device number, which is the device number. Some utilities demand that certain devices be owned by bin. For example, Spool expects the print devices to be  program does not alter the source file. Options The -f option causes the new link to overwrite another link with the same pathname (if one exists). If the -f option is not used and another file exists with the link name, an error will be generated and the Maklink program will be aborted. The -v option causes the names of files being linked to be displayed. Notes No link can be made between two different file systems. That is, links cannot extend between 2 different devicMAIL CROMIX Instruction Manual MAIL utility: MAIL purpose: This program sends or displays mail. user access: all users summary: mail [-agnvy] [user-name] arguments: optional list of user names or optional list of group names options: -a all -g group -n do not save mail -v verbose -y save mail Description Given without arguments, Mail displays mail sent to the user. After the mail is disMAKFS CROMIX Instruction Manual MAKFS utility: MAKFS purpose: This program sets up the structure for a file system on disk. user access: privileged user summary: makfs [-ir #] devname arguments: device name options: -i number of inodes -r restore Superblock Description The Makfs utility sets up a structure for a file system on a block device. It establishes the number of inodes, the blocks dedicated to tmed if there is mail. ethod of restoring the superblock is to use the Fixsb utility, which restores the Superblock and then runs Icheck automatically.  owned by bin. Use the Chowner utility to change device ownership as needed. es (disks). played, the Mail utility asks whether the user wants to save the mail. Saved mail is appended to the file mbox in the current directory. Given with one or more user names as arguments, the Mail utility sends mail to one or more users. To send mail, enter the message after pressing RETURN at the end of the command line. A CNTRL-Z terminates the message and returns the user to the Cromix Operating System prompt. In order to send mail a user must have write and append access to the currhose inodes, blocks dedicated to the system, and blocks dedicated to the user. Makfs is run on all floppy disks and on some hard disks before the disk is mounted for the first time. The Makfs utility destroys any existing data on the device. It warns and prompts the user before destroying data. The Makfs utility stores the inode number in all of the inodes created. Options The -i option establishes a file system with a nonstandard number of inodes. This option is used onlyMAKDEV CROMIX Instruction Manual MAKDEV utility: MAKDEV purpose: This program creates a device file. user access: all users summary: makdev [-c] devname b/c majornum minornum arguments: device name block or character device specification major device number minor device number options: -c conditional Description The Makdev utility associates a device driver with a number and a name. After the program iMAKLINK CROMIX Instruction Manual MAKLINK utility: MAKLINK purpose: This program makes a link to a file. user access: all users summary: maklink [-fv] file-list dirname [-fv] srcfile destfile arguments: filenames followed by a directory name or source file followed by a destination file options: -f force -v verbose Description The Maklink program will link one or more files into a directory. This # MATCH CROMIX Instruction Manual MATCH utility: MATCH purpose: This program finds all occurrences of a string within a file. user access: all users summary: match [-bcelr] string file-list arguments: string file list options: -b block numbers -c count -e exact match -l line number -r reverse match Description The Match utility searches through the specified files for all occes. Terminal devices have a line kill character which, by default, is CNTRL-U. Character values may be expressed by either pressing the ASCII key itself, or by typing its hexadecimal value. For control characters, press the caret key (^) followed by the character. Thus, the line kill character can be changed to CNTRL-A by any one of the following methods: 1. Type mode lkill, then press the A key while holding down the CNTRL key; 2. Type mode lkill 01h; 3. e the match of that string at the beginning or end of a line of text, respectively. The search for the string is case insensitive unless the -e option is used. If the ambiguous characters * or ? are used, the string should be enclosed in quotation marks ("). If match is used to search a file that is not a text file, control characters may be sent to the terminal. This may lock up the terminal; press CNTRL-Reset, or turn the terminal off and then on again to restore terminal operation.ime it prompts for a new command line. A program, PROG, can be run in BINARY mode, by typing % mode binary; prog 3102 function keys are disabled and cause the terminal to beep when Cromix is initially booted up. They may be enabled with the Mode utility by using the command mode fn. The command mode -fn disables them again. Enabling the keys allows the actual 2-byte sequence generated by the 3102 to be passed to a program. This sequence consists of a CNTRL-B (^B) followed buments, the current operational characteristics of the device from which the system received the Mode command are displayed. To display the operational characteristics of another device, a device name must be specified as the first argument. If no characteristics are specified, Mode displays the characteristics of the specified device without altering them. Mode characteristics can be altered by specifying the desired settings as arguments. For example: # mode lpt1djusting the System Clock, for additional information. TTY, QTTY, and MTTY (Terminal Devices) LPT, TYP, SLPT, and QSLPT (Printer Devices) ABortenable This switch indicates whether or not CNTRL-C functions as a special input character for the terminal devices TTY, QTTY, and MTTY. When this switch is off, CNTRL-C will be treated as any standard character. When on, pressing CNTRL-C sends a SIGABORT signal. In order to disable the signal function of CNTRL-C, the user urrences of the string and displays each line containing a match. Unless the -e option is used, Match is not case sensitive. If no file is specified, input is accepted from the standard input device. Options The -b option displays the block number with the matching line. The -c option prints a count of the matching lines. The lines themselves are not displayed. The -e option displays only lines that match the given string exactly - a case sensitive match. The -l option displays t Type mode lkill^A. All commands are entered by pressing the RETURN key. Methods 2 and 3 are ways to make the RETURN key, for example, the user signal key. Either mode sigchar 0dh or mode sigchar ^M accomplishes this. When displayed, the first part of the name of a mode characteristic is capitalized: PAuse, for instance. The capitalized part of the name must be used in changing the characteristic. For example, either mode tty1 -pa or mode tty1 -pause, but not mode ttyl -p, can  Example: % who john tty1 roger tty2 % who|match roger roger tty2 y another character. For example, CNTRL-B and p are transmitted when function key l is pressed. These 2-byte sequences must then be intercepted by an application program to cause them to perform some command. If no device is specified, the device from which the Mode utility was called is assumed to be the device in question. It normally defaults to the terminal calling the Mode utility. However, if the Mode utility is called from a command file, the disk drive where the com width 132 -tabexpand Some characteristics are switches that may be turned on or off. A dash is used to turn a switch off (e.g., -tabexpand). Omit the dash turn it on. Some characteristics must be followed by numerical values, (e.g., width 132). Numerical values may be expressed as decimal or hexadecimal numbers, (e.g., delaycode 7fh). They may also be expressed by using the kilounit operator K, (e.g., outblkln 8K), where K = 1024. Some characteristics use ASCII characters as valucan give the command mode -abortenable. The argument abortenable enables the signal function of CNTRL-C. Baud This parameter determines the baud rate of the serial devices TTY, QTTY, MTTY, and SLPT. To change the baud rate, use the argument baud followed by the desired buad rate. For example: mode tty5 b 9600 The baud rate designated Auto is a special case. This mode is used with a terminal and causes the driver to try different baud rates until it reads a he line number together with the matching line. The -r option reverses the sense of the match, displaying only lines that do not contain a match to the given string. Notes Strings of more than one word and ambiguous strings may be specified on the command line, surrounded by quotation marks. The same characters represent ambiguous strings as are used by the Cromix Shell (*, ?, []). In addition, the caret character (^) may be specified at the beginning or end of a string to forcbe used to turn off the pause mode of ttyl. Option The -v option verifies Mode changes by displaying the characteristics after changing them. Notes In CBREAK mode, RAW mode, and BINARY mode, no calls for reading characters (.rdbyte, .rdline, nor .rdseq) wait for a line terminator; they all return after a single byte is entered. The Shell, the program through which the Cromix Operating System reads command lines, sets the mode to nonCBREAK, nonRAW, and nonBINARY each tMODE CROMIX Instruction Manual MODE utility: MODE purpose: This program displays or alters the character device modes. user access: all users summary: mode [devname] [characteristic(s)] arguments: optional device name optional characteristic(s) options: -v verify Description The Mode utility program displays or alters the operational characteristics of a character device. If the program is run without any argmand file is stored is considered the source device. In summary, if a command file is to change the mode of the terminal, the device must be stated explicitly. A description of the mode characteristics for various kinds of devices follows. TIMER (System Clock) Correction This is the number of seconds per 100 days to be added to or subtracted from the system timer. The range is -32768 to +32767. Only a privileged user may change this value. Refer to the section in Chapter 6, A$ RETURN from the input. BINary, CBreak, and RAW CBreak, RAW, and BINary are parameters of terminal devices TTY, QTTY, and MTTY. If any of these parameters is enabled, any read from the device returns after each input character. These parameters serve to disable the action of various other parameters. These effects are listed in the table below. (+ means that the parameter causes the given effect, a space means it does not.) Effect CBreak RAW BINary Return icates that a three-character sequence will be echoed in response to a delete character. This sequence is space backspace space. To change the delete echo character, use the argument DELECho followed by a space and the delete character desired or the letter R. DIScard When a driver is first used, a data area is allocated where its parameters (including its mode characteristics) are saved. This data area is reserved for the driver until it is DIScarded. For most drivers, the lo a carriage return device. For a carriage return device, each RETURN character read from the device is translated into a newline character by the driver before being passed to the calling program. The driver then echoes a RETURN, linefeed sequence to the device. In the case of output to a carriage return device, newlines are translated into RETURN, linefeed sequences. If a device is not a carriage return device, then it is a newline device and these translations are not mared to as backspace). To change the auxiliary erase character, use the argument erase followed by a space and the desired character. For example: % mode erase _ This command line causes the underscore to function as an auxiliary delete character. Note that DEL and backspace still function as delete characters. EVenparity The two characteristics, ODDparity and EVenparity, produce four combinations. These are listed in the following table (where + means enabled and - m newline delay, 2 bits determine tab delay, 1 bit determines backspace delay, and so on. These bit assignments are as follows: Character DELAYcode Bits QTTY Values TTY Values (seconds) (nulls) newline 0 and 1 0, .1, .2, .3 0, 4, 8, 12 tab 2 and 3 0, .1, .2, .3 0, 4, 8, 12 carriage return 4 and 5 0, .1, .2, .3 0, 4, 8, 12 formfeed 6 0, .8 0, 128 backspace 7 0, .1 0, 4 For example, mode qtty1 delaycodys is enabled, the terminal drivers TTY, QTTY, and MTTY perform the handshaking that the Cromemco 3102 terminal expects whenever a function key is pressed. (The driver echoes a CNTRL-B for each of the two bytes the terminal sends.) This allows the 2-byte function key sequences of the 3102 to be transmitted to a program when a function key is pressed. HUPenable If this switch is on and an IOP terminal device, a QTTY or an MTTY, closes, the modem on the IOP device is hung up. SIGafter each character input + + + No erase, linekill, or EOF (CNTRL-Z) characters + + + No output PAuse or output Width truncation + + + Treat XOFF (CNTRL-S), XON (CNTRL-Q) as regular input + + No tandem mode - no input buffer flow control + Treat CNTRL-C and SIGChar key as regular input + No checking or changing of input parity bit + No delays after any output control characters such as tabs + No echoing of input cation of the data area depends on the port address of the interface board used. For example, terminal TTY2 and serial line printer SLPT2 both use the TU-ART interface board addressed at 20h. For this reason, after access to TTY2 is obtained, SLPT2 cannot be opened until the driver for TTY2 has first been discarded. If the command mode tty2 discard is given, the data space for TTY2 is discarded as soon as the device TTY2 is closed. Then SLPT2 can be opened. ECho This switchde. The hexadecimal code for the newline character is 0Ah, a single character that performs the function of a RETURN, linefeed sequence. DELAYcode The DELAYcode is the decimal equivalent of a byte determining the amount of delay inserted after certain characters are sent to the output. For TTYs, the delay is accomplished by sending null characters to the output. For QTTYs, the interrupt process is suspended for multiples of one-tenth of a second. Two bits on DELAYcode determineeans disabled). EVenparity ODDparity Function for Input Characters - - does not check parity but strips parity bit + - checks for even parity before stripping parity bit - + checks for odd parity before stripping parity bit + + leaves parity unchecked and unchanged EVenparity ODDparity Function for Output Characters - - strips parity bit + - e a3h sets the QTTY1 newline delay to 0.3 seconds, the RETURN delay to 0.2 seconds, the backspace delay to 0.1 seconds, and the TAB and formfeed delays to zero. DELECho This is the character to be echoed in response to any one of the delete characters for terminal devices TTY, QTTY, and MTTY. When the Mode utility displays the delete echo character, the word DELECho is followed by the selected character. If the letter R appears in place of a single character, it indHUPall If this switch is on and the modem of an IOP terminal device, QTTY or MTTY, hangs up, the signal SIGHANGUP is sent to all processes controlled by the device. A process is controlled by the terminal with which the user who initiated the process logged in. For example, a user who has logged in on MTTY1 and hangs up without logging out is logged off by the resulting SIGHANGUP signal, provided SIGHUPall is enabled. IMmediateecho This determines the way that the termi + No function key decoding + No character transformations - + ignore the LCase, CRDEVice, and TABexpand settings + BMargin If a printer device, LPT, TYP, SLPT, or QSLPT is within BMargin lines of the bottom of the page, a formfeed is generated. This takes the device to the top of the next page. The length of a page is determined by the parameter Length (see below). CBreak See BINary. CRDEVice This switch indicates whether or not the designated device is determines whether characters entered on the terminal devices TTY, QTTY, and MTTY are echoed. In order to disable character echo, use the argument -echo. To enable the echo, use the argument echo. Erase This controls the auxiliary erase character for terminal devices TTY, QTTY, and MTTY. The auxiliary erase character may be used to erase characters entered on the current line. In addition, there are always two standard erase characters. These are DEL (7Fh) and CNTRL-H (08h, also refer|}~makes character even parity - + makes character odd parity + + leaves parity bit unchanged FFexpand If FFexpand is on, every formfeed character (0bh) used as an output to printer devices LPT, TYP, SLPT, QSLPT is converted to newlines so that subsequent output starts at the top of the next page. The length of a page is determined by the parameter Length. If FFexpand is off, the formfeed character itself is an output to the device. FNkeys If FNke$ nal drivers TTY, QTTY, and MTTY treat type-ahead. If IMmediateecho is on, characters typed ahead are echoed immediately. They are echoed again when they are read. If IMmediateecho is off, they will be echoed only at the time they are read. Length This is the page length in lines of the designated device. When the Mode utility displays the page length, the word length is followed by the specified page length. To change the page length, use the argument length followed by is truncated. If Width = 0, no truncation or wrap-around occurs. MODES FOR TP (Tape Devices) Block To move to a block within a tape file, use the argument block followed by a space and the block number. Tape blocks are numbered 1, 2, 3, and so on. The following example moves to the second block within the current tape file on device TP1: % mode tp1 block 2 If the specified block is larger than the total number of blocks in the file, the device moves to the beginning The terminal which controls a process is the terminal on which the owner of the process logged on to the system. If SIGenable and SIGALLchars are both on, pressing the SIGChar key causes the SIGUSER signal to be sent to all processes controlled by the terminal, but the SIGChar key character is also put into the input stream. If SIGALLchars is on but SIGenable is off, every terminal keystroke pressed before a system call to read input has been made sends the SIGUSER signal to all con the CNTRL-C key of the terminal keyboard. To take the drive off-line, push the ON-LINE button on the front of the tape drive until the ON-LINE light goes off. Inblkln Inblkln equals the length in bytes of the first block of the last file read from the tape device. It cannot be changed with the Mode utility. Outblkln Outblkln is the block length used by the driver writing files on a tape device. To set it, use the argument outblkln followed by a space and the desired size. The follon the ttys files. Both drivers should be conditioned to the same Baud rates, have RAW mode enabled, and ECho and CRdevice disabled. The receiving system should have TANdem mode enabled, and the receiving program or command file should already be executing before sending begins. Tandem mode causes the receiving system to transmit a DC3 (XOFF) character when the tty driver buffer is full. This causes the sending driver to stop sending. When the driver is ready to accept more characters, to be mounted for the file /etc/passwd. Finding that file, it looks for the special user name mount. If this name is present and has a password associated with it, Mount prompts the user for the password before mounting the disk. Thus, it is possible to protect disks from being mounted by an unauthorized user. Options The -r option causes the file system to be mounted for read only access. Notes A file system that has been mounted must be unmounted by use of the Unmount utili a space and the desired page length. LCase If LCase is on, terminal devices TTY, QTTY, and MTTY convert upper case alphabetic input characters to lower case. LKill The LKill character deletes the current input line for terminal drivers TTY, QTTY, and MTTY. This performs multiple deletes back to the last prompt character. ODDparity See EVENparity. PAuse If PAuse is on, terminal devices TTY, QTTY, and MTTY pause after of the number of lines specified by Len of the next tape file. BLKSwritten BLKSwritten is a count of the blocks written when the tape file was last written to the tape device. It cannot be changed with the Mode utility. EOFclose If the EOFclose switch is on, a filemark is automatically written on the tape when the tape device is closed. A filemark marks the end of a tape file. If the switch is off, no filemark is written. A filemark is written on a tape when a .setmode system call is made for the tape devictrolled processes. (Only characters typed-ahead send signals.) The characters are also put into the input stream. Note that Shells are set up to ignore SIGUSER signals, so that a user is not logged off by them. Any program running in a nondetached mode that does not either ignore or trap SIGUSER signals is aborted by them. The .signal system call provides a means for ignoring or trapping signals. TABexpand If TABexpand is on, every tab character (09H) output is converted to ewing command sets the output block length of tp3 to 8192 bytes, or 8K: % mode tp3 outblkln 8K REWind To rewind a tape device, use the argument rewind. For example: % mode tp1 rewind UNLOAD To unload a tape device, use the argument unload. For example: % mode tp2 unload  it transmits a DC1 (XON) character, and the sending driver resumes sending. Width The Width function specifies the number of columns displayed before truncation or wrap-around. If Width = 0, no truncation or wrap-around occurs. WRAParound If WRAParound is on, and the device output column reaches the page Width, an extra newline is sent to the device. This allows the remainder of the output line to be printed on the next line. If WRAParound is off, the remainder of the line ty before the mounted disk is removed from the system. If this is not done, the integrity of the data on the mounted system cannot be assured. Do not attempt to mount a file system on a nonexistent device. Devices which do not exist may be deleted from the /dev directory. Example: % create newfilesys % mount fdb newfilesys % l . . . 145 D newfilesys % In the example above, the user first creates a dummy file. After mounting, thegth have been output. The output resumes only after an XON (CNTRL-Q) is entered on the keyboard. RAW See BINary. SIGenable, SIGChar, and SIGALLchars If SIGenable is on and SIGALLchars is off, pressing the SIGChar key causes terminal devices TTY, QTTY, and MTTY to send a SIGUSER signal to all processes controlled by the terminal. The SIGChar key character is not put into the input stream. If SIGenable is off, then the SIGChar key is treated in the same manner as any other key. e with the c register containing TPFMARK (0C6H). File To move to a file on tape, use the argument file followed by a space and the number of the file. Tape files are numbered 1, 2, 3, and so on. The following example moves to the sixth file on TP1: % mode tp1 file 6 If the specified file number is larger than the total number of files recorded on the tape, the device moves to the end of the tape reel. This motion may be aborted by taking the tape drive off-line and pushingnough spaces to bring the output to the next standard tab stop. Standard tab stops are multiples of 8 at columns 1, 9, 12, etc. on the terminal. TANdem Tandem mode is used to allow a receiving Cromix system to control the rate of input data using the DC1/DC3 handshaking protocol. The device sending data may be a Cromix system or another computer. When used to communicate between two Cromix systems, the ttys to be used in both the sending and receiving systems should not be selected iMOUNT CROMIX Instruction Manual MOUNT utility: MOUNT purpose: This program enables access to a file system. user access: privileged users summary: mount [-r] devname dummyname arguments: device name file pathname options: -r read only Description The Mount utility enables access to a file system. When given without any arguments, Mount lists the currently mounted devices. The Mount utility looks on the disk %  name of this dummy file becomes the root directory name of the file system to be mounted. After unmounting, this name becomes a dummy filename once again. The Mount command is given with the device name where the file system is located. Refer to Appendix D for a complete list of device names. The L utility shows that the new file system has been mounted and gives the name of the root directory. abled. The message is preceded by the warning Broadcast message. Only privileged users are permitted to use this option. A message sent with the -a option is not transmitted until the entire message is given. Hence, when the -a option is specified, it may be followed on the command line by the name of a file that contains a broadcast message. The -n option causes incoming messages to be disabled. The -y option allows incoming messages to be received. The -2 option sends messages to the ists. If this option is not used and another file exists with the destination pathname, an error is generated and the Move program aborted. The -t option causes a file to be moved only if: 1. The file does not exist in the destination directory; or 2. The source file was modified more recently than the destination file. This comparison is performed on a file-by-file basis. The -v option displays the names of the files being moved. ach other messages. In the example above, xxxx represents a user name. a device is online but no user is in attendance. If msg is typed and immediately followed by a RETURN, then a message is displayed to inform the user of the status of incoming messages. Incoming messages may be disabled or enabled by using the -n and -y options. Terminating a message with CNTRL-Z automatically sends the message End of message to the receiving user. The Msg command followed by (optionally the -2 option and) a user or device name and RETURN allNCHECK CROMIX Instruction Manual NCHECK utility: NCHECK purpose: This program displays file information. user access: all users summary: ncheck [-i # # ...] [dirname or filename] arguments: directory or file pathname options: -i inodes Description The Ncheck program displays the inode number, link count, and pathname of all files contained in the specified directory and all subdirectories. If no arguments are supplied, MOVE CROMIX Instruction Manual MOVE utility: MOVE purpose: This program moves file(s) from one directory into another. user access: all users summary: move [-ftv] file-list dirname [-ftv] srcfile destfile arguments: two single file pathnames or one or more file pathnames and a directory pathname options: -f force -t time -v verbose Description The Move program moves onestatus line of a Cromemco 3102 terminal. Notes To clear the status line of a Cromemco 3102 terminal after receiving a message transmitted using the -2 option, type CNTRL-shift followed by CNTRL-1. If two-way communication is desired, a protocol should be established to prevent the confusion that arises when two messages are transmitted simultaneously. A suggested protocol follows: One user transmits at a time. A single o (short for over) is transmitted on a line by itself msg.hlpmsg1.msgmsg2.msgmsg.msgncheck.hlpnewdisk.hlpnewuser.hlppasswd.hlppatch.hlppath.hlppriority.hlppriv.hlpprompt.hlppstat.hlpqslpt.hlpquery.hlpTopic ? ------ MORE %d%% ------ ------ PRESS SPACE BAR TO CONTINUE ------ ------ COMMANDS: Begin Help Quit Return Up ------ ows a message to be entered. The message is transmitted to the destination user after each RETURN is pressed. A CNTRL-Z terminates the message and returns the originating user to the Shell. Options The -a option broadcasts a message to all users currently logged on to the system. This can be used by the privileged user to warn other users of interruptions to system usage such as rebooting. This message is sent to all users whether or not they have message receiving enNcheck uses the / directory. Options The -i option displays information about the specified inodes only.  or more files from one directory to another directory. This program destroys the source file(s). The Move program does not change the access privileges of the moved files. If files are transported from directory A to directory B, the owner of directory B may not have full access privileges for the files. The program Chowner must be run to change the owner of these files. Options The -f option causes the moved file to overwrite another file with the same pathname if one ex to indicate the end of the message. Upon seeing the o, the other user responds, terminating the message with an o. When the entire communication is finished, one user transmits oo (short for over and out) followed by a CNTRL-Z. The other user should type a CNTRL-Z also. Two-way communication can be established by the Msg utility. When a user receives a message: Message from xxxx the receiving user should type: msg xxxx This allows users to send eMSG CROMIX Instruction Manual MSG utility: MSG purpose: This program sends messages between users. user access: all users summary: msg [-any2] [user-name or devname] arguments: text terminated by CNTRL-Z options: -a all -n disable -y enable -2 Cromemco 3102 terminal Description The Msg utility sends messages between users or from a user to a device. Sending a message to a device is useful when Topic ? dP%d%% MOREd@ dPPRESS SPACE BAR TO CONTINUEd@ dPCOMMANDS: Begin Help Quit Return Up d@ % NEWDISK CROMIX Instruction Manual NEWDISK utility: NEWDISK purpose: This program copies the system disk. user access: privileged users summary: newdisk devname arguments: device name Description The Newdisk utility copies the system disk. Newdisk must be followed by the name of the device on which the disk is to be created. The Newdisk command file first executes the Init program. Be sure to specify the correct disk drive, apy disk C sfdc = small floppy disk C hd2 = 3rd hard disk fdd = large floppy disk D sfdd = small floppy disk D The "newdisk" command file will first execute the Init program. Init will prompt the user to determine which disk is to be initialized. Respond to this prompt with the correct disk drive name from the preceding list. Be sure to properly specify the correct disk drive as all data on the specified disk will be destroyed. All other questions may be answered a previous version of the Cromix Operating System then you may skip to the "Updating" section by pressing the space bar once per page until the section appears on the screen. Note that the Cromix Operating System sometimes displays one full screen of information and then the terminal beeps. If this happens while you are viewing terminal output, simply press CNTRL-Q (hold the CNTRL key down and type Q) when you're ready to continue. You can also stop the display at any time by pressing CNTRL-S.  The cromix.sys file in the root (i.e., /cromix.sys) was generated to have the following configuration: 1 console (tuart) yes 2 console (quadart) no 3 system yes 4 timer yes 5 parallel printer yes 6 typewriter printer yes 7 serial printer (tuart) no 8 IOP memory no 9 serial printer (quadart) no 10 SDI no 11 tape no 12 network no Block drivers 1 floppy yes 2 hard disk yes Default root device yes Boot disk yes Automatic login name word protection to them. The preferred mode of operation is as a non-privileged user. Current Cromix documentation ---------------------------- The current Cromix documentation consists of the manual, Cromemco Cromix Instruction Manual, 023-4022, December 1982 and the following Software Update Service Notes: Cromix-6 Part number 023-9560 This note describes the current release. Cromix-5 Part number 023-9540 Cromix-4 Part number 023-9532 Copying the distrib default.bin is also located in the /gen directory. This program permits you to specify a default root device without running the crogen program. Please read more about the crogen and default programs in Chapter 9 of the Cromix Instruction Manual. Configuring your Cromix system for multiple users ------------------------------------------------- The Cromix operating system is a multi-user, multi-tasking operating system, which means that it can accommodate more than s data on the disk specified is destroyed in the copying process. If you are updating your Cromix System disk to a new version of the operating system, refer to the Update utility.  by pressing the RETURN key as a response (thereby supplying the default answers). The "newdisk" command file will then execute several other programs and display the message "Finished creating disk fdx" when the new disk is completed. Note that "newdisk" may be executed only by privileged users. Updating from an older version 11 system to the current version --------------------------------------------------------------- The easiest way to update your present Crom Press CNTRL-Q when you're ready to continue reading. Throughout this note "version 11" refers to any version of the Cromix Operating System with a version of the form "11.xx". Information for new users of the Cromix Operating System -------------------------------------------------------- First, input the date and time as prompted. Note that each response must be terminated by depressing the RETURN key. Respond to the "Login:" prompt with the user name "system" to be a pri no Default access privileges yes The cromix.iop.sys file in the root (i.e., /cromix.iop.sys) was generated to have the following configuration: 1 console (tuart) yes 2 console (quadart) yes 3 system yes 4 timer yes 5 parallel printer yes 6 typewriter printer yes 7 serial printer (tuart) no 8 IOP memory yes 9 serial printer (quadart) yes 10 SDI no 11 tape no 12 network no Block drivers 1 floppy yes 2 hard disk yes Default root deution diskette --------------------------------- To make a copy of this disk, type the command "newdisk" in response to the Cromix Operating System Prompt (#). The command "newdisk" must be followed by the name of the drive on which the new disk is to be created. The permitted names of the disk drives are: fda = large floppy disk A sfda = small floppy disk A hd0 = 1st hard disk fdb = large floppy disk B sfdb = small floppy disk B hd1 = 2nd hard disk fdc = large flopone user and that each user can run one or more programs. The Cromix system as supplied on distribution diskettes is not fully configured for multi-user operation because of the many hardware configurations possible with Cromemco products. You can reconfigure your system for multi-user operation on your specific hardware configuration quite easily by following the procedures described in Chapter 6 of the Cromix manual, "Booting and Setting up the Cromix Operating SNEWUSER Information for New Users of the Cromix Operating System NEWUSER This note contains information for both new users of the Cromix Operating System and existing users who are updating their systems to this version. Existing users should read the Software Update Service Note Cromix-6, part number 023-9560 for a description of the new features and changes to this version. If you are a new user of the Cromix Operating System then read the following section carefully. If you are updatingix system is to boot up this new disk and execute the Update command (followed by a block device name -- see the "newdisk" description above). Do NOT mount the old disk to the new file system. This method will not preserve many of your old Cromix files. You can also do the updating manually with the copy and cptree programs; however, this is not recommended. Configurations of system files on distribution diskettes -------------------------------------------------------- vileged user (to be used while copying this disk, for example) and the user name "user1" or "user2" to be a non-privileged (or ordinary) user. Following this you will get the Cromix Operating System prompt (#). At this point you can enter commands and converse with the system. Refer to the Cromix Operating System manual for additional information. In particular, read the sections on passwords, groups, and accounting to learn how to change the login names and add passvice yes Boot disk yes Automatic login name no Default access privileges yes Configuring your own Cromix.sys file ------------------------------------ Cromix contains a facility for generating your own Cromix operating system which can contain different device drivers than those supplied as part of the standard Cromix. The program for doing this is called "crogen" and is located in the /gen directory along with the libraries needed. The utility program& ystem"; Appendix A, "Setting up - Hardware"; and Appendix B, "Connecting Terminals with the IOP/Quadart". gram allows the privileged user to change any user's password and any user to change his or her own password. To change a password, call the Passwd program as follows: % passwd Name: fred Password: xxx Name: RETURN % Notice that the password encryption is displayed only after the password and a RETURN have been entered. Changing User Characteristics If the privileged user has occasion to change user characteristics other than the password, thepecified user or group. The -g option alters the /etc/group file (instead of the /etc/passwd file). The -n option adds new user(s) or group(s). Establishing a New User A new user may be added using the Passwd program. In the following example, the user logs on as the privileged user system and creates a new user fred with the password mountain: Login: system Logged in system Jun-24-1980 17:12:15 on console # passwd -n Name: fred Password: xxx splay, s for substitute, and e for exit. Notes The d subcommand displays one sector of the file at a time, in a format similar to that used by the Dump utility. The s subcommand displays the file word by word, so it can easily be changed. The e subcommand allows you to exit from the program. y, which is the user's home directory. If this directory does not exist, the system creates one. The user is the owner of this directory. If the home directory already exists, the Passwd utility prints this information. Finally, the Passwd program prompts for a Starting program. If RETURN is pressed in response to the prompt, the user has full use of the Shell program. If the name of a program is entered here, the user is brought up running the program specified and is loggPRIORITY CROMIX Instruction Manual PRIORITY Shell command: PRIORITY or PRI purpose: This command changes the priority of a process. user access: all users (priorities 0 through +40) privileged user (priorities +40 through -40) summary: pri [+priority-number][command-line] arguments: priority number (optional) command line (optional) options: none Description The Priority command establishes the priority PASSWD CROMIX Instruction Manual PASSWD utility: PASSWD purpose: This program changes the passwd and group files. user access: all users summary: passwd [-dgn] [user1 user2...] arguments: user1 user2... options: -d delete -g group -n new user Description The Passwd utility has three functions. It may be used to change a user's own password. A privileged user may use it to add and delete from the list  user must be deleted and added again with the new characteristics.  User number: 5 Group number: 0 Directory: /usr/fred Starting Program: Name: # The Passwd program prompts for a user name. The response to this prompt is the user name typed in response to the Login: prompt. Press RETURN after entering the name. Next, the program prompts for a user password. If no password is desired, press RETURN in response to the prompt. If you do enter a password, it is encrypted, and the encrypted password disPATH CROMIX Instruction Manual PATH Shell command: PATH or PA purpose: This command finds the full pathname of an executable file. user access: all users summary: path file-list arguments: filename options: none Description The Path command searches the current directory for the specified file with an extension of .bin, .com, or .cmd. It then searches the /bin directory for a .bin or .com file and the /cmded off upon exiting from the program. Any valid Shell command line may be entered in response to this prompt. Deleting a User A user is deleted from the list of users (/etc/passwd file) by running the Passwd program with the -d option. In the following example, the user fred is deleted: # passwd -d Name: fred Name: RETURN # Note that only a privileged user may delete a user. Changing a Password When called without any options, the Passwd proof a process. Priority numbers range from -40 (highest) to +40 (lowest). The highest priority a nonprivileged user may specify is 0, the lowest is +40. A privileged user may specify any priority. If the Priority command is executed without a priority number, the default value is +10. All processes run without using the Priority command are assigned a priority of 0. If a command line is given as an argument, the priority specified applies to the process(es) initiated by theof users permitted to log on to the system. By using the delete function followed by the add function, the privileged user may change the login status of any user. In any one of these three modes of operation, user name(s) are specified either on the command line or during the execution of the Passwd program. To change the password only, enter the command passwd followed by a RETURN. The Passwd program prompts for a user name and a new password. Options The -d option deletes a sPATCH CROMIX Instruction Manual PATCH utility: PATCH purpose: This program patches a file. user access: all users summary: patch filename arguments: filename options: none Description This program displays and alters specified bytes within a file. Enter the command name plus a filename, and press RETURN. The program displays a greater-than sign (>). The user must enter one of three subcommands: d for diplayed on the screen. When a user logs on, this password must be entered after the password prompt. The program prompts for the user and group identification numbers. Each of these is an unsigned integer between 0 and 65535. A zero in the user field indicates a privileged user. A zero in the group field indicates the user is not a member of any group. Any other number has significance only within a given system. The Directory: prompt allows specification of an initial director directory for a .cmd file. If the specified command is a Shell command, Path notifies the user of that fact. Path locates only executable files. Path lets you make sure you are running the correct version of your program, rather than a copy that may have been altered. &  command line. If no argument is given, the priority applies to the current Shell and all children of the current Shell created after execution of the Priority command. An option has been added to the SLPT and QSLPT drivers. As before, if the minor device number is less than 128, the driver uses the XON/XOFF protocol. I.e., if the printer sends the driver an XOFF character, the driver will suspend output to the printer until the printer sends it an XON character. Now, however, if the minor device number is at least 128, the driver uses an ETX/ACK protocol. After outputting 60 characters to the printer, the driver normally sends the printer an ETX character, anPROMPT CROMIX Instruction Manual PROMPT Shell command: PROMPT purpose: This command changes the prompt. user access: all users summary: prompt [char] arguments: any character options: none Description The Prompt command changes the prompt. Char is the new character which the Cromix Operating System will use as a prompt. This must be a single character. If no character is specified, the prompt will be changed to thethe tables. Command sequences may be 2- or 3-characters long. They may also be of indefi- nite length. These latter are terminated by an ASCII NUL (00). An entry's data byte determines the characteristics of the command sequence according to the following bits: CMDSEQ equ 4 ; this character is part of a command sequence CSBEGIN equ 5 ; beginning of a command sequence CSNXLAST equ 6 ; this is the next-to-last character CSLAST equ 7 ; this is the last character The command sequence tng Ready Terminated user id # group id # Ctty controlling tty, the tty of the user or user's process(es) Seconds number of seconds the process has executed bank memory bank in which the process resides command line the command line which invoked the process Options The -a option causes the status of all processes to be listed. If the -a option is not selected, only those processes with the id of the user giving ts is the last char in the sequence db '5' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db '6' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db '7' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db '8' ; db ^CMDSEQ|^CSNXLAST ; this is the next-to-last char in seq db '9' ; db ^CMDSEQ|^CSNXLAST ; this is the next-to-last char in seq db 80H ; end of table PRIV CROMIX Instruction Manual PRIV utility: PRIV purpose: This program allows any user to have the status of a privileged user. user access: all users summary: priv arguments: none options: none Description The Priv utility examines the /etc/passwd file for a user named system. If this user is not found, an error message is displayed and execution of the utility is aborted. If the user named system is found and if thed suspends further output until the printer responds by sending the driver an ACK character. The exception to this rule which is described below. Certain sequences of characters are reserved as command sequences by some printers. For example, sending an ESC character followed by ';' to one printer sets its width to 132 columns. The driver must not send its ETX in the middle of one of these sequences. The driver includes a pair of tables whose function is to describe the com- mand sequences of  pound sign (#) for the privileged user and to the percent sign (%) for any other user. Notes Changing the prompt from a percent sign to a pound sign does not give a user the privileges of a privileged user. ables included in the drivers as shipped are as follows: db 'SEQ' ; marker for command sequence tables seqtbl2p: dw seqtbl2 ; address of table-2 seqtbl1:; table for the initial characters of command sequences db ESC ; db ^CMDSEQ|^CSBEGIN ; may be a 2, 3, or n-character seq db DC2 ; db ^CMDSEQ|^CSBEGIN|^CSNXLAST; 2-character sequence db DC4 ; db ^CMDSEQ|^CSBEGIN|^CSNXLAST; 2-character sequence db 80H ; end of table seqtbl2:; tablhe Pstat command will be displayed. The -b option causes a brief display of the statuses. The -l option causes a long list of the statuses to be displayed. QUERY CROMIX Instruction Manual QUERY utility: Q or QUERY purpose: This program displays a short description of a specified utility program or Shell command. user access: all users summary: query [-s] [name] arguments: the names of one or more utility programs or Shell commands options: -s system function lists system call data as well as commands and utilities. Description The Query program re is a password associated with the user, the Priv utility prompts for the password. If the user responds with the correct password or if there is no password associated with the user system, a new Shell is formed in which the user has the status of a privileged user. Upon exiting from the newly created Shell, the user's previous status is reinstated. the printer. These tables may be located in the driver by searching for the ASCII string 'SEQ' which immediately precedes the hexa- decimal address of the second table. The first table follows this address. The first table describes the characteristics of the first character of a command sequence. The second table describes the characteristics of the second character. Each entry in these tables consists of the ASCII character followed by a data byte. The byte 80H is used to denote the end of PSTAT CROMIX Instruction Manual PSTAT Shell command: PSTAT or PS purpose: This command displays the status of a process. user access: all users summary: pstat [-abl] arguments: none options: -a all -b brief display -l long display Description The Pstat command displays the following information on the status of a process: PID process identification number state state of process: Sleepie for the second characters of command sequences db ';' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db ':' ; db ^CMDSEQ|^CSNXLAST ; this is the next-to-last char in seq db '1' ; db ^CMDSEQ ; NUL-terminated sequence db '2' ; db ^CMDSEQ|^CSNXLAST ; this is the next-to-last char in seq db '3' ; db ^CMDSEQ ; NUL-terminated sequence db '4' ; db ^CMDSEQ|^CSLAST ; thi'  searches a file containing one line descriptions of all of the utility programs and Shell commands for the name given as an argument. When using Query without an argument, a listing of all one line descriptions of utilities and Shell commands is displayed. The Query program considers names that are part of other keywords. When the name fil is given, Query finds all occurrences of the name file as well. This is helpful when the correct spelling of a name is unknown. After using Query toayed five times this line is displayed five times this line is displayed five times this line is displayed five times this line is displayed five times % Notes The Repeat command may be terminated by a semicolon and in this case any command(s) following a semicolon are executed only once. This means that the following command displays the date three times and then displays the time once: % repeat 3 date; time Wednesday, Novessword, add or delete a user In the above example, the Query program has displayed all descriptions of Shell commands and utility programs that contain the word delete in their descriptions. am. The Restore program always starts with the first disk (number 1), which was created by the Backup program and prompts the user for additional disks from the set of backup disks as necessary. If no filenames are specified, the entire directory, including all descendant directories and files, will be restored to its original structure. If one or more filenames are specified, the specified files will be restored into the current directory. If the optional file list is included, only fillocated. This command does not move a file from one device to another. ution of the Rewind command, #1 will represent the first argument with which the command file was called, #2 the second, etc.  find the name of the desired command, additional information is obtained by entering help, followed by the name of the command. For further details, refer to the Help utility. The Query program uses the file /usr/query/query_data as a database. This file may be edited using the Screen Editor. Options The -s option searches the file /usr/query/sys_data, /usr/query/jsys_data, and /usr/query/mode_data before searching the default file, which gives information on the programs only. mber 12, 1980 Wednesday, November 12, 1980 Wednesday, November 12, 1980 Wednesday, November 12, 1980 18:54:04 rename.hlprepeat.hlprestore.hlpArewind.hlp@root.hlp?runqd.hlp>runtu.hlp=screen.hlpshell.hlp t fred 36 5:5 prt 5 2 95 1 u fred 37 5:5 prt 5 2 107 1 w fred 38 5:5 prt 5 1 42 1 x fred 39 5:5 prt 5 2 115 1 y fred 40 5:5 prt 5 2 115 1 Description Tee takes input from the standard input file and sends it to the standard output, as well as to the file specified by the pathname provided in the argument. Example: % sort short | tee sort0 This command sorts the file short, and sends the sorted output to the terminal (standard output) and to the file named sort0 in the current directory.  Remember a message must be terminated by a CNTRL-Z, which echoes to the console as ^Z. To spool multiple copies of a job, the -m option is used. Example: The command % spool -m 3 pay7000 prints 3 copies of the report pay7000. The command % spool -hm 3 pay7000 prints 3 copies of pay7000 with one header page at the beginning of each copy. A pipe can be used to redirect output from a program to the printer. The following command line generates a list oe control strings. The -d option deletes the file passed as an argument after the test. This option is useful in many command files using a temporary file created during the command file execution. Example: echo "Do you want to shut down the system?" input > temp testinp -d temp YES OUI SI if -err goto noshutdown kill -2 1 %noshutdown The example above is a typical command file that uses Testinp and Input. The first line sends the str queue. Notes Where no option is specified, the files specified by the pathname are added to the printing queue. A device name may be specified. If more than one option is used, and one or more of the options requires an argument, the following syntax should be followed. % spool -hv -m 3 -p 1 filename The options that do not require arguments (h and v above) are grouped, preceded by a dash (-), and followed by a space. This group is followed by the option(s) which STARTUP CROMIX Instruction Manual STARTUP utility: STARTUP purpose: This file contains commands that are executed whenever the system is started up. user access: all users summary: startup arguments: none options: none Description The startup.cmd file resides in the /etc directory. As shipped, the command file contains a command to execute the time program that sets the system clock and date. After the system is  z fred 41 5:5 prt 5 3 160 1 The arrow at the upper left of the listing indicates the file currently being printed. All jobs have a priority of five because no priority was indicated when the jobs were put in the queue. Next, change the priority of file y to 2 and change the priority of the file with the sequence number 39 (file x) to 3. Then delete the file u from the queue using the -k option. Finally, add a message to the printing queue using the message optTESTINP CROMIX Instruction Manual TESTINP utility: TESTINP purpose: This program tests the contents of a file for a particular string. user access: all users summary: testinp [-dfr] file string1 [string2 ... ] arguments: file pathname one or more strings options: -d deletes -f compares first characters -r reverse sense of test Description This utility compares the contents of a file to a string or strings anf the current directory on the printer. % l | spool ing within quotation marks to the standard output. The second line uses the Input utility to send the user's response to the file temp. On the third line, Testinp tests the contents of the file temp for occurrences of the strings YES, OUI, or SI. Testinp then deletes temp. If the file contains one of the control strings, the system is shut down using the Kill command. If the file temp does not contain one of the control strings, Testinp sets an error code. The command that  require arguments. Each option is preceded by a dash and followed by a space, a number, and another space. Additional option and argument pairs may follow. Finally, the filename(s) of the file(s) to be spooled are entered. In the following examples, assume the print files t, u, w, x, y, and z exist in the current directory. First, place each of these files in the printing queue: % spool -v t u w x y z t u w x y z booted, Startup notices whether the system was last shutdown properly. If it was not, Startup informs the user the check program should be run to verify file system integrity. ion, and display the revised printing queue. % spool -c 2 y % spool -c 3 39 % spool -k u % spool this is a message ^Z% spool -l Filename User Seq Device Pri Pages Lines Copies -> t fred 36 5:5 prt 5 2 95 1 y fred 40 5:5 prt 2 2 115 1 x fred 39 5:5 prt 3 2 115 1 w fred 38 5:5 prt 5 1 42 1 z fred 41 5:5 prt 5 3 160 1 ---- fred 42 5:5 prt 5 1 2 1 d sets an error return code if one of the strings does not match the contents of the file specified. The test made by Testinp is case insensitive; a test string can be in upper, lower, or mixed case and matches a string that is in upper, lower, or mixed case. Options The -r option reverses the sense of Testinp by setting the error code if a match does occur. The -f option checks only the first character of the file passed as an argument against the first character of each of th* follows passes control to the label noshutdown. If the user answers no to the question, the system is not shut down. UNMOUNT CROMIX Instruction Manual UNMOUNT utility: UNMOUNT purpose: This program disables access to a file system. user access: all users summary: unmount devname [-x] arguments: device name options: -x no disk eject Description The Unmount utility program disables access to a file system. A file system which has been mounted must be unmounted by use of the Unmount utility before the mounted disk is removed from the systema new date and time. The -e option causes the time to be displayed in the European style, with the day and month reversed. The -d option allows the user to set the date only. It is often used with the -s option. The -t option allows the user to set the time only. It is often used with the -s option. The -2 option allows the user to retrieve and display the time stored in the 3102 terminal of the user making the request. This option may be used to set the time on the user's single file is specified, then the size of that file will be reported. If no pathname is given, the current directory will be assumed. Knowing the number of blocks occupied by a directory is useful when using the copy tree (Cptree) utility. TYPE CROMIX Instruction Manual TYPE Shell command: TYPE or TY purpose: This command displays a file in ASCII. user access: all users summary: ty [file-list] arguments: optional file pathnames options: none Description The Type command displays the file(s) specified by the pathname(s). Type may be used only to display ASCII (text) files. The reader is referred to the Dump utility for information on displaying otheis type of file may share a bank of memory with another process. Options The -v option causes the pathname of a file to be printed. TIME CROMIX Instruction Manual TIME utility: TIME purpose: This program displays or alters the time and date. user access: all users for display privileged user for changes summary: time [-sde2t] [hour:minute:second] [month/day/year] arguments: optional date optional time options: -s set -d date only -t time only -2 see 3102 -e European style display (dd/mm/yy) -s2 set 3102 clock Desc or the system is powered-down. If this is not done, the integrity of the data on the mounted system cannot be assured. Options The -x option causes a floppy disk not to be ejected when it is unmounted. 3102 terminal, if used in conjunction with the -s option. This option may be used to set the time of each user's terminal. The system time is maintained internally and is used for all system functions (such as the times associated with file creates, modifications, and dumps.) Notes The 3102 clock may be set by the -s2 option, but it is not utilized by the Cromix Operating System. The date should precede the time if both are given. If they are not supplied and the -s option is giveVERSION CROMIX Instruction Manual VERSION utility: VERSION purpose: This program displays the version number of the Cromix Operating System or a utility program. user access: all users summary: version [file and/or directory list] arguments: optional file and/or directory list options: -v verbose Description When called without any argument, the Version utility will display the version of the Cromix Operatinr types of files. Type uses stdin if no file list is given, and the output is sent to stdout. This means that type may be piped to or from, and redirected to or from, as shown in the example. Example: # ty /dev/qtty5 > diskfile This command line accepts data from /dev/qtty5 and sends it to diskfile. WAIT CROMIX Instruction Manual WAIT Shell command: WAIT purpose: This command suspends execution and waits for the PID specified to terminate. user access: all users summary: wait [PID] arguments: optional PID number options: none Description The Wait command causes the Cromix Operating System to suspend operation until the specified process id (PID) has terminated. If the process id (PID) is not specified,ription The Time program displays or changes the time and date. If no arguments are given, the current date and time are displayed. If the -s option is used, the user is prompted for the date and then the time. Although the date is displayed with the / separator, and time is displayed using the : separator, any convenient separator character (such as a space or a period) can be used when entering the date and time. Options The -s option causes the user to be prompted for USAGE CROMIX Instruction Manual USAGE utility: USAGE purpose: This program displays directory size information. user access: all users summary: usage [file-list] arguments: directory or file pathname(s) options: none Description The Usage utility will display the physical disk space in blocks and the logical file space in bytes which is occupied by a directory and all of its descendant directories and files. If only a n, the Time utility prompts the user for them. Example: % time -s 03/26/82 14:30:24 % time -sd 03/26/82 % time -st 14:30:24 g System which is being run. When called with the name of a utility program, Version will display the version number of that utility. When called with a directory name, Version will display the version number of each of the programs in the directory. The following command will display the version numbers of all of the programs in the /bin directory. % version /bin The characters RB appearing in an entry indicate that the file is a Relocatable Binary file. Th*  Wait will suspend execution of the current process until all other detached processes which belong to that user have terminated. it kill -1 1 - consults the ttys file for changes kill -2 1 - kills all processes and shuts down the system kill 0 - kills all detached processes started from your terminal kill n - sends a kill signal to process number n l - lists information about a file mail - handles mail between users makdev - creates a device file makdir - creates a directory makfs - makes a file system maklink - makes a link to a file match - finds all occurrences of string in a file mode -y logged on, together with the time each one logged on. When followed by am i, the name of the user calling the Who utility is displayed. If the Who utility is called followed by /etc/account, the information contained in the account file is displayed. res the system to use an IOP/Quadart console channel runtu - reconfigures the system to 16FDC console channel screen - calls the Screen Editor for editing files shell - creates a Shell process shift - shifts arguments within a command file shutdown - shuts down the Cromix Operating System sim - allows CDOS programs to run under the Cromix Operating System sleep n - puts a process to sleep for n seconds sort - sorts or merges files spool - spools files to a printer tee - T tree - copies a directory and its descendents to another directory create - creates a file crogen - generates a Cromix Operating System day - executes a command on the specified day dcheck - checks the internal structure of a directory default - sets the default root device and login name delete - removes a file or directory from a file system deltree - deletes a directory and its descendents directory - changes or displays the current directory dump - displays the contentandard error .. - refers to home directory WBOOT CROMIX Instruction Manual WBOOT utility: WBOOT purpose: This program initializes the boot track of a floppy disk. user access: all users summary: wboot devname arguments: device name options: none Description The Wboot utility writes the contents of the /etc/fdboot (large floppy disk) or /etc/sfdboot (small floppy disk) to the boot track of the disk in the specified device.  displays or alters the mode of a device mount - enables or displays access to a file system move - moves a file from one directory to another msg - sends a message to another user ncheck - displays file information newdisk - copies the contents of the root device to a blank disk newuser - displays the contents of an information file passwd - changes a user password, adds, or deletes a user patch - patches files path - shows the path to a specified command priv - changjsys_dataemode_datadquery_data*sys_data)tmode_databpipes output to a file as well as the standard output time - displays or alters the time type - sends the contents of a text file to the standard output unmount - disables access to a file system update - updates a disk with a newer version of Cromix usage - displays directory size information version - displays the version number of the Cromix Operating System wait - waits until all detached processes have finished wboot - initializes the boot track of a floppy disk who - s of a file in hexadecimal echo - sends its argument to the console exit - exits from a Shell and/or logs the user off find - finds files free - displays the amount of unused space on a device goto - transfers control within a command file help - displays the online manual icheck - checks the integrity of a file system idump - displays the contents of an inode if - executes a command within a command file conditionally init - initializes a disk by erasing all data on SYSTEM CALLS Cromix Programers Manual SYSTEM CALLS .alarm - sends an alarm signal after a specified number of seconds .caccess - tests channel access .cchstat - changes access privileges .chdup - duplicates a channel .chkdev - checks for the presence of a device driver .clink - establishes a link to an open file .close - closes a file .create - creates and opens a new file .cstat - determines the status of an open file .delete - deletes a directory entry .divd - divides onWHO CROMIX Instruction Manual WHO utility: WHO purpose: This program displays a list of users who are currently logged in. user access: all users summary: who [/etc/account] [am i] arguments: optional /etc/account or optional am i options: none Description When the Who utility is called without an argument, the /etc/who file is consulted and a report is displayed showing the users currentles the user status to that of a privileged user prompt - changes the prompt to the specified character pstat - displays the status of a process query - locates Shell commands and utility programs rename - changes the name of a directory or a file repeat n - repeats a command n times restore - restores data saved by the Backup utility rewind - restores arguments in a command file to original positions root - displays the device containing the root directory runqd - reconfiguUTILITY PROGRAMS and SHELL COMMANDS Cromix Instruction Manual access - changes access privileges of a file backup - backs up a directory and its descendant files blink - links files together, used with the Crogen utility boot - loads an operating system into memory and begins execution cdoscopy - copies files to and from a CDOS disk chowner - changes the owner or group of a file cmpasc - compares 2 text files compare - compares 2 files (any type) copy - copies a file cp lists the users presently logged in < - redirects the standard input from a file > - redirects the standard output to a file >* - redirects the standard output and standard error to a file >> - appends the standard output >>* - appends the standard output and standard error to a file >< - sequentially pipes the standard output only ><* - sequentially pipes the standard output and standard error | - pipes the standard output only |* - pipes both the standard output and st+ e number by another .error - displays an error message .exec - executes a program .exit - exits from a process .faccess - tests file access .fchstat - changes the status of a file .fexec - forks and executes a program .flink - establishes a link to a file .fshell - forks a Shell process .fstat - determines the status of a file .getdate - returns the current date from the system clock .getdir - returns the pathname of the current directory .getgroup - returns the group id .gelock to the specified date .setdir - changes the current directory .setgroup - changes the group id of the current process .setmode - changes the characteristics of a character device .setpos - changes the file position pointer to the place specified .setprior - changes the current process priority .settime - changes the system clock to the specified time .setuser - changes the user id .shell - transfers execution to a Shell process .signal - sets up to receive a signal .trunc - trutmode - returns the characteristics of a character device .getpos - returns the logical position of the file pointer .getprior - returns the priority number of the current process .getproc - returns the process id of the caller's active process .gettime - returns the current time of the system clock .getuser - returns the user id .indirect - executes the system call .kill - sends a signal to a process .lock - assists in locking records .makdev - creates a new name for a device .makdincates an open file .unlock - assists in unlocking records .unmount - disables access to a file .update - updates all current files with the contents of their buffers .version - returns the system version number .wait - waits for the termination of a child process .wrbyte - writes a byte to the specified file .wrline - writes a line to the specified file .wrseq - write sequentially to the specified file r - creates a new directory .mount - enables access to a file system .mult - multiplies one number by another .open - opens a file for access .pause - suspends execution and waits for a signal .pipe - creates input and output chan. for interprocess communication.printf - outputs a formatted string to a specified file .rdbyte - reads the next sequential byte from an open file .rdline - reads a line .rdseq - reads the next specified number of bytes .setdate - changes the Cromix csequence_number(+ , , P- - . . / P&%$#"!      / 0 0 1 1 Pvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('2 2 3 3 4 P~}|{zyxw4 5 5 6 6 P     7 7 8 8 9 Pfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 9 : : ; ; P~}|{zyxwvutsrqponmlkjihg< < = = > P> ? ? @ @ PVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      A A B B C P~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWC D D E E PF F G G H P F E D C B A @ ? > = < ; : 9 8 7 6 5 4 3 2 1 0 / . - , + * ) ( ' & % $ # " !                           H I I J J P  ~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H GK K L L