IMD 1.18: 3/10/2021 18:58:08 JET 80 System 16/5-88 SWEEP is a utility program for maintaining file directories, and ..transferring files between drives and user areas under CP/M 2.2. Robert Fisher DePaul University HELP COM : SET COM : CPM3 SYS : RMAC COM PATCH COM : SID COM : INITDIR COM : ERASE COM COPY COM : CCP COM : SWEEP41 BAK : LINK COM MAC COM : DATE COM : DEVICE COM : DIR COM PIP COM : HELP HLP : DUMP COM : SWINIT41 COM GENCOM COM : GET COM : DIRLBL RSX : PUT COM RENAME COM : SAVE COM : LIB COM : HIST UTL TRACE UTL : SWEEP41 DOC : HEXCOM COM : SETDEF COM SHOW COM : SUBMIT COM : TYPE COM : XREF COM PROFILE SUB : LILPORT COM : LANDSCAP COM : PRIMO COM FORMATER COM : IOSETUP COM : TRACK0 : DUMP ASM ERRORS COM : FASTCOPY COM : COPYSYS COM : D COM HPPRISEC COM : MOVE-IT COM : WINBACK COM : SIOJET COM STOP COM : SWEEP COM : SYST BAK : SYST SUB XAMN BAS : DUU COM (  @@E  E 1  ͍ %͍͍ʢ͏͕!~# 4͕ ͍:g:s:_g:s!]~$o#~B̩1ɷW|g ͏͕%z͍͍ ͍vCPM3 SYS CPMLDR error: failed to open CPM3.SYS $ CPMLDR error: failed to read CPM3.SYS $ CP/M V3.0 Loader Copyright (C) 1982, Digital Research $021182" yڥ2 2 : 2 {2 !" " 9"@1!N y2K!dڛ_^#V*    ; A G :ž y! 4 5~yµ5 6y ’ ͒: ! OͻMD2 > BDOS ERR: $Select$Perm.$ v{_zW{_zW )8# ? w#JJ |^#V###" ##" ######" !  I* ! I* |! 6ʕ67 * w#w* w#w#w! ^#V#Fͪ' O* &! s#r#p* N#F* ^#V#F* : O}|y* %+* .}|y#* %* DM"  * s#r* s#r#pyoxgkDM* 0 MD" ! * MD$ : O&! N:  yG>O: ʐÇ* ͒ : ʨn` ~#for2 O͚" }: O* 7" 2 " : O: G2 ! w*  * !~2 ~2 : 2 : w: w |g}o' )4: O!3yoxg: O&}* : o$~w{ozg ^#V: ʏ> Û͡" ͳ* ç* r" ! ~#O&E: N/* " y2 ʹ͗ͻͫʛ* X: O~Jyʔx ʍ ʂJÍNJ# h2 G>G:~X*  IOw!x>Fwx2 2 ~: : 6: w2 ~O !>w:ͨ2 4O.5Ϳ: ! S: ͮ: ͛ͳ: < =! wW* M_S -* MD:" : 2 ɯ2 >G=O* ~~w#~2 ~wc~~p2 !" >2 * ~=2 ~2 ͛o>* w!" 2 =2 !" Û͛o͢͢' ͫ~<7 w@ͩ7: " Û: ~ : 2 : ~ * 6: p w#: w: w*@* }D> $* * T : _2 {2 " r" [  ?, d >l [ I6: <!=6 * J " * K : G/O*  * =d ## Ih c c c c c c Í ß Ð Õ Ú í c c é c c c c c c c c u É k c c c  !K!K!!6 6 >"2C?o(!d |G}2 <<2 >2! !#O: :(y: ( ( 2>2Mx: ɯ2S" Cx> >2*|o&~!!x( >>2C2!> (>w2CCC!y*`i#:ts(1j͍( ~ ͢p  S[!R0x̓y{([ ' ~w NJ F6#ͱ 666 :rͪͱ >!p > >NF(90>2~6 :p> y~4(>4Wy> ~݆ݾ8(>6w4~ ݖw ~~ F8 C"!>!x((:4>> w( D6#~:=_Gn f s(1j͍( ~ ͢p͙ >ͪ~w NF 6#ͱ 66>"l/ > !!> \l!j\>կNF:!0 ) 0 ~=O 0yT!jpT"S!! >}ϋ}ϋ y(ϋ y(ϋ~G#N#Kvv-<v@_@:w:w:www?: : ɯɯwwwO F !"#INITDIR COM$%&'()*+INITDIR COMz,-./0123ERASE COM45COPY COM6789:;<=COPY COM]>?@ABCCCP COMDESWEEP41 BAKFGHIJKLMSWEEP41 BAK NLINK COM{OPQRSTUVMAC COM\WXYZ[\DATE COM]^DEVICE COM:_`abDIR COMrcdefghijPIP COMDklmnoHELP HLPpqrstuvwHELP HLPxyz{|}~HELP HLPHELP HLPhDUMP COMSWINIT41COMoGENCOM COMtGET COM3DIRLBL RSXPUT COM7RENAME COMSAVE COMLIB COM8HIST UTL TRACE UTL SWEEP41 DOCSWEEP41 DOC HEXCOM COM SETDEF COM SHOW COMBSUBMIT COM*TYPE COMXREF COMyPROFILE SUBLILPORT COM@LANDSCAPCOM@PRIMO COMFORMATERCOM&IOSETUP COM TRACK0 -DUMP ASM ERRORS COMFASTCOPYCOMCOPYSYS COM D COMHPPRISECCOMCMOVE-IT COM{WINBACK COMFSIOJET COMSTOP COMSWEEP COMSWEEP COMO SYST BAK SYST SUB XAMN BAS  XAMN BASDUU COM6SYSIN58 $$$1?:P2ÄCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321 ERROR: $ $ Press RETURN to continue $ $Reading HELP.HLP index.$Too many entries in Index Table. Not enough memory.$ $ Creating HELP.HLP....$$ HELP DATHELP.DAT not on current drive.$Too many entries in Index Table. Not enough memory.$$ HELP HLPUnable to Make HELP.HLP.$Writing file HELP.HLP.$Writing file HELP.HLP.$Closing file HELP.DAT.$Closing file HELP.HLP.$HELP.HLP created $ Extracting data....$HELP HLPUnable to find file HELP.HLP.$HELP DATUnable to Make HELP.DAT.$Writing file HELP.DAT.$Unable to Close HELP.HLP.$Unable to Close HELP.DAT.$Extraction complete HELP.DAT created $ Topics available:$ ENTER .subtopic FOR INFORMATION ON THE FOLLOWING SUBTOPICS:$ $ $ $Reading file HELP.HLP.$ HELP> $Requires CP/M Version 3$,HELP HLP HELP UTILITY V1.1 At "HELP>" enter topic {,subtopic}... EXAMPLE: HELP> DIR BUILT-IN $? HELP Topic:$Not found$No HELP.HLP file on the default drive.$1?1?!E6!,6͈"-*-|*-}0HҷN1=2/1<_! p{201!C6!C6ͷ 2j:A+::BJ: \u\͡2 :?/;1X:j\!)6X!,62j:j&!)61x͛zdʛ͚=x͛˜!)6,V 2E H:E/ ,V 2E:E/ IX,V 2E H*jM.,V 2E H,V 2E HPX,V 2E H!)6:E/2j\\2D:ZNEv!Kq*K&!Mp+q*L !Op+q*N !Pq*P& !Rp+q*Q!Tp+q *S 6 *S 6*S!Vp+q*U!Xp+q*W!Zp+q*Y!\p+q *[ 6 *[ 6*[!^p+q*]!!`p+q*_!bp+q*a$!er+s+qX*dDMXX:ctE!jr+s+p+q+q*f*gDM*i -’!nr+s+p+q!o6#6:p *p&*k~ H *p&*k*p&*m  *p&*k*p&*m  !o6 !o6!p6 :p<2pí:o!qq:q<2q>!qR \H !q6R !E6!q6:q!sp+q!t6:@/!C *r~<*rwO:/ X*r6*r~ž x*rwÉ X*r~½ \*rwE *r~ !t6*r6  H *r6 H:tͼ"u*u"w!{6!"y:{/>!wH҇ >y)))) DM%\O \o&"yN*y)))) ~$e !{6:{/҄ >w+s#r*y"y %>w:{/HҶ \o&"yN!|6:! !|6:!| *|& ~ *|& 6 *|& ~, *|& 6 :|<2| !|6!:|*|& ~ HA :|<2| *|& ~.d :)2}*|& 6 i !}6:}2|> !|ڛ *|&͏x u:|<2|o :}2|!~6!6#6*~& ~:/H! *~& ~  !6*~& ~ *~& ~[H*~& ~H: :| HHҥ *~& >`*~& ~{Hp *~& ~ *|&͏x *& HqÔ *~& *|&͏x *& w:~<2~:<2 :|<2|> !|! !6 *~& ~[ :|=o&͏x ~ :|=2|*|&͏x 6[:~<2~:|<2|!6 :~<2~î !?6#6#6#6>!|'!6: '*&͏x ~[*&͏ ~C !A6:|==2|*&͏ ~E¤ !B6:|==2|*&͏ ~N !@6:|==2|*&͏ ~L !?6#6:|==2|*&͏ ~ :|==2|:|=2|!6 :<2= :|&X!6>!` *&)))) >u:<26!6>#w#6ͼ"*" \Ju\͡WN!E6:E/\H"!6:ր:E/H*& ~!E6*& ~/!6:E/*& ~/H**M! 2:<2::E/H*& ~0*))))  w*M! 2!6: :E/H*& ~ H*& >`*& ~{H*& ~ *)))) *& w*& *)))) *& w*M! 2:<2i:E/\5*))))  }u*))))  #~u*))))  N#F *))))  q#p*))))  :w*#"*!p>ͭ:<2>+s#r>:E/H\2vN*"*! *)))) u*"*M! 2þâ%:<2 u͑lF2F͑\2NfuF2!"*+!*))))  :d*))))  q#p*"҇!":=!6!ͣ DM%)2͑F2F͑\2N*"|u\2!E6:E/!"*":E/>!HҴ!ͣ DM%\ʝ!E6ñ>+s#r*#"d!"*+!!ͣ DM%2͑\2N*"ҺP\02NC*NBXUX \ku\͡oxN FuF͑F\2N%!6\2:/H:Y$!6è!E6:!E6F2ͼ":E/ҽ!"*":E/>!H]!ͣ DM%\F!E6Z>+s#r*#" !"*+!ں!ͣ DM%FʭF2F͑\2N*"c\NFF͑NX!"}22:)<2: ,:)!"#**"!"1!6*"!":/G*)))) ~$^!6D*))))  :!:/Ұ!6,V 2:›0XáCX,V 2X**0&p>ͭ,V 2 H!6> !*& 6 :<2!6$ *)))) DMuX*#"=*))))  ~!=!6*#"=:],V 2X%!6#6!6#6!":/:/HҼ*)))) ~$ʴ*))))  :)<{*)&͏x *)))) ͛2:q *)))) *)&͏x u:)<2):/:)2!6>!)n&͏x ~ H*)&͏x ~[Hb!6!6n*#"!6x*#"ñ:Ҫ*))))  :Ң*#"ç!6ñ*#"ù!6z:**#"**))))  DM}u*))))  #DM~u!6*))))  ~2D*))))  ~2):!q!6!::E/Hҙ,V 2E:E/Җ!6:!{X:<2a*&͏x DMX:<27 H*)M.:E/ҷ,V 2E:E/\\2DN!6:/:E/H\H:D=2:<2O>/:/H*& ~29!E6!6:/:E/H:*& ~/HHҗ:<2*M! 2*& :=O! w>:§!6ò*& 6$:E/:/H: :@/H,V 2E*MH>!X!6 !D6!E6u,V 2Xh*& 6!,6ͷ 2::?/H_1X:_ogDM!>))덑o|g҉ =wDM!>))Ҟ =–^#V) §_{ozgi`N#Fogo&og_{_z#W $ɀ"#DIRLBL 1!M CP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321!`i^#V#~#foͽ{¡y#wG:xA##6?)@w){#{s333333.;;33,;;#wD{_#6 sO O ڹ.:;=,/[]<>a{Ҷ_#  ý Copyright (c) 1982 Digital Research File not found or no directory spaceInvalid file name.Directory Label attribute set Read Only (RO)Read Write (RW), set to ERROR: READWRITEDELETENONE on off LABEL @ @Option requires a file referenceOption only for drives.Assign passwords to input files.Assign a password to this file.Directory needs to be re-formatted for time/date stamps. Please see INITDIR.Protection not enabled for disk.Unrecognized option.There are no modifiers for this option.Modifier missing or unrecognizable.Not a valid modifier for this option.This option needs a modifier.Only first 8 characters of default password used.Only first 11 characters of label name used.Only first 8 characters of password used.Cannot have both create and access time stamps.Cannot set both sys and dir.Cannot set RO and RW.No options specified.Page and nopage option selected. Nopage in effect.Cannot set local options for file.Protection modifier is only ON/OFF for drives.Password protection is not supported in NON-BANKED SYS.Requires CP/M 3 or higher.ACCESS0ARCHIVE0CREATE0DEFAULT0DIR0F10F20F30F40NAME0PASSWORD0PROTECT0RO0RW0SYS0UPDATE0PAGE0NOPAGE"%(+.3%\|"()/#!@&+-*??Directory Passwds Stamp Stamp Stamp Label Reqd Create Access Update -------------- ------- ------- ------- ------- Press RETURN to continue. ?Password ? Disk I/ODrive Invalid Drive.Wrong Password? in filespec.?ONOFFsystem (SYS)directory (DIR), Drive Default password = Password = Label for drive Protection = or protection not enabled for disk.Modifier: Option: FILE: 1!1!1 ""*"}2W#|2X#̀ 2"!"6:W#0w n ͎ 2!ͽ l 2"*U#& ~ œ !U#4Æ *U#& ""*U#& ~[ *"#""B!:" o ! !!6 S :" *"""B Q͟ 9 :"!"" g͟ !!6= :"1 !!6= :"= !!6]B |M !"6 :"k *"""!"6o P &͟ v!!q*!& y !!p+q*!~ʯ *!Ny *!#"!Õ   y  y ͹ :! !"4~<<+~H ͹ ͹ 0 ͏ Ͱ  2!:! !"6͹ ͹ !!p+q *!DM͏  !!q*!&!!p+q*!!!p+q*! !!q*!&-!!p+q"u *!"!!!p+q"u *!d!!q*!&e!!p+q"u *!f!!p+q"u *!g!!q*!&) ^#V%!!p+q*!! #q: #2"!"6"1!#r+s+q:#2"!"6*##s#r"1!"6#6"1x >"9!® *"DM͏ ö *"DM͏ J ͏  "̀"##1! ͑ >#9!*#~[ !"6 *#~] !"6*##"#!"6*#!#s+q+p+q:#=2#J*#:#w*##"#-!#s+p+q+p+q:#=2#ʁ*#*# w*##"#*##"#Z: 2#aڛ:#{қ:# :#!#p+qx *#DM͏ M  " !#6>!#?͂2 # *#&" : #w: # ?: #ý: #-:#ý:#=2#O!" 6 : #8 !#4Ͱ 2 #:"AOy :y F!!#6> !!#ڋ:!# s.y *!#&*!>Oy !!#4]x *"|2"#x F͉ :"#¸Y ͏ :"#b ͏ M͏ :"#M͏ :"#i ͏ :"#x ͏ :"#  ͏ !##q&"u  S 2##!$#q:$#>:$#o&&""!:\w!"6!"6&"u *#EZ *#GZ *#IZ *#Z * #Z * #Z "*#DMKc 2%#¡>*%#M>!'#q=͏ :'# ͏  ͏ p͏  Z ͏  ͏  ͏  ZM͏ W͏ ]͏  y  Z!Ay Z/1y Z=2y ZK3y ZY4y !(#q*(#&*!~q>>:"ڒ:"ڒ&"u \S O!)#q:)# ¨ͅ 2*#ò*"M 2*#:*#  F͉ p͏ :)# M͏ W͏ ]͏ :"*"M 2+#!"6>!+#Ia:,#o&&""! >w*! ~ F*! ~F!"6[!\"!]K!"6&"u S 2,#:,#ʗ:,#`O!&" ~ Žc 2,#p U͉ ͉ :"!"6*! !K!"6+6! ""}*"|͌͘͟:!2"!"6:" ͟" *"*""K"j  ! "6"͏ :"b:"Tͥ͟:"2"p *! >w " :"‰!"6!"6*"*" "K:"ҥ:"Ҹ͟!"6*!#  >!"3!-#6:"=!-#"*-#&*"~.*"*!#DM*-#K:-#"!# *! DMK!-#4*"*!#DM*"K!0#s+q+q:"G:"Z!"6͟*.#&" ~z *! :/#wÆ *! :0#w:"ͥ:"21#¤!"6:1#´!"6@:1#!"6 !"6 " :":"2"!:"͟:"21#O>͟ 4*!  !3#s+q:"0:"C!"6͟*2#&" ~b*3#&*!>wp*3#&*!>w!"6 ͏ !"6 "͏   F  U *! >µ͏ û͏  *! >@@25#*! >͏ ͏ :5#͏ ͏  *! > ͏ ͏  *! ~1 v ͏ :"K͏ Ô:"@@^͏ Ô:" q͏ Ô:"/: " HҎ͏ Ô͏ :"Ҥm͏ v!6#q*"|. :6#͘, ͷ:" :6#*!DMͧ "" :6#*!DM "" ! ""*"|.͌:6#(, +͘>>*!DMͧ ""*"}t*"|kͥX*"|h͌͘t͘͟*"}ʘ *! *! ~ژ͘*!DM ""*"}*"|ͥ*"|͌, J͈͟>!"(:"(:"(:" :" ͟"*͘͟!"6:"?:"?:"2":"2!! ""*"}Š*"|}ͥj*"|z͌͘Ê͟  :"¦:!2!!2 o&""͘2:!:!=2"*"MC ͽ !7#6> !7#*7#&\ ~?>!7#4>ͭ! \K!"K:] :e HY!"6&"u \S 28#O!\"!͘͟ *8#M^!"6!:#s+q*9#&)))A *:#& ~!;#q!<#6*<#&u :s—>*<#&u :;#«:<#!<#4Ä!@#r+s+p+q!G#6:H#:H#2G#*D#M{2"!L#6:"=:L# *D#M{2":A#2"}>:A#2"2K#:H#2I#!L#6:H#2G#:H#Dß*H#& *?#*H#&*?#=2J#!K#–!L#6!B#6:K#!B#ړ=:L#ڌ0!B#4uÙ0}>:""!+s#r:"*"#"":2":I#:G#2M#O*?# ~2C#*C#&*=#:s!M#4~2H#*C#&*=#:D#*M#&*?#~2C#!H#6*"~2D#:C#2E#!A#6*"#~2D#!E#4N*=# :tW!L#6m*E#&*=#:D#m!L#6!A#4N*" ~2D#*A#&*"~2D#*D#M{2":":"H:"H:"H!A#4N*" ~2D#*D#M{2"Õ:A#2""!#+s#r*"N{2"!*"#"":""9!+"O#!N#6:"!N#A*O#Ny *O##"O#!N#4"!"6!"6!"6:"Z!:"e!:"p:ͳ2"„"!:":"#H!:":"=o&)))A ~ھ+:"=o&)))A  ~ lNͳ2"4:"=o&)))A *"& ~=*"""!"6#6!Q#6:"=*"N{2"*"#""!Q#4!:"X*"N{2"*"#""!Q#5>:"=Œ*""":Q#2"O>҉e͟!"6:"= ¶*""":Q#2"O> ҳ!"6 ͟*""":Q#2"O>͟!"6:":"=o&)))A ~HF:"=O!" 6>!":"=:"=O!" HqQ͟X͟X͟O!͟OG͟X/  ^:  Q:"s ":"ҁ":"ҏ":"ҝ":"ҫ":"ҵ͝:"ҿ?:"͇:":"!":"!":"͟͟ P:"):"!"64@4:"P:"F!"6@44:"!"t:"h͟͟ Ø:"҅ "Ø:"Ҙ!"6 ":"ҩ 4:"!";͟  :":"!"6  " ͓ :" :" !"6  "  ͓EB "#GB "#IB "#B "#B " #B " #2"O ! "K!T#p+q*S#""""!!"" ""*"DMS :"Ҙ ͟!!6C  !͏ >"9!ʬ !"6ñ !"6!\K9 :"!:"  e͗ :" ͙ :" 1:" ͗ :"!!"6!?!!"6 _ogi`N#Fogo&ogDIRLBL yd'* !9"1>"#2#:Og}**Ip2~w2i#1#":RͶ :O~!ʫ:<2Ž:"2"x2*# O:ļ:<:G>O*# :<t tIw!/>!/>!*6 #:_#:*Y" Y" Y" >*Y"#####Y"##Y"Y"Yz2*Kg"ɯ22!"*DM6:O* 2~ ~ †:<~:2>2:<** "_?:<2>!/:<}:2* ~b W6 y2> # vwm>2>!/ N *~O²+—">2>!/*:< "~G # p *~w#  : *8*:*8yO:O*}O= ~ w#P^#V#ɷ{ozg |g}oh:<͉̉O<OBKBK$'-*!*^#V"DD  $$HD@" @@ $B $$H$H$HH$$! HD$D$D@AD HD$!A" ECopyright (C) 1982, Digital ResearchYA BNKBIOS3 SPR F700 0900 BNKBIOS3 SPR A900 1700 RESBDOS3 SPR F100 0600 BNKBDOS3 SPR 7B00 2E00 60K TPA $$$$$*N2L:y>Q:ͧQy2L"N{NM2L :y>Qk&) ~#fo( ++N^#VQxy!BsN1V!M5 ,6 !~'`8w+~<'`8w+~<'$8 w++4 #~QͧQ=>A!{>91( ( (?80. 5"-floppy-version.˪@_@?@_@ E  /7P E !#O!~(4*w!R$S{M>2s1!~"(4*w!RbS{ME (y >@>P (y 4::! >(> !~(ɯs1!d}2<<2!͘!!(5[!R Sͱ(>!(5[!R S (y (yD_!c~#F~G#N#A>!p}2!h}2t(>2I(>2:I͇2x2!͘ xx:Q͇2sx2y!p! W! K>QCCP COM CRT LPT CEN GRAPH Įď@ }ϋ2*!";< !7>Q>Q!?, W!S" Cx> >2*||o&~~!z!͘x( >>2{C|2y!z> (>w  >w͓ͤ**)܊| **)܊ | ~O #x:{ ɯ2{!B!***)0Y(l| ***)>Y| h&)))H~͊~Ĝ >////////////ͭͦ1ͭ>Q>!2"*2"áäýË^ÎÓØïõ@ã6é;ã ةܩYßO+2;///Ã1Oj$|{Ãà à ÃBB+"}{_}o>2~77ø~7"9:OG#Q{ozg# ""!2*%DM**ѵ+)) H~#+}#<:<ʲ<77:<ʢ=2(*f*(}DɯQ{"(>QKQKQ>Q"%Q!*$K*"x!*!@$@hK\K:K ~#~ w*NK*NK^#V#N#F!x>QGQx3ڰbڼqҼo5p5"""*!yb! ~G*!NKկ2}!,"**NK6 :+OK2$^#V#N#FxNp:$p:Gjxj Y# A>QFQKK{<<ʽ! ~6 69BK! OSYA$Nwy!"(9"f1f! Ҕ2! ~#foCOPYRIGHT (C) 1982, DIGITAL RESEARCH 151282UVV.W=WQQRRSżSԼTTUMM N/N>OMO\PkPzHIIJJƻKջKLLDE!E0F?FNG]GlH{@@AABǺBֺCCD;<<"=1=@>O>^?m?|78899ȹ:׹:;334#425A5P6_6n7}//001ɸ1ظ22*++$,3,B-Q-`.o.~&''((ʷ)ٷ)*""#%#4$C$R%a%p& ˶ ڶ!!&5DSbq̵۵˿~檩˿#6HGg$kxxmt!90$`tkeuggzp|oj ϋ}ŵ$(ϋ y(ϋy(ϋ y(ϋy(ϋ6!fn^#V ~O#~U>6w4~ ݖw =F>:߳G!~( =  wRyO>"S!z!͘ >} ۯɯ2Lww~ȯwn f n D6#~:s=_Gn f wO F2ܳ/ > !z!M͘> /(ްWްz/>y!=͘> !>կNF:޳!0 ) 0 ~=O 0<ݶ/2ٳ|/2ڳ}/2۳~2ݳ~w >c͗/̫sw1=qܱ ͋ͦ/ >c~w =(*B#"Bʬ F6#t 66"@-/ > !z!~#fo >"CBCR2޳q:pwsw1= qͅ##~w"7sw1=qܱ( ~ ͋ͦ  C "! C0".!+>!z͘x((:೰Ԯ>> w(!~_  90>2~|:> y~Ԯ*F#"F(>ԮWy> ~~ F8 >C! #!S~G >>S*H#"H>S*J#"J!ŵ>S>NF({ !4~AO !Fnf!O BIOS error on : track- (A=abort R=retry I=ignore) |:ct>~w ͗ =ĭ *t ~m !~w ͗ = t ʬʬ ˯AIR >/<033O _ W ͋@ $6B6*u:xG xײ~ w>2Ly{wm~w =ͨF6#t 66~s Dm ?7! ~#fo~w~w#~w#~w sw1=qܱ( ~ ͋@/B[u:xG xײ~Csw1=q~ ;ܱ ʵ!~_q:pw!Rwww! 62Lsw1= q6͐w(6ͅ#~w#~w#~w"LƵ髤L 4нȵ髤L0Tʵ髤LOj,&"*(":*2I:+2Q!0p#!d|G![!CCP.COM-error. Press to retry CP/M Plus Version 3.0 - Jet-髤L~#foCqCsCu:y2xi`#z+n&*o&)~#fo~#fo2p2wɯ* "*"" ( !""*$"*1ީͣ y #:(*[KS"C!^#V#{(++~2py2o+V+^ Øy2oi&) ~#fo{!~2p!9bڗ>2#×:#<֤2#*!""++"29Cw*{}<^#Vz!c!>c! Jw*q~69!͐=‡*":*}®:=::<>2*i^#V+ d!K*}@*)): K:) O "!w [O?WGzO:VxGyOGxwq*}}ʴ>2d:#Ϧ>29য2~2#!   )xð*}*}"*x"xm*^#V* s#r**s#r*:Y4Y̓**~#ng* s#r ^#V랉a##)0"xx!"""XC*~<Υ*":!::9*"x"*"g*3:= :Oi :=H:Gi a6:G/O**W :T=ҍ aʚ~¤6*:X)!:T>qk֤!:6>X*{Q:_2{2Ē"͂"X~<¤#cdfg!"()*N!r)!N!{)z<*)"!":X*:w:w#:w*2~*}D̓¡>2ͱԛߚ?~¾¾ʢƢ>w͙=2͜:wÚ~̓ʑpá!6NwͧBpͧȧÚgsr͐-͜ĊͤS)_ͤ̓~?w͐s-?F͜pN͆p# Þ͐*6!¿?~p*6 >2ͱݛԛߚͷw*oq͋"@6ȧ͚Xͤ͋͗wO~<: g~w#w#6##)͋@ * g~?G++!o#~>T}! 6**#K"G*~ xr͐-xą@˘7(͚Sʀw: :<RHͥ:>~c!o#~E^#V)G#~#~!~ b k##N#F#^#V#~#fo~o2{2g*wގʪҢÞ+}*#}o|g:O*s#r#w!~w/~~@w/~/Hͥ*e>=)_g:0"ök*w)*c)-}ͤÀk*s":;:r2͚΋ù͚΋˜͚}/_|/*eW}_*c"e}o|g"c>2{—>2—͇ͱ* «>2͙wBp+Ҟ:w͚AP{ 2W>O2ø}R*e):r͚΋c2ZT͐-ڒ3͗@YsY̓YכYͅ:ߚAsҞ:@Ҟ@Ҟ$͚̓A؋=:<~?¯kÝ?~?ʾZT͐ڝ*>o"͒"!Í:Oݏ"Ý}6͚ ~2Asv@NN~v$̓W+vw̚v$̓rrͅ:rߚ>2+A@2r!Z2!"ög:2T͐-:ʹ>2<2ڒ!w: >2*6ݏݒO~<w:*)@ u:G*g`~!x_<_@*oy<:/G?~##~? 6K@?F6##N6⛯2p##q:#*~w>2*p@! ~*"v@*w# ) 6#̛͙N#FxT]## #~ ȷ  *4# ' 4! *~^ ^33G# Pv:dv6 y2@ !ף)#w*~"Қ!Fw䚨Қ̓Қ:w̚":>垯2̓*~wć"̀!~$6:03i"!~6*e>=)Q!QX@˘ >2 ˘!!q#p#w2wW*e_3ҫ-!s:!xQ*:<œ. ʩ.ʩA܈rr##s܈<}rcN! ~态O>G~G!~G~o>_yG~.|°! w:ck[!x?[! ~ʤ͆[͗PPvqO-á=.:<ʰ! Vq##~_@wͶ:WMںʛ>úͶ >TJ:!ʷ͞x!Ǘw4 ϗPWޗP܈ÂՈÂ*!!~~#~O~#FsO s#r:(„y==„*!^W*y^#Vx7=2wͼկw#KWK*"J T͞*:["+SX:ڜq:ʺ!ʵ>2܈ͤ2іO ̊DM͸}ޖ>r""2:2* :::29:>:>*ڈ>F6:_/G:ʧ:ڨ|OͤG:_O̊̊zW{•|:*}|BKN• zyG:!vq:vՈvMڂ?Ͷ >T͓Â!">Â:G:O:h=27ryy/W!:l=:<>w##~2 4~?ɔ̓¹:<ɔɔüޒAX2rK:w++~=wv4͗O5:2X!"*>o+"v *!b"ݏ": r#~?w#>r# L=J Lv wȧb܈?~O ͆ڔ†wŒ~è# # x ͗w ٓړٓړw@ ~wb͐Úݍ!x>w~6:6~#+w#w+~;wɯ2KOFq-yl?Npg:ʓ~( ȧˆʀHÈ2xą ):@ΒO~#w͚ʀô̓b_++V@* )͗Os++r~Gw#* #~$%+@*9>  #>? ;*~ w-xąH"0 *ĊHEʀ@~›:6¦w͚̋ȧÇPY*{zBKNyʺ Nú2: *~w *" ݏ2>ʄ@~k:(s~*9~Ês~ԛ~ͅ<G:<ސ2x# W:<­:22G?>Grx~:2Ô##~*$*">2̀2kºʺ**iҺ@:O~퐯2~WW:2Ôyʛ?ʔx ʔ |̷ǐÔN:r:/GyOOA +¬ ¢y2:x¹o&:W>OͫE:ڟ?N/*"y2ͦ>2 ݏRXގDM*w6# x *ow**ws#r̀*i6#6*}"j@*|<ď>!8>8> t>nͦv8 ~*ownT] KKͦގ*w"wͦ"w@ :ÎNɎ N#Fy؎*}|h#ð*ͫ# 6*q@!"@**#":&2͒:È0:+Òy<_W`iͫDM*w ~bNpwގDM*we ^#V#~2>â9͆>!"*y³*X*ÿ͂"*g*K!~<:wb##>w#wĊ> r!~#22Zw*q>ww:c *#*is#r*:!:)e:O!*c:Oͫ}@2æ ~á*g:o$*~K6?~wKw**i{#zir+s{O:w:Ғ4~:w?r##rp# ä |g}oì*g #G ¾1*q:*w***> r 2":O:G2!w*~zWw+ !z?#~*!* *G!O~2~m͗O~t>2?:2g͝DM*0MD"!*MD$:Oë!N: «G>O: Šù*Ċ :ڊn` ~#foͤ2O̊"}:O*"!s#r#p*kN#F*m^#V#F*:O}|y9*+"*}|yP#9**DM"*ks#r*ms#r#pyox*kw#w*mw#w#w>2'å2*OͶyڲò<*eͲ:0!::ò2*>*ͫ"4#4#4)7 #  w#*J|^#V#"i##"k##"m###"o#"q##"!s )*s!)*|!6~67rrorFile Exists? in Filenameòò>2a.":2:<:55;:2ɯ22{_zW{_zW )7CP/M Error On : Disk I/OInvalid DriveRead/Only FileRead/Only DiskPassword E)"!z<~rs^#V#N#FxN:oʲ̀õ(# Þry< <<%z~r~ͷ~r6r9rMDÌ:o!6!h: ʚnt2 r62>rz<*9ʌ^:—~x )~:*:ńń>*(+"(w++2+2+ɀp؀!" >2+2*jx.#NzW::!2W!5=^x^z:m:*;#wO:͂^2¢ů͠ă:!ڽ*(~ׁ݁5WèՃ؀jׁM2ͨx΃*(+w"(j !%"(^-:*$P:<\:W:2xM s:<9>2:*9x~+q’x2:**&~2+o#"&!+6Mł:W:2x ͺ*(+"(w  :܂>2*2:*(:+w"(ͺ:G::+̜2 5*(~o#"(Mš*(~`Uoj*(~#"(Ñ!*~6s!+6:+‚xoڊ{2Ó#w:2.+:.2-!%"(2*!†"&!*~4:2-Ԃ:Gͳͨ^2+>2:2*N#G2 2GH)+6:2,:!- :,!+*(~L#Bxz:*:*(~ʓOr  ! O(Ì*(~2**}ʷ~!#¶!""÷~:_:*(#w΀xH!†)6"&:!† x5~y 5 6y~(^@O:=7:y :I :=e: zz#͂:!  G:Ҏ>xʝʝw>ɯw̩z:»!>wɯ:=zxzz::G:=/ͽx:Āy!4 šn!6@G:x~: P:<~: P n6 t6! ^6 t6u:)~<͠^!Ó~*"r~*r~"ÿ<:g:!͐~*f~}D! ~6t!rͷ~~~O(~^~~~  :Function = File = !,~$"h!9"f~!~ ͉~:2t~™~:!~=H~go:O*;{*͂:A2=/}:}}:0! ~dگ}61#d ڸ}ï}p#:w#6 !~6:}6 *#!~)6.#)͂}} O(}BDOS }}> w|M} || 2}*7}w#6?#7} .,:;[]=<>|!?}]}45#R}a{i}_p# l} s} s} l} l}s}:¬|M}|A||2v3*5"3-ͩ-:5Z!""$"5"5"5"5"5" " 522>2 5:4 b:4$M:(5-C+C*M:(5!,5M[!35PMp%M(ʡͣ#v#ƒ$:5}% }!"&:5ʦ>%*#5}| V AX*|:5(#$*#5"A*#5"&#v#% RØV AR*&*R"A*5"%5!4NA#~ͫ% p"5*5N"%5!4q#͢%w 3:4(x *#5:,5o"#5V%2*5Ô; !:V :4:4{%͉"">2!:4:424*o,kÊo:4:4{,ʊ:k*%5#!(5~́ w23@:2(4y""3"323>2v3 :u3L!P46+(0>24:u3:v3"U24͋$͇%ͩ$!5*}*#5":4:4: =X!^#fk:Vj&AW y ~   8 ; C :4:4=G!4F#I ,*5͘EIr,o͉n2"5~2 r,Yo :K4 ͉:K4 " : 52> 2K4::4M:4 Mg %U!P46+:v3Ϳ$ý*3*3"3Ϳ$"3½:v3*3^#V{ʽr+s*3^#V ʽ-:v3:r+s!46#w4> 24͋$í!94~6!(5~6"3~,_#!4w͋$ÏV *3o6͋$*3~6 Þ*3:4,"3~ š62:4*3s#r2(5294*3#"%5͇%ͩ$@*3"5":(42:32(5Ģ >24*3"32(5 ͉r!Q4wM>=n2*5~2%! 5%~2͉:K4 v }>v S M:5p*#5*gu>%"u> %2 :5O%:4©:5[%! 4:4©:4,ʀ>:5: O%% 2)5:4:4 !*%5"-5>2'5*%5"&:4:4(:)5N:5N:4=N N*&"%52)ͫ%:(5ī%x;c!'54!'55:)5ž!":*5ʍ!5%Ù*5%*#5":5*%5~ *%56 ͫ%<͉:K4 "5~2o M%(>@%>#*55%!".!/5",:4M:'5M*,~#T :5T !4N*5*,s#r+"%5yP  ͫ%> ͫ%%g >v % 222:4¦ :4 – ì !ʬ ¦ À :4:4€ ( :4 :4:€ :4€ (€ € x !4À  :€ :>S %2 !~5€ :%j B !4À € !~5€ úG!~4_!p!~5^!~>À >2)5:4 *5" +"%5:4ڥ >ͫ%ͫ%[%:4 :4, V :4  + !4N#~ͫ% > ͫ%ͫ%*5"#5:)5- :)5%͉}*5" +"%5ͫ%ͫ%*5"#5>@:2(4:(5 H 23y"*5"3*%5! {#zt ~+"%5*5+"5wT #"5*5"3:)5ʑ N]T s#r+*#5* {_zW"3:)52v3 > > >2 5n2"5 %: 5*#5* 5"#5*55%"#5:5KBn2: 5O0!*", ++ *5:K4 0@:5Ĩ/ú>2) :u3ʭ :4­ *5+"%5[%2!<24*$#"$""*:40!??"4͋$"5+"%5͇%ͩ$+:4­ :4,J "*} :*5 :5%:4 +:25Ĩ/:4 :4  @S+ >2):4„ ͣ#v#: :5$:)%k %G I k :)%:)c %k %+:4„ :4, " :4 :4/ :4 :5 $*#5^#V*S"s#r*5*#5s#r+"5 |#v#*#5" 5:4 :4/ !"5:5> %AB,#*#5 :4:4 !;*M_!Q^#fkox Iͻ8ʗy0IͻGͰͻHIͻ(yIͰͻͻy0ͻIH'd ! ^#V#*"0}o|gF 9"":!`x=`y0l2!!4^4!4q/:4:4,; *5͉: 5ª|}$ªo͕Ͱ8Oͻy0H͕H͉: 5në:4:4,>C0:4M:4  ;C:4#:4 ! #! #{ozgBB**}j!]~ } #ymy>2(>2v3͖*5|EB"#5>%0,# ^#VÕJB*50MB*50!".*5} "#5^#V"5*.s#r+".*."5:u32'5!5~4P!"*|"#5>%*5%"".o!P46 !L4*>2(>2v3͖>2(>2v3͖NB:O* 0:+5ʘ0*5*!5S*5*!5S\gr!P4w#þH USE FACTOR !M4** "5A1z{*5~2*"#5v#!":5(%! 5%n25%%%>%n2G:5x:L4 o:x_*5#"5:5ʽ*5|ʉIB0>%%O%O: 5%*55%ý:5ʽ: 5O*5*5ESS͎2O=>O͎2N=#y{#* 5* 5 "#5" 5͎21͎2=HÎ2Î20:G!^4!K4wOOn2!6z_{_4A_A?*!5"#5*#5*5{z*/5+"%5**+"%5% V%=͇%͢%*%5#þ!v3ʲ:(O! ^#V4@B%GFB>%%O0*#5##~<##ò*#5"|3#"%5͇%:15^:4^!4~?^#ʲ:4͆!~3"z3^#V"#5}ʝ##~2v32w322(!~38w# ͖!~3"z3>2y3*z3^#V#"z3"#5*#5}ʩ##~<2x3G*#5###"%5:w37> ͺ!w3~w7>w> ͺ:w3Pd!5^!K4~ B!~624(02w3%!>%|_}_> ͺ!w3~w:x3ʜ=͢%ͺ!w34È*#5^#V"#5!y35:24(0!^4!K4w>R0>V0>D>P>L>O>B>S>N0!u~ڇK6N4!E s#r!U :mw* 5!] s#r!t~ ڹ6K^4!1w!;p!u~K!5N!E ~#fo!U ~2n!] ^#V"pK2oo&) ^#fkN]ivKzV{K>ɯo>g"!6ů{_zW5>)D*OxGғ !?uDM!xGyOڱò)â͝ddJ)=J|g}o=2o2o*p"rOxKxGyKxGy0KG*p*r}|K\\z{W¢Ü}|ڜâWʜllyWœâ!!#Qzg{ozg{ozg{ol&:oO:n2m*p" 52n2ox:4:4 ;!,ɯ2t2u2 52o=20!"5" 52m{!t~Q5_!1~9:uK:K4 *E"5:U2 5*]" 5*v"#5:K4 $:4§:4KK!4^#=ʣV²*4(—ҌV :4:4V !!*/O:0K>20y_j:t:_!;~:!ts!1~y_!t~X=w_!1~[Kdͪ>20$y$zU0!%2m*#5"v:mP>U0%4>%:m!>2m*202m!" 5/:0Kx*#5DM*5" 5}|^#V<>E0:u3ʛ*3~Œ:v3ʁ!\4>A!(0":3]#"3,ž"3Þ-2\  :4x_<24!K4w:94͜:94ɯ2:4284]294:4:94K)2:4;4~#!͜,!:4~*4!;4_:94w]294ɯ<*#5"W͉#4#*W"#5ɯ2[![4Y5!!:46"3!:4~q5!84^4!;4~â:u3:94†G³]âʻ^¨^·:94&·!:44#wó&G294xâG:94&:4G/G&ʷ/&ʷG/G!94~&>623y"!v36*5"3$"32:4*W"#5GJ2:42942(524> 2S(0>24ɯ242T!4~@`65!^4#:(5O:4yD(w~$w:(50 |:(5D(A:(5?ʱ@ʱD(Aɷ͙| ;!Cͻ2(5:'5:)5:5:(5ͫ%:(5 !J24:(5 ʞ;{>24:'5ʋ:)5.:5‹;Ž*-5*%5++{Iz]~ T++]!]+?"%5:'52'5hͫ%2'5ä:(5*—:S —ʤË ¤24͙ʳ>|ʾ>:(5'2(5> :u3>+2P4(0!K46 >24>24:(52SR:4Z:'5:4=!EQM<8!LE:(5=I!NE>I!LTM>!GT:(5=M!GE2(5"4!44>24!(5:4ruͳ u͇:(5D(OʓQ˜>ßH©>2T2(5:SD(B¹>D> !452T!"4!4N#~#A07O!T/!~*4! ) "4 :(5 5!'':(5 :(5,;%:(5 !:(5; ,J242Z$ l ` / ‰ >24#!:(52S:4; ¡ :4/!:Z/!)!:4 :(5'#!R:(5'z 24É :(5' >24#!^ :(5 #! #!;!)!<!!Z~4z #!>!!Z~#!5z #!:Z#!G )!Rz >24>VG!>OG!>IG!>BG!0!P!w#w#["!"#5!U3w#w#p"!u3~#4^!v3~w!3ͷ"!3ͷ"!3ͷ"!3~w!3ͷ"!4~w!(4~wN#Fp+q!u3~#^!v3"!3#!3#!3#!3"!3#!4"!(4"5~wN#Fq#p>B0!4"%*%F# #2P"*#5##~G=#w#6#w]$*5!4n& {ozg"#5!5{#z$"5f$*5!4N#yʦ$ ~Ù$f$!U3"Q"/$:P"%*5!3{#z"#5%_!U3*#5~#~&%~#$"5ÿ$&%!%*A1SYMBOL TABLE OVERFLOW *#5###w*#5###~,#*#5_####&%s#r&%^#V&%##"%5F%wF%~#!4~l%6~=ͫ%ͫ%!4N#~ͫ% y%͢%͢%2P"*ÿ*:?*ÿ*:@*ÿ*~x/~# *> x/\ ?-$-w#+!\64 #+>GO#w %+>O # <+6 2+6L#6I#6B#w2|*\+>2*5!"B*!(5~2A*w͹*!1*>826*27*!"/5*"5!5"h*"*"*#"5"!5\, _#~ͨ+ ¶+:;*Aͨ+>:ͨ+Ͷ+>.ͨ+Ͷ+>-ͨ+*!1+!32*!1+:=* D,> D,:D*6,_!D* W,6 4ɯ2D*2*522521528*:\ -2;*2@*O:\ʋ,=Ì,y!<*w#w#w#w#>2+52,5:m$>-!~#$ª,~>-# ʱ,<*A-P-S-R-L-*,+,-,-+5~S-M-25L-15Q-8*1,-x#ñ,~A,-#ñ,#6 !1*!*!E**e !N*+-!j**%,r-6* ,,:=*ʂ-:>*…-2:?*ʨ-!***ѯ2:*29* ,,!3*60#60#60#>235!"*:5ͨ/-!"f*2Q*2e**E*+!1*z{:*5G.*B*-.!"B**\..*B*#"B*+~¤.:u32*5G.*\!F2+*f*-•.*!"f**h*ʹ*E*€.a.Ò.Ҫ.ʒ.6# ‹.͹**h**f*#"f*~!2*G:=*..xx/.x.1,..****w#"*!-*!"***j*!*-/~5/ʹ*9//͹*!2*1L/****w#"*!-*!"****/_!5*~ ͳ.27**/5}!1~ /ͳ.#/> ͳ.>#ͳ.ͅ/> ͳ.*/5~/ͳ.#/> ͳ.> ͳ.> ó.}26*!7*è/Oͳ.:K4 :5:=*yx/:8*!5I0:25!*5—0~0:K4 0!K4~ —0:350:P4+—0:,50ʗ0:Q4#0:L4 0:,5=ʗ0!K4~ ʇ0!4s!7*~!6*Ԩ/4:4!K4ʺ0G~ 0#x=ë0> 0> 024!K4>x6 #=0G!K4~ p%,**}0>ͳ.0*j*+:+5ʨ/0!s*6S#6Y#6M#w!*w:>*2=*!"*%,ʨ/26**j*կ ,,0:?*1::*Z1ͬ2L1͎2**}1}w1>B/a1}|Gd/:?*ʓ1**+![2*CP/M RMAC ASSEM 1.1 NO SOURCE FILE PRESENT NO DIRECTORY SPACE SOURCE FILE NAME ERROR INVALID PARAMETER: SOURCE FILE READ ERROR OUTPUT FILE WRITE ERROR CANNOT CLOSE FILES UNBALANCED MACRO LIB END OF ASSEMBLY : 5O!5 ~#fo: 5O!5 s#r:?*yʟ2š2ͬ2Ž2G:9*29*!:*4>6:9*L/29*2%#333/3 3333#332E3 3   MXList WAITING FOR PRINTER $PRINTER READY $PATCH VERSION3.0 PATCH.COM COPYRIGHT 1982, DIGITAL RESEARCH151282654321:o2! *m" -< |#}0#:] <>2   : : :3! ]~. a{ ##e~ a{ ##~ 2m#~2n*m" : aB{B @2\! :\Ҥ!e~ #Z!CO"e>M2g>2 zÖ: *e}C|O:gM>2 *e}P|R:gL>2 \2 |: @: ,?<2 L*>2 ó!>2 6 =++w: #<: +=6 ?>!6 #=D!~a_{_ w#Q: Ƃ2 * 6 : ʝʯ>2 '0: =„>2 '0:S ʂ>2 '0: =±! 3 #:! ]* } 1]:]>2 >2 A: N* | :02# }0 _'_:# 2$ !]}02$ * " * " ? <͍ <ͭ* |́* }́* |́* }́2 >:" '2" {2 z2 : 2 ܻ: WÈ* |}* |}: _:$ d:$ G* |}* |}2 : {2 x < <͍ C?C C >2% % :' YPyPtz\ V xw <͍ <:$ ڶҏکÜ:$ 2) >:$ 2) >:$ 2) >:$ =2) >2* ! :* O "+ !9 :) O F*+ ~w x <͍: > > 2}!"~"\ʽtS \ _" 2 ~ B* : #=I" 2 ^C* : #=b<* }B* | B!]>I.C!e>I<:\̹@B:C<: 0B C:" 2( :" 00B:( 0B C: 9:<!e>b  9O9$9p<!>b9f<:] ͍ͣ9<!m>I#   <9ͣ< <9͍9<:\@B:C|zʒt< <1Q ̓ͮUtͳr CP/M 3 PATCH - Version 3.0$ ERROR: $PATCH requires CP/M 3$Invalid file type: .$Serial number mismatch$No file: $False password: $Invalid patch number: $Drive $ is R/O$ on $Illegal drive: $ Enter File: $ Enter Password: $ Do you want to indicate that patch $ Valid file types: COM or PRL$ Valid patch numbers: 1-32$ Current patches for $ WARNING: Patches greater than $ exist for $ has been installed$ already exists for $ Patch $None$ for $ Patch installed$ Patch not installed$ $ $: $ COMPRL151282 @yÙCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282YACP/M 3 SID - Version 3.0$1 !~=W!x ~#ôbx {~#o}o.ÃO$ y͏ , $  ͌ 9!z6 # L!zw͌j# X:z 0 ͘=N#Fy}80*z{¯#z+++ ¥ z#½# · 9!`͠ y9!rͷ y=!z{w# % w!P͠ y͓}*w#"͌ @.@<!Eͷ~P !ͷ’P͌Q!ͷªP}QxQ!ͷ͓G@Q! ͷ y͓Gþ!ͷ ͓Q!ͷ͓Q͌Q!.ͷ6y#G͙Qà!2ͷQ͓͌Q!>ͷq eg͙Q:zJEËC–EQyQxQRQ** {zҷ*~#" <AOGƐ'@'OxƐ'@'ON# z8O!B N#N ¾SP.* |} !9":q!"28!"9:] ,:e &͟:l &:u &ͮ!I 1lĤ>#J ,!6-X5AڔҔ_!o^#V - G  + Q  1ͳҔ~½:,=”͍" ,~ڔʔ͍=͍=͍!,o͍ "c=͍=”)*c)!"f,*f*c"h ,*cL>::ʗ^#V#L cxZy y~ #*f ڵ™y ¶"c:,*hT*f , ,T:e,>2e,:ʔ%:e  ͟:u ' ͮ!I Y|”,,}5 2l~2m͍͍"n͍"pDMs !l6ʏ } "v=ʏ =ʏ YP !~ #^#V:l *v{ z "r~62t #w6 ” 1l*v*t!~4 #~#F# x ~#s#r#w>~ʽ ͍=; =”͍Lᯕo>gL,>#!u^#V#0}o|ge X x| y0ʃ GÏ yÏ  G| Q z,{ ,<,>'{>',*##V+^+N+y,L ~+ , :”%,ͳ~ ͍" = ͍"=”" > 2,Y,!|G }G , w#. ~ڔ ͍!=:r ”͍| !| !|”"!~ʩ #~#V§ z§ :w, ‰ :ʔ!~ :w#s#r, ¾ Ô!~ : 6 ~#^#V ,:ʔ!\6#>  w# ' >w# 1 6~!I =”*"!l6~# T :]?2 7ʔ!">HXE͆*ʾ \ͤ2 w# ™ ͥ͝* ҆ !""Ô\ʔ:¾ W$ _$ $ O { x! i`"v2 $ $ w# $ ͥ͝”þ \̀\̀ GтWx!͓B :>ULT͆!6\~# S 2|:] !7<ʔ\ !t   _*\ ʣ \ w Ø *+\ !ڔw{Ҕè *#^#Vr+s+6͓Ҕ*"s#s#rt ! *v*",!*L*L*vL*+L,o=”͍L:X^#VL\~J ʯ.y:,>."Ž! ;w#́=”͍:ʨs#r#;”}w#:;#;>>2o!"#͍}ʔ==”͍""2mNl :ʔ!\>2|!"*"~:8”*"*"*͠ڔ!"\zn<ʔ*ͯ~# _\V”*#"͠:W\J!*L!,:2:2>2::>2 N, !9# Ô ”J~,=”͍xA|”}ҔgA>;Ag};,;Q|”}!qw,s#r,:[|_!~ʐ![4Ð\ͤŽ2[g>>?,!e>Cw#>Ow#>Mw!u>Sw#>Yw#>Mw., * ͽw#  ͽ  * ?r# {zPY! |}>2!""!Ow #w 0q!\6 ͤ!"~”͍͍͍!6W6!6# ,œ>2ß͓ͣ ͓ͣ ͓ͣ ”ʔ   :@w# G6#. 6# x!a_!~> 55*~#"ů2[\ͤͤͤͤͤͤ!ex#y#*}|͓"*}|":!͓> _ͤ~# 07> >  ͤL:8>.^+~+:8*>:|}^ >.*f}o|/+- , 0 Ô^#V#*NyҔ** n +ñ q#^#V""~/o>g++Û!.ʔ@͔^#V= ͔^'D! ڔ'?!q'”S_&#hqf0 Ҕ)DM)) O I^*r^#V#^q̀))))oqh"s#r#!4-®+»*+ þ-y_xWþ!IXN!p~ !D_^!x^#Vx1>-~~>=G!q~L!9#x sYYͳғ*v" !6û+"f*v~#cڻʷ^#Vû~*v~Gx5@xv5 x805 x6 45>=*t~*t$5x*l$*n:585"CZMEIABDHSP!"2"t+"v!91t*v~:t2l!~ʐ#^#V#~ ƒ!~6ʳ=G#^#V#~xâ#"v!N#FN*>7l :|!~9#~#V*v9z9~==2wͲ:l <!*vNl  |Ͳd=Xl *v5Nl :l|*pMD*n:m7l !"N2>**vͳҟ" *t"c, PASS !~*+"|w=2~ !~##Z:t*rw2t*vF#!s! ^#V&N&N,`r<¦Gæ::^#V#2*r^#V<[>èæxjê8_æ*t2¦,:?*v###æG>è><7*|!N*v!>#> :!>=_~/w/w{G=YP"*##F+N+~a/o>g{\z\<33=>!y$ڇ *y$&>'d !y$4d SYMBOLS NEXT MSZE PC END 6!z$q!h#6?! h record(s) written. h#H!:#A{$O !:h# !2h#!@ !:h#S:h#QHP!:#<2|$2h#:h# HG!)!2h#Ô!2h#02|$O> j!!|$6Ô!2h#02w$O> @!!BH @@ABH B! "BHI$$BI$BI $ HI D$HD$$ H B!$D$"$B$DA!ABI$H B$I $HI$H$! $I $I$I $I $BBHHA"HI$H!$HH$ IDH$$H$"BD $$$HH$B@@D!@H" H " "BI$DI$I $H @HI"$AD@@HA$ $@ $@D IB!  $H $I$$HD H!"A""! I$DDI"I$ @$I"DH BH" !I B  B$H$@"IHBI $$@H@ @@@D !@BA$!" D!$A$B@$@@$"$"@  D@@"DH $I!"DH$BB$"H@ $!D$$I$I$$"A$$I  D UUTH@@!@H@ !$  Ã"zw"|z !aF6c#6FCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321A͑"w*w}1ҫ!wE><0;!w!w6!w6!w"'x!%xy2w:w!)x"w*w~2w*w~og |2w:w !+x!/x!F:w_>͉:G!w>A;2wRf%!DB$![D>6;!!D;!!w>;!!-E> ;!@%*}!w;@!7Ewx͛:!8Ewx͛:"w*w:wog<,;!3x!rx*7C~og#))+"w*w#"w!HG"wbj"w!txDͺ(xx~# RE%!E>;%!F>;%@Ra%>B'!F>;%@*xx~2|x!F"w*w+:|xog!Gx͛:*w+:|xog*wx͛:R%!(DB$*w+:|xog>;!@!|x4nR%>B'@÷}x~# R%>B'!G> ;%@@%*=*w+*}x~og;@*w+*}x~og>;!9E>;!SE>;ͥ*w+*}x~og;*w+*}x~og#G>GA;*w+*}x~ogF>k}*xwÑ ̀*zw"w*w+"w*w+"w:w*w"w:w2w*w*w*w>og^<"w*7C^#V*w<*w<"w*w>og;#"w*w*w*w>og^<"w*7C^#V*w<!xE><0;!x*w>og;#"w*w*w*w>og^<"w*w*w^+++*w>og^}2w!Hg"w*w"w!HW"w*w*w<*!xͨ*w*w<"w*w+"w*w+*7C^#V<|z*w"w*w"xw!xD:w2w!x͂ :ww!xD!x͂ aÀ!xͨ!|w# À}!"w*7C^#V*w<|!xD*w"x2x:w2x:xog:xogw!F6*w:xog)))))~!Fe!HG:xog)))))6*w#"w!x4!xͨÚ!w6!"w"w"zw"|w!w6*w`~!F­!w6*7C^#V*w<2x:w2x:xog:xogog;#"w ^#V"x*vw*zw< *zw#"zw:w*~w*zw`;w*w#*x~og)))))*~w*zw`;> GA;*w *x~og)))))~*~w*zw`;w*w*x~og)))))*~w*zw`;>GA; *|w#"|w "x*x | !x/F><,;!x!8yC"~w*x)>og;"vw :w R9 %>B'!E>;%@!<,;!:ySx !w6!w6!{yD><,0;!yySu !w6{ ͔( ^#V"y*y^#V"y:y *w*y)))))~2w*w*y)))))*w:wog)))))> GA;:w!F :w *w:wog)))))6 :w *w#:wog)))))og^|n !w55r !w5*y+"y*w+"w:w *w | *w#*w^|± *w#"y!yͨ!yͨ*w*w<"w:w=2w:w !w4Ó ^#V"y>2y:zw2y:yog:yog< *~w:yog`;~c *~w:yog`;~*w*y~og))))) >2y:yog | *w*y~og))))):yog*~w:yog`;:yogx͛:ʳ !y4W *~w:yog`;6c*zw+"zw:y!y4 >I*xw"w!yL! *w#"w*w"w:yog#"w*xw*w< :y<2y:w2y:yog:yog*w+"w*y4nS^#V"y*7C~og*w *y~og)))))~og<*y"y!y 2y:y:wog#>og^"w*w<:wog"w*~w:yog`;*w*w)))))*w `;>GA;*~w:yog`;~*w+*w)))))*w `;w!w6P^#V"yR;%!-DB$!E>;!*y;!!E>;!@RL%>B'@(^#V"yR%>B'*y;%!-E> ;%@%*!w;@!7Ewx͛:!8Ewx͛:>m2y:w2y:yog:yogog^|*w:yog)))))6+:F*w:yog)))))w>2y:yog |e*w:yog))))):yog6!y40!y4^#V"y!F6*w*y~og)))))"y!z"y>2z:zog |*y+:zog~g.*w *y~og)))))~g.`|!z:zogw!z4á*yGx͛:R-%>B'!G> ;%@RI%>B'!2G>;%@c%*`! z;@! z>;!9E>;!SE>;ͥ! z;>2z>2z:zog |! z:z_>͉:*y+:zog>͛:!zF><0;!z!z5!z4Ò!"w"w"w2Rz2Vz2Wz"w*w*w"Szgo"w!HW"w!Hg"w*Sz*w<!XzD2Uz:w2\z:\zog:Uzog*w#"w:Vzog*w<|!mz͜:Wzog*w<|!qz͜!*w+"w:Rz!uz!yzÙ}z~# %*w*z~og)))))*}z^#V*z~og)))))> GA;*w#"w*z4*z~og*w<|˜*z~og#>og^}*zwz~# ¡*z"z!zͨ*w*w"w*z6*w#"w%z~# *z~2z:w2z:zog:zog<\*z^#V:zog)))))6>2z:zog |U*z^#V:zog))))):zog6!z4!z4*w+"w*z~og+"w*z"z*z"z!z͜2z:w2z:zog:zog<*z^#V:zog)))))6>2z:zog |*z^#V:zog))))):zog6!z4ý!z4Ë*w*w<$*z"z!zͨ*w*w"wA!z͵"Hw͖!z͛"twåz~# I*z^#V*w;͍6!z>͓7!z͚"w!z͌!zp"w!z͘*z"z!zͤʤ!G͊= z~# ­*z^#V*w;͍6!z>͓7!z͚"w!z͌!zp"w!z͘*z"z!z!zͩ ![͊=m^#V"z!z*zr::z52z9!z5!z͛"tw!z͵"Hw*Hw|f!zF><0;!z*Hw^#V"Jw*Hw ^#V"7C*7C^#V*7C~og#;͍6!Lw>͓7*7C###"{!{A#͍6!Pw>͓7!Tw"z*7C ~gj"z*7C~!z W#:>2z:zog |l*z++:zog)w#w*z!zF:|e*7C^#V |H:z=*z+:zogwe:zog+*z++:zog)s#r!z4×^#V"{*{>l7!Lw>l785"{!{^#V"{*{>l7>5!Lw>l78>55*7C ^#V^#V"{*{>l7>5!Pw>l78>55>^#V" {*7C^#V* {^#V<&!S͊=* {^#V͍6!Pw>l779`^#V""{!${"&{!"${*"{~*&{w*${ruq!U͊=Û͇!({;!GG({x͛:ʙ>ɯB^#V^͞#V ͪͪ"  Later CP/M or MP/M Version Required$*}**}{ozg|g}o!\!l!*:3>:͞!L*3>͞K* !*ͤ͞ ͤ  >  ͤͤͤͤͤͤͤͤͤ͞ͲͲͲͤͲͲ Ͳ͞ Ͳͤ!Ͳͤ"Ͳͤ#Ͳͤ$ͻͤ%ͻͤ(ͤ1^#V#^#V́"> ́"> > ́">́{2> ́"́">́"> 2!2`iPY*}~##~#fo##^#V#{_z/!T]W{_z<KB ^#V^#V)F<*}!9{ozg| #~wþ))o |O#"9C[4BZ!9SJ~#$:> $J&9}x2LCy j2MC"){AE$:RC+-/x2LCy2MC"){Aͯ:LC!MCP& G7!9~#$&*){7<$2;C2PC2SC<2KC!9 V+iv-v>2PC#ҏ… ʉ ,v.¦#Ҧ,×eʰE+-#2QC$!LC5¡:MC!OC<_!;C>w w>+!NC~5>. G:QCx0:NC> !PC~ 5!NC4!KC5-2QCx!KC^4{# # !;C~0>0"+{*9C~2/{:PCA Ϳ"A <:/{20{>Vͬ"!0{S 5~/o :SC‰ >9ͬ"ʉ >*ͬ"w  y *:0{!9q#=€ Ï">21{<22{23{ 2.{:2{_:/{"*9C~2-{:-{9 :1{ :1{21{͟" :3{=O:1{##:3{O:.{#͖"Õ Z *A!O:1{!y 21{:1{)!:.{0)!:3{O:-{*#!> #;!:1{21{:3{O:.{#͖"Õ :-{͟"!:-{"†!:-{"o!:3{O:-{##͖"Û :-{21{:3{O> #͖"Û :1{!:.{0¢!:3{O> #!:3{=O:-{##:3{O:.{#:1{21{!:3{O:.{#͖"Õ :-{V":1{":1{21{͟"":3{=O:1{##:1{ "<21{͚"Û :3{O:-{"H":1{3":-{B="?":1{*?"> #͖"Û :3{O:-{CV"D:PCi"> # #Æ":-{C}"# >R#Æ"# >B#͖"͖"Û :0{*+{!3{4!2{4S+-$G:/{Ox*9C## ¶"<>Sͬ">+ͬ">-ͬ">Cͬ">Dͬ":/,.B!2{N*9C# Ⱦ"G:2{_:/{O x*9C# Ⱦ#!i#9w$G:PC8#x+-L#SF#x+L#-SI#>+>-> F$ h#x=b#G#O# #:kCx#ډ#!ZCxO#ډ#$O#'O# £#O#> $Õ# µ#x¯#>$O# ##O#x#>O#='#$x!XC#$#:iC#$:XC> $#>29{!7{K':iC+$!XC+$> 3$> 3$3$26{!4{'!:{Ú=ê$$^$^#Vʃ$a$ͪ$F$#F|$#N|$#^#r+s#^#V++r+s~F$5F$$5^$q#pF$O$4~ $_$s#r#s#r#q!$Ú=$$C$$ Format Overflow*C-&C![{.%O:Cy+%!9G'%~#'%%y.%O:C=%Æ%͹%F%{N%*iC|w%j& *iC*XC<#<> %> %͹%> %{=>'%!9ʨ%=~#'¡%{>'%%Ì%{=>'%{>b%*XC++|2{!{'ɯ%>%>2|" |" |`i" |!9"|!{%[| ~# %*[|~n&*[|~C&!U|>;G3!!!C(!C"i|!g|͋*k&!U|>;G3!R.!!C(!C"m|!k|͋*À&*]|"o|!o|͋*!q|(*a|^#V!aCs#r*c|^#V!cCs#r*_|^#V:|*qC:|G&!u|('*_|^#V}*qC}G&!w|(':C '*_|^#V}*qC}G '!y|(':C''*_|^#V}''!{|('^#V"}|!C"|*}|"|!|͚=2|!|K'^#V"|:CZ':C'*|'*|5!|6:| ʀ'ͳ'r'a'ò'!|'*|'*|5!`C6!|':`Cʯ'*|6Ì'g,2|:|'!C"|!"|!|͚=!XC6#6!|6 :C'!|'^#V"|!TC"|*|"|!|K1%(!C"|!"|!|͚="((:C(*|~ ?(*XC#"XC(*|~ S(!XC6#6(:C(*|~ u(*\C#"\C!ZC6#6(*|~ (*ZC#"ZC!ZC#(!ZC6#6*ZC*kC#<|(!C"|!"|!|͚=('!`C6"|!9"|!|(! 9^|~# (*|^#V|)*|*| r:*| nb5)*| !|>=;O)!|>;*|:!|;*|~#{)*|^#V)))|{)*|6P#6*|~#µ)*|^#V))|)*|6#6õ)*|6<#6*|6#6*|6#6*|6#6*| 6*|^#V}4}2|*|^#V} *!|44*|^#V}"*>2|*|^#V}M**|~#M**|6#6*|"|*|"|*|"|!|(0*|^#V|Š**|"|!"|!|͚=^#V^#VOA:Cڨ*!*͚=2CO!C·*6ü* +~#w!C s#r!C4A**C** I/O Stack Overflow!9"|!|*+!9$>'+%~T]O ++~+>x^#V"|*|6͌+;,T+!C"}!" }!}͚=M,]+^,2}:}+,ͩ+:|> b€+,Æ+ͩ++>,;,+V,+D,+Ì+V,+:}+^,+,^,++D,+M,+,,é+!`C6M,+V,+D, ,:|!`Cw,+g,2|*|~!,:|*|#*|~ogw*|4:|:| :|,:| ?:|':`C‡,!TC"}! }81,! }6Ò,:`C2 }!`C6: } ڡ,*XC#"XC: } ±,!XC6#6: }"3" 3*3^#V#"3^#VͿ,,"$3,"(3|,|~Ϳ,,ya-A =.:;<>[]y *"3, -(-,$-,1J- o&))))\xH  g-#w g--"-*(3#ʖ-AҖ-G-,:ʛ- 6à-p4-+4--#,-#*½-6?-w-¬-,---#6 -..- 4-.,.#*-6?.w--,.-.#6 .%#6.*(3##^ ~?1.# *.xCON CON RDR PUN LST M!L. ~"-$.-,1ҕ.\|.l.$.!~ .-!9.,°. ʾ.-#Ý.x=GÚ.->ɯ*(3+.^#V.#{#z.6#6. r+s!}F#~*/!}6P  eA eA!}^r+s6 #6 !}4^N*(3|Z/}=G/.V/R.R/O>~f/f/>ͨ/N*(3|’/YR.=/y‹/eAÎ/>~ʞ/=ʞ/>ͨ/q2-3*(3/"*3./{..**3*(3#:-3O/.#s#r/../.è/.r+s{0!'34**3+>|0+}o͵,Ϳ,~2&3Ϳ,""3,:&3.1[.a0G:&3.1*$3p[04#63,:&3|00*3++"3Å0}+ʉ00}|23"3,0"31F<|.1##"(36*$3s#rv-š2{ ʚ2*(3:&3w060*3"3<1:&3š20<ʚ2!"3*(3(3w# 1*(3~#3*(3 B>3*$3w#w3͵,,34/Ϳ,q3͵,,3Ϳ,Nm/3*(3~" 4#4#4͵,,3~Œ11K43.>13͵,,3~.>13*(3~ʹ1>31P43*(3!*~!/2,3*(3|1(^#V,,{z1z]22'3z(2:,324/q#2Nm/#2*(3|]2*~]2=!'3Z2:,3ͨ/W2S2w:2^1>͵,,3|}3~> 3<3͵,,3|”2*$3w=3*(3$B*$3^#V6+6++<3͵,,3>3"N#F#~Ϳ,q#p#w>3͵,,3>3*~,!2=2>!*(3" s#r#w=3* 3 }!m}6 4>2l}*i}!4#4#4~#N#F#y#x#:l}*i}!!:k}ʈ3]3G3:m}~G~#~O?3#~3! p! y! q<33.3~3#!!3! 6?<04= _!x$4*4FN4wxG>O>G!$q#p#6R4"f}"i}2h}x2k}.32l}>3!h}~54m3ʘ4=4:k}4*i}<˜4G34*f}:k}O*i}:m}´4y O4:k}G3*f}w# 4N3:l}4*i}!]343*f}"f}g4:l}/g.> Gx|g}o5@5!9VzwzO#5<599! 9/GO~9O9~q+d5!96#=w5O!9Fx7yҮ5! 9~WwzO+›55_ /!9~#=557"n}>6*n}"p}56*p}"p}56*p}G!9!xb6 ]6+/6$%?'w#6-!9~R7&7~#R77! 9~.87+60D70D76 #,7+r>o&9y>o&90w+i76.7w#Ì7 O~#¢7Gxڵ77 9> 79#7!9!97>?'w#7!9͛8! 9͛89! y@88!9o>g~18Gx8f848!9!w# L898!9!9!'#s8!9^{w{W#‡8~W8~+¶8ê87>?'w# þ88!9~#88!99#8>/?'w#•9'w#¦97>?'w##´9^{w{W#9!9Ú=9999!9MD^#V# + w9ȇ :):Wf.0:r~#fo0:s#r!>O @:)8:|W}_ W:|}o|gG:yx/Wy/_{zW{_e:yw# r:~#É:~#W #ÿ:F#"r}x;:*r}!9G_>WObk++:~+:y~#//); ;=;);ɯo>g{ozg!<Ú=<<=!C{#z*aC*cC@xyx >c>_!?^#Vͺ>]>>(_>y͖>>)_>|@>R>'?|L>R>ͺ>>B>,_>]>> _eA eA eA0:_>_>m>m>]>|{>}{> ڦ>dԨ> ͨ>ڳ>ê>xm>N #~_>ü>!?ͺ>*}!9{_z>{> ?>]>>#_>*}>=^#V#͇>??>: "?>?_>!?ͺ>ͺ>>=_>^#V|W?}N?.))@ú>#F>A?> #r?~ >.?~ ?=c?^#V# File: Traceback:???????@ ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADG!C~N@3@B Condition Stack Overflow$4Ox!t} w#s#r#s#r!9!C s#r!CN!t} +++++‡@#{ @#zʥ@++~Ç@++!C5!~# ´@ð@!CN!t} +++++@#~#@+{@#z@++~@#^#V=!C~OA5:C_!C^#V"CTC.~# !A*qC)))))C )| 6A*TC|}*D"XC:C*CTCw# \A*D{ vA zA!#"DìACopyright (c) 1980 Digital Research, v1.3 !"}"}"}2C2C*} A"}q#p##}o"}*}o|ABB+w+w+r+s4w#w#s#r<2}++*}s#r"}*}#"}*}DM!}x~¾B#~+¾B+F+Nq#p*}+"}ʹBҼB=oB!+~O~#~G!/x—ByʴB >O6# ŽB ~B=ɯ ~#fo++-B!}~#B*}$BBCBC  Insufficient Memory$ Invalid I/O List End of Execution$(CdSYSINSYSPRINT    30INITDIR WILL ACTIVATE TIME STAMPS FOR SPECIFIED DRIVE.1Do you want to re-format the directory on drive: Do you want the existing time stamps cleared0Do you want to recover time/date directory space (Y/N)? YyABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzEnd of PASS 1. ERROR: INITDIR TERMINATED. Requires CP/M 3.0 or higher. Directory already re-formatted.Not enough room in directory. Wrong password.No time stamps present. Not enough available memory. Disk is READ ONLY. Cannot find last XFCB. 3Cannot re-format the directory with RSXs in memory. Unrecognized drive.Cannot select drive.! ABCDEFGHIJKLMNOPDRIVE: Enter Drive: :Directory is password protected.Password, please. >   w'xFwwww5xwwwxwwwwwwwwGwwwxxwxxwwxx{͜*{~ *{#"{*{#"HR :\Oy<2\2y.3l -:1/Ҁ!u6:u<2uO!\ ~??(> !uҀ:2/Ҁb@2x:xy:xYH/} .l\ -ˆͫlͻ2z:zµb:z6:z`O! "/E";G"=I"?"A"C"E: 1Ҷ*/:y³:\A=OI:I I!v6> !vW:v ?.I*v&*/NI:v<2v)b@2x I I:xƒb:xy:xYHҳ. */#DM] -¨ . */#DM] -  ͫ*;E*=G*?I*A*C*E!=lͪ-.*=l -%2zõv!q*&!p+q* !s+p+q*:w#6* *#"N#Fy  !p+q*! p+q*!"p+q*! -!'q:'2#!$6#1!*r+s+q:(2#!$6*)#s#r#1m!Nq!O6*O& X>*O& :Nl:O!O4F!Ur+s+p+q+p+qͪ !\6*T~*T~2\*YM=2L!`6:L :`*YM=2LïÐ:V2KN :V2K2_*T~2]!`6*T~2\*T~j*TN! *R*R =2^!_^!`6!W6:_!W[ :`T!W4=a*T6N *T:]w:KH͂+s#rͪ :Lʔ*H#"HÙ!L6:\2aO*R ~2X*X&*P:!a4*T:aw*X&*P:Y*a&*R~2Xë*T6*H~2Y͚:X2Z!V6*H#~2Y!Z4N*P :M( !`6> *Z&*P:Y> !`6!V4N*H ~2Y*V&*H~2Y*YM=2L:L>!LHҗ !V4N*H ~2Y*YM=2Lf :V2KH͂#+s#r*HN=2L! *H#"Hê ͙ b I I!es+q+p+q:e=2e *b:dw*b#"b !fq I:f) b:f7 b:f:fHU b:fc b:fq b:fҁ !hp+q:2Қ *g >w3ͫ*g:\w*gDM"i*g >w*i} *i|2k:kH *kM :k>Y2la :l{ :l :lb3 !m6>!mڗ 2n D *m&3 :nw:n O × :nZ  :n€ :mm  :m=2mO!3 6 , :n !m4# ͙2n!oq:1 :\A=OI:I I!v6> !v :v .I*v&*/NI!v4 bb*oM \͂ 2wQ :w$ *wM B :wB *wM͞ \͂ 2w:wQ *wM͞ !L6!J6:L:LH:LH Jt:J b.bLb:KH͜+"p!r6:K!r *pNI*p#"p!r4¹ :J !26:J !16\ !tp+q*s~ ~ H% *s#"s *s~1 >>!`i^#V#~#for0V y wÇ G:„ xA  a{k_  ~ ~r_ogi`N#Fogo&og_{_z#W0͖]>2_!"_>2|_!z_`>GͦT!N_6!O_6>@2P_!"Q_>2S_>2T_>@2U_>02V_>?2W_!X_`>GͦT!`_`>GͦTJ!;;|’R D!`>$IT:C]~©͢og#}w~_W:U_og}3>!_G\T#! axͫS>2_!_ a>͕TÇ##>IT! a> IT;+M>zSG!_>͕T!a_>͌SU!_GTQ}2_*_:_ogWR#a>GͦTb#a>GͦT#!axͫS‡2_!Eaͬ#!_rT >IT#T!_ \TO-)3 :N_2Ca:Ca!_~#R D!`uB!a> IT#<]jR D!`uB*_> ͡R#IT#<]!Ga $Rj D!`uB*_?W^#V> ͡R#IT#<+*_?W>IT#<]"!Ka\T!Ia?7!Da\T!(aDaxͫS!_~#!)aDaxͫS!*aDaxͫSR D>uE!+a>IT:C]!-aDaxͫS!.aDaxͫS!La_ !/aDaxͫS&H!0aDaxͫS;ͅ,!1aDaxͫSS!Naͣ !2aDaxͫS²R D!`uB!3a>IT#<]!Xa9a>ͦT!Ta2Ya!Pa 2_R D>uE]!9aDaxͫSn!:aDaxͫS!;aDaxͫSX!(aDaxͫSS#!aDaxͫSHͩ$!)aDaxͫS]́.!?aDaxͫS{!\ak6!^a_ !@aDaxͫS“!`a̓7!AaDaxͫS«!bai8!BaDaxͫSh"!*aDaxͫS:O_2Caø^^#V#NWY *%o**%o{ozg|g}o!\!l!3>YE >  Y Y oBY.:O*yO|g}o|gyg)|g}!o _x! r#s#%_L_RgoA ^#V"da*da^#V*_W|– R D>uE]*da6#6â *da^#V#r+s^#V"fa*fa^#V+| *_*fas#rR D>uE] *fa^#V+r+sͼ"_!aW*_##~og+++L;LR"aJ!;; |? ~og+"a!aͿ5"a*a*a?W"aP ~=2a!a"a!"a#"a*_"a*a*aW *a?W~og"a*a?W~og)))))*a?W~og"a:a !"a*a#"a*a:T_og?W"a*a >og͡W"a*a*a+++*a?Ws#r*a*a+*a͡W*a?W"a*a*a*a?Ws#r*a?W^#V*a"a*a#"a` R D!hauB*_> ͡R#IT#<*a> ͡R#IT#<]R D!uauB!a>IT#<*a> ͡R# IT#<]R D>uE]b~# *b~ :O_*b~og@ }3>!b\T*_#?W"b*b#"_*b~*bw*b^#V?W*b#>GͦT*b^#V?W*b >GͦT*b 6*_*b$cS~*_w!_bxͫS *b {zSaͦT:_ *b^#V?W~2b :_2b!b*b"b!b%, R D>uE!auB!b>IT#IT!bͬ##T#<*b#>IT#IT#<*b >IT#IT#<]:N_*b"b!bz!_bxͫS*b^#V?W~!bd*_"b!b%,XRT D>uE!auB!b>IT#IT!bͬ##T#IT#<*_#>IT#<*_ >IT#IT#<]:N_*_"b!bz*b 6*_6*b"b!b͒¥R D!auB!*b>IT#<]:O_*b^#V?W"c!c*_"c!c]͇R2_*_ ?WW :P_og͡W"_:_!"b*b"bR2 D>uE!auB!Bb>IT#<]*b"c!c $Rz D!auB!X_>IT#IT#IT#<]:_R D!auB!Jb>IT#<]*_#"_:O_2_:N_2b:_!"_*_~=2 c! cT*b^#V?W" c! c!"_*_+"c*c*_W/:_/Z*_*_)"c!cͧ*_:P_og"_*_"c!c͂P:N_2_*_"_*_#"_!"_*b~=2c!cT!c!"_*_+"c*c*_W/:b*_*_)""c! cͧ*b"&c!$c͊:O_2b:N_2_:_*_*_)",c!(c7"b*_:P_og"_*_#"_Áô*b"0c!.ce͇R2_:_:b7*_ "_*b6*b 6*b"4c!2c]͇R2_:O_2_*_ ?WW :P_og͡W+"_:_!"_"_*_+"6c*6c*_W/:_/*_*_)":c!8cͧ*b">c!uE!auB!\b>IT#<]:buR[ D!auB!ob>IT#<]:W_*b w*b"Hc!Fcz6!_bxͫS6*b^#V?W~!b:_R D>uE!auB!b>#IT# IT#<]*b^#V?W~!b6*b*_cS*b"Lc!Jcm0*b"Pc!Ncz!Rc͚*b^#V?W"Tc!Tc*_"Xc!Vce͇R2_:bR D!ZcuB!_c>IT#<]"!uc\T!sc?7!oc͕Sʨ"xc!vc͘+*_?W!pcxͫS*_*_?W^#VW"_*_+++*_?W^#VW"_*_+"_*_"qc*_"zc*zc*qcWs*qc?W*qc#?WcS*qc#"qc,*_*_WR D>uE]!"_c~# *_#?W"c*c~*cw*c^#V?W*c#>GͦT*c^#V?W*c >GͦT:W_*c w*cc>GͦT*c~=2c!cT*c^#V?W"c!c!c%,R D>uE!|cuB!c>IT#<]*c"c!c $R D!cuB!c>IT#<]"!c\T!c?7!c\T!ccxͫS!cʹ:O_!czR D!cuB!c> IT#<]:N_^#V"c*c!c>͡;}2_:__*c:_og+MnSG!c>ͦT*c:_og#sSG!c>ͦTw*c!c>͢T!cc>GͦT:O_2c!"c*c |:c/!c*c]>zSG!c>ͫS:N_2c!c*c>uScͦT*c#"cÃ:O_2c!"c*c |:c/9!c*c]>zSG!c>ͫS/:N_2c!c*c>uScͦT*c#"c!c>IT!c>IT!cT#TTRu D!cuB!c> IT#<]D!cuB@!}_rT]!d͖2!}_rT!d}_>͌S¯R D>uE]!d-"_d~# :O_2_R D! duB!wd>IT#<]R( D!duB!c*d^#V?WGT#<]*d^#V+++|\TD!duB@!}_rT]!}d}_>͌Se>!}d}_>͡;}2_:_ʏ!}_:__nS~dͦT!~d}_>͡;}2_!}_KnSG!d>ͦT!d?7*d\T:_!}_sSG!_>͕T!_d> ͦTî!}_:_og++MnSG!_>͕T!}_:_og#sSG!d>͕T!d͖2!}_rT!d}_>͡;!d}_>͡;|[!d!}_rT!_> zS#>ͦT!_ > zS >ͦT!_K> zSG!d>ͫS2_!d_>͌S!__>͑T:_2_E!d_>͌S>2_E!_GT!d> IT;|8!d_>͑T!d͖2!d͕S2!__>͑T:_2_!_65>E!_GTQ}2_*_:_ogWY>áyD!duB@*d\T]*d!d>ͫS>*d"d!d?7*d\T*dn&:U_ogW"d:_og*dW*d+|>O*d}!d}_>͡;}2_:_!_}_> ͢TG!}_:_og+MnS!_> zSͦT!}_:_og#sS!_ > zSͦTRe D!duB!z_>IT#<]R D>uE!duB!Re>IT#<]R D!duB!ke>IT#<]R D!duB!~e>IT#<]R D!duB!e>IT#<]R D!duB!e>#IT#<]R D!duB!e>IT#<]R5 D!duB!e>IT#<]RR D!euB!e>IT#<]Ro D!euB!f>$IT#<]R D!euB!4f>IT#<]R D!euB!Of>IT#<]R D!euB!jf>IT#<]R D!#euB!{f>!IT#<]R D!*euB!f>IT#<] R D!1euB!f>IT#<]R: D!8euB!f>IT#<]RW D!?euB!f>#IT#<]Rt D!FeuB! g>IT#<]R D>uE!MeuB! g>IT#IT#IT#<]R D!'guB!3g>IT#<]!Ng2Jg:Jg:_:N_2Mg:O_2Mg:N_2Kg!"Hg*_"Rg*Rg*HgW/:Kg+*Hg?W!9gxͫS:Mgj*Hg?W~2_!Tgͬ#!_rT!Vg 2Kg:Kg+*Hg?W:g>GͦT*_*Hg?W^#VW"_*_+++*Hg?W^#VW"_@"!Lg\T:O_2Kg*Hg#"Hg :KgR D!,guB!;g> IT#<]R- D>uE]\g~# 3*^g^#V?W>IT!Zg>IT*^g^#V?WT#T!bg \T!"`g*`g |*\g*`g]> zS!bg*`g]> zSͫS*\g*`g]> zSG![g>ͫS:O_*`g#"`gÏ:N_R D>uE!oguB!g>)IT#<]"!:h\T!8h?7!2h\T!g2hxͫSL !7h6d !g2hxͫSc !7h6d R D>uE!tguB!g>%IT#<]"!=h\T!;h?7!g͕S23h:3h R D>uE!yguB!g>IT#<]R D>uE]:O_24h!"5h*_">h*>h*5hW/:4h/D!+*5h?W!gxͫS0!:7h-!y!:!:7h:!y!*5h#"5h !_h> ͦTRs! D>uE!~guB!h>IT#<])3g":3h"R! D>uE!guB!h>IT#<]!@h $R! D!guB!h> IT#<]"!Dh\T!Bh?7!2h\T!(h2hxͫS!"Gh!Eh͘2_"!)h2hxͫS":N_24hf"R9" D>uE!guB!*h>IT#<]!Ih $"Mh!Kh͘2_@f""!2h\T:N_24hR" D!OhuB!Yh> IT#<]"D!ThuB@!}_rT]!}_!dh}_>͡;#sSG!ih>͕T!gh͖2!}_rT!eh}_>͌S"!~h!}_rT!"eh*_"h*h*ehWA#!h}_> ͢T!h.7#R+# D>uE]!h $!hk6*eh#"eh"RR# D>uE]Rp# D!huB!h>IT#<]!h2h:h‚#:hw!_h>GͦT:_2_!__>͑T)3^#V"h*h~og>͡R!h\T*h~og |#!h{uSG!h>͕T$!h>uSG!h>͕T!hGTT^#V"hR$ D!huB!_>IT#<*h^#V?W"h!h>IT!hͬ##T#<*h^#V?W>IT#IT#<*h^#V?W>IT#<]~=2i!iTR$ D!huB!&i>IT#<]$D!huB@!}_rT]!8i}_>͡;}2_!}_:_og#sSG!i>͕T!i͖2!}_rT!9i}_>͌S;%Ý%!9i}_>͡;|!:i}_>͡;|g%G)Ý%Rx% D>uE]!i!i \T!i͠%R% D>uE]D)i~# ¥%*_#?W"i~*iw*i^#V?W*i#>GͦT*i^#V?W*i >GͦT:W_*i w*i:i>GͦT*i> zS*iG>ͦT*i > uS*iG>ͦT*i6:W_*iw*i:i>GͦT*i^#V?W"i!i*i"i!im-'R,' D>uE!huB!;i>IT#IT#<*i^#V?W"i!8i>IT!iͬ##T#<*i> IT#IT#<]!i%,'RT' D!huB!Zi>IT#<]*i"i!i $R}' D!huB!_i>IT#<]"!i\T!i?7!i\T!|iixͫS®'!iʹï'*i~'R' D!huB!}i>IT#<]'R' D!huB!i> IT#<]*i"i!i $R( D!huB!X_>IT#<]R( D!iuB!_>IT#<*i^#V?W"i!8i>IT!iͬ##T#<*i>IT#IT#<*i>IT#<]!i|i>GͦT*i~(R( D! iuB!i>IT#<]"!i\T!i?7!i\T!|iixͫSC)*i"j!i͚*i*i^#V?W>GͦT*i*i^#V?W>GͦTø*Ri) D>uE!iuB!i> IT#<])D!iuB@!jrT]!j!8ij>͡;#sSG!4j>͕T!2j͖2!jrT!ij>͌S)!Ij!j \TR) D!iuB!i> IT#<] *D!!iuB@!jrT]R* D>uE]!j!8ij>͡;#sSG!Mj>͕T!Kj͖2!jrT!ij>͌SW*!bj!$j \T!"0j*_"dj*dj*0jW*!fj.*!pjͻ*!tj \T!jj͠%*0j#"0jq*R* D>uE]$,j~# **j^#V?W>IT!i>IT*j^#V?WT#T!j \T!"j*j |s+*j*j]> zSG!j>ͦT!:ijxͫSi+!j*j]> zSjͦT*j#"j+!"j"j*j |+!j*j]> zSG!j>ͦT!ijxͫS+!j*j]> zSjͦT*j#"j*j#"j|+*j"j*j |,!j*j]> zSiͦT*j#"j+!jj> ͕T!jT^#V"j"j!jͧ*j"j!jm2j:jS,:O_>3> :jog)))))͕SҀ,:N_Ä,:O_R, D>uE]!"j*_"j*j*jW-+*j?W!jxͫS,R, D>uE!juB!j>IT#<]!j $!jk6*j#"jâ,R- D>uE]^#V"j*j!j xͫS1-!*_"j!"j*j*jW-*j*j>og͡W"j*j?W>IT*j?WT*j ͕Sҧ-*j#"jî-*j+"j=-*_*jW-!"j*jR- D!juB!z_>IT#<]R. D>uE!juB!k>%IT#<]R). D>uE!juB!+k>IT#<]RF. D!juB!;k>IT#<]Rc. D!juB!Lk> IT#<]R. D!juB!Yk>IT#<]R. D!pkuB!k>IT#<]!k2k:k°.J!;; |/:kog+"k!kͿ5"k!kW*_##~og+++L;*k=SULR"k/:k=2k!k"kR^/ D>uE!ukuB!X_>IT#<*k> ͡R#IT#IT#IT#<]Ro/ D>uE]!_~#z/*_#?W"k*_##?W"k*_###?W"k!"k*k*k))6#6*_*k++*k))s#r!k#1*k*k))^#V"k*k++*k))^#V"k*k+"k*k*kW1*k"k*k"k*k*k>og͡W"k*k?W*k>GͦT*k*kWg1*k?W*kxͫSұ0*k#"kÆ0*k*k?WxͫS0*k+"kñ0*k*kWd1*k*k?W cS*k?W*k?WcS*k?W*kcS*k#"k*k+"ky0*k#"k*k*kW*k*kWW1*k*k*k))s#r*k*k++*k))s#r*k"k1*k*k*k))s#r*k*k++*k))s#r*k"k,0/!_~#2!"k#"k*_"k*k*kW2*k?W*k?W xͫSV2*k#"k*k?W*k?WcS*k#"k2*k"_^#V"k!k6*kGT!k>IT;}2_:_ 3*k:__sS*kG>͕T!"k*kn&"k*k*kW 3*k*k]nSG!k>ͦT!k?7!k S*k#"k2!kGTT!k_ >ͨ;|[3#k>GͦT k>GͦTh3!_k> ͦT:W_ w:W_w~=2k!kT:_32k:_2kð3:_2k:_2k"k!kͧ!"_:k2k:k2k:kog:kogWN5!k"l!km2k:kG5*_#"_#:kog)))))!l>G͕T!ll5*_?W\T :kog)))))!l>͕T!ll5*_?W\T :kog)))))~*_?Ww:kog)))))~*_?Ww:k*_?Ww:kog)))))~*_?Ww+*_?Wk>GͦTu2k3!k43p/H !"_"_!l-"_þ5^#V"l*l"l>2l*ln&}2 l: log:logW5*l:log>w!l4È5*lGTT^#V"!l*!l~2/l!-lTͼ"_ͯ"#l*_^#V>og͡W#"%l*_^#V#"'l!")l*%l"0l*0l*)lWg6!"+l*+l |V6*#l~!+lFWSրL6*'l+"'l*+l#"+l'6*#l#"#l*)l#")l6*'l^#V"@l+*@l^#V?W!:lxͫS6+*@l^#V?W:l>GͦT*@l^#V?W^#V*_"_+++*@l^#V?W^#V*_"_R>7 D!2luB!`_>IT#<*_> ͡R#IT#<*_> ͡R#l>IT#<]^#V"Bl*Bln&"Dl*Dl |/*Dl |x7*Dl }3>*BlG\T*Bl>ITT^#V"Ul+*Ul^#V?W!NlxͫS7*_*Ul^#V?W^#VW"_*_+++*Ul^#V?W^#VW"_+*Ul^#V?WOl>GͦTR\8 D!FluB!`_>IT#<*_> ͡R#IT#<*_> ͡R#IT#<]*Ul"Wl!Wl_ ^#V"al*_#?W"_~*_w*_?W*_#>GͦT*_?W*_ >GͦT*_ 6*_ 6R8 D>uE]*_?W"hl!hl!jl]͇R2_*_#"_*_ ?WW :P_og͡W"_*_> og6;"_2cl:O_2_:N_2el:el:_/;!"_"_*_+"ll*ll*_W/:_/9*_*_"pl!nlͧ*_*Q_"_!rl͂9:N_2_*_"_*_#"_È9!"_"_*_+"tl*tl*_W/:el;!"fl*Q_+"vl*vl*flW/:el:*_*_*fl!dl>GͦT!YldlxͫS*al~m:!cl4:cl!|_m:6i:_:2cl!ZldlxͫS…::O_2elî:!dl[l>ͨ;!dlZlxͫS:!xl-*fl#"fl :*_*Q_"_@:"!dl\T!`ldlxͫS:"!dl\T::O_2el*_#"_9k9!zle͇R2_R$; D>uE]|/;|{z%;|WDM͹WogW];QY͛;QY!9U+|f;3333;!!T/<|WFè;;O;;# ;¶;;³;gl<~ < <#;#;H o&(?"_]<6 ?L<&9*|l=x2_=XA ¡>E?:_+<-/:_!_R>G9=!9~#?(=*|l9=oB2_2_2_<2_!9> X=+k=>x=-x=>2_>%>ґ=‡= ʋ= .>>x=.¨=>%>Ҩ=.>>Ù=eʲ=E=>+=>=-=>%>XG>%>=xGGG>=GyO> X>=:_>.>>y2_">~#z0 0!__w!_~K>4_!_sXX2_G:_<2_=X:_Xͱ>‰>:_ʉ>!_5!_4X:_G:_ʗ>!_R>>2_>?!_5£>:_!_<_!_>w w>+>!_~5>. ?G:_x0>:_> !_~?5!_4!_5-2_x!_^4{%?%?!_~0>0yB A?x=;?GͰ?(? h?:_Q?b?!_x(?b??(?F(? |?(?> ?n? Ž?xˆ?>?(? ™?Ͱ?(?x£?>(?=Fã??x!_??ð?:_??:_> ??>2l!l~E:_@!_@> @> @ @2l!~l"FB)@y<>0@= 0@¾@OoBoA####WͶAQ@60#w@EX@>ew#.b@ei@xw@A Q@AGZ+y=@x=@0 ڢ@60$ä@w ®@+6.$y=@x=@)Ax<A!9A A @ @w# X@H !9 A+w@xOo>g9x AX A Aw#AoB=3A<oB<_oBKoB AAoWA##ͶAʛAK0X pA0_X pAXK0w# }AxʛAA ZAAGZʱA+wæAxAʶAxAXAo>g9##AX A A X IB!lͱY> yB BB IB .Bx(B>fBB 7BBdBx!_LBdB7B:_WBdB:_ ILB>2l!l~E!lñYBC^)C^#VʶB”BByB#FүB#N¯B#^#r+s#^#V++r+s~yB5yBC5^)Cq#pyBOC4~ B_)Cs#r#s#r#q!CñY C C ` C C Format Overflow* `-&`!laCO:-`y^C!9GZC~#'KCKCyaCO:%`pCùCCyC{C*_|ʪCj& *_*_W#W> C> CC> C{=>'C!9C=~#'C{>'CCÿC{=>'C{>bC*_++|2Vm!Tm"FɯD>D>2am"bm"dm`i"fm!9"hm!Wm-Dm ~# 2D*m~D*m~vD!m>ITG3!!!.`F!.`"m!m;HÞD!m>ITG3!R.!!S`F!S`"m!m;HóD*m"m!m;H!mG*m^#V!_s#r*m^#V!_s#r*m^#V]S|*_]S|GD!m[E*m^#V} *_}GE!m[E:)`?E*m^#V}*_}G?E!m[E:,`ZE*m^#V}ZE!m[E^#V"m! `"m*m"m!mͱY2m!m~E^#V"m:%`E:'`E*mE*m5!m6:m ʳEEåEÔEE!m"F*mE*m5!_6!m"F:_E*m6ÿE I2m:mF! `"m!"m!mͱY!_6#6!m6 :-`!F!m"F^#V"n!_"n*n"n!nNXF! `" n!"n! nͱYUFF:%`F*n~ rF*_#"_F*n~ †F!_6#6F:-`F*n~ ¨F*_#"_!_6#6F*n~ F*_#"_!_#F!_6#6*_*_#W|F! `"n!"n!nͱYFF!_6"n!9"n!nG! 9^'n~# G*'n^#V|3G*'n*)n cS*)n nbhG*)n !,n>͢TÂG!!n>IT*'nT!,n\T*'n~#®G*'n^#V)))|G*'n6P#6*'n~#G*'n^#V))|G*'n6#6G*'n6<#6*'n6#6*'n6#6*'n6#6*'n 6*'n^#V}͵Q}2+n*'n^#V}?H!+n44*'n^#V}UH>2+n*'n^#V}H*)n~#€H*)n6#6*'n"Dn*)n"@n*)n"Bn!:nL*'n^#V|½H*'n"Nn!"Pn!FnͱY^#V^#Vf]: `H!IͱY2 `O!`H6H +~#w! ` s#r! `4]I I ` I I I/O Stack Overflow:_@I!_"Wn!SnM=I!Rn6KI:_2Rn!_6:Rn ZI*_#"_:Rn jI!_6#6:Rn"O"O*O^#V#"O^#VxḮI"Ö́I"O|͉I|~xḮIyaҹIA =.:;<>[]y *OͫI IIͫI$IͫI1J o&))))\xH  J#w JII*O#OJAOJGIͫI:TJ 6YJp4I+I~J#ͫIʊJ#*vJ6?zJwIeJͫIʑJI~J#6 ŠJ.JI IʾJͫIJ#*¶J6?úJwI¥JͫIJIþJ#6 J%#6J*O##^ ~?J# JxCON CON RDR PUN LST M!K ~I$‚KIͫI1NK\5Kl‚K$‚K!~ ‚KI!JͫIiK wKI#VKx=GSKI>ɯ*O+̈́K^#V͌K#{#z̈́K6#6͌K r+s!YnF#~K!Yn6P  |] |]!Zn^r+s6 #6 !Zn4^N*O|L}=LͳKL K LO>~LL>aLN*O|KLY K=8LyDL|]GL>~WL=WL>aLq2O*O/"O͓KڸL{͝K͌K*O*O#:OOʡL͌K#s#rêLͦK͓KzL͝KaL͌Kr+s{L!O4*O+>|L+}onIxI~2OxI"O͉I:OMKMG:OM*OpM4#6OͤI:O5ML*O++"O>M}+BML}|2O"OͤIL"O1]X|M##"O6*Os#r/JSO{ SO*O:OwڅM6¨M*O"O<¾M:OSOïMO*Ow#wOnI͉IOKxIqOnI͉IOxIN&LO*O~" 4#4#4nI͉IO~EN{NQO͝K>͊NOnI͉IO~̝K>͊NO*O~rN>O{N QO*O!*~!/2O*O|ʟN(^#VͤIͤI{zڲNzO2OzN:ONKqNN&L#üN*O|O*~O=!OO:OaLO OwNN>nI͉IO|}O~> OO"N#F#~xIq#p#w>OnI͛IO>O*~ͤI!ʷO=ҩO>!*O" s#r#w=O*O }!n6 4>2n*n!4#4#4~#N#F#y#x#:n*n!!:nAPPP:n~G~#~O?ҀP#~€P! p! y! q<„P<Pɯ~#N#F#w#q#pOO~®P#!!͆P! 6?O>G!$q#p#6 Q"n"n2nx2nO2nO!n~5ʯQ&PQQ=|Q:n|Q*nGx|g}oüQG!9!x%R R+Q$%Xg R-Q0X:X0T])X)XX)Xo|gXQ{5R$%X}6R|Xz-Wo&9}!9V}!bRX/ʟR)X=ÓR|/G!S R>0R R>-3RT]))S寕iO>`G>0 'S<S DM0 > og|HSW!VȇWS)]Syw# cS~#zS~#W #S!9Oo>gyS~#o>gxGTGͦTwF#"nxIT#T*n!9G_>WObk++CT~+;Ty~#/$XW#"n"n`i"nV*n"n!nw`i"nUU"n*n*n͸U"nU"n*n?WUW*n*n|zUW*n͸UW*n|U)))ڒUÒU*n͸U*n))ҍU)ҒU:nO:nGzʲUzU ))ҡUáU:nVWDM>!=))U UU|g}oͣVU͇VUV2n"n!nr#q#pV*n"n!nw!nr#q#p:nG:nsW:nG:nsW:nG:nsW:nG:nsW:nG:nsW:nG:nsW ^V dV kV|e. uVo&:n*nDMV"n!V^#V!9*n3333!V^#V!9!33333333###~VGOW_goހ_W+~G~+N+f.zVzW ))VV}W$WWWx.W3W3W>@X>;XyƀGOS\{EsWDsWzEsWDsW\e. aW gWS\e. rW.HEg)}W )҂W )҇W )ҌW )ґW )ҖW )қW )ҠW z|WDM|W͹WWx>$X!>)W W=W)Wɯo>g^#V#N#F{ozg||/=! XñYXXXXX Conversion26X!-XñY5X6X7X9XBX2XXx2WX!OXñYWXXXYX[X#}OD*%o~ҟX##~#fofX!{XñYXXXXX Free Space Exhausted##^#V#{_zWhY{_zWkX4zX{X##^#V# ##s#rs#r#s#r+++~sw#r####}*%o}|bY*{zbY+F+N+V+5^{hY{zhY}|hY{BYBYi`~sw#r##q#p i`N#F#^#V~hYq4#p+i`##s#rnY^Y^ FREE Request Out-of-Range$ Free Space Overwrite$GKYMbkY͖[F͕[N͕[N#F͕[^#V"|`y2{`xYi&\ZYxY>Z! `{#z*_*_]xyx"ZzZ_![^#VZtZ>(vZyͭZ>)vZ|WZiZ>[|cZiZZZ^>,vZtZ> _|] |] |]0:vZvZ̈́ZÄZtZ|͒Z}ÒZ ڽZdԿZ ͿZZZẍ́ZN #~vZZ![Z*o!9{_z[{[ [[tZ>#vZ*o>=^#V#͞Z[/[>: 9[>?vZ![ZZ>=vZ^#V|n[}e[.))\Z#F>A*[> #‰[~ >./[~ /[=z[^#V# File: Traceback:[[[[[[\\ ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADG!~`~e\J\^ Condition Stack Overflow$4Ox!n w#s#r#s#r!9!` s#r!~`N!n +++++ž\#{·\#zʼ\++~Þ\++!~`5!~# \\!~`N!n +++++\#~# ]+{]#z ]++~\#^#V=! `~f]5: `_! `^#V" `_.~# 8]*_)))))%` )| M]*_|}*`"_: `* `_w# s]*`{ ҍ] ‘]!#"`]Copyright (c) 1980 Digital Research, v1.3 !"#o"!o"'o2~`2 `**o ^"oq#p##}o"%o*}o|^_^+w+w+r+s4w#w#s#r<2)o++*#os#r"#o*!o#"!o*!oDM!#ox~^#~+^+F+Nq#p*!o+"!o^^=†^!+~O~#~G!>w!/x®^y^ >O6# ¥^ ʕ^=ɯ ~#fo++D^!!o~#^*#o;^^_^*_  Insufficient Memory$ Invalid I/O List End of Execution$?_ 8 8SYSINSYSPRINT   =====> Total of tagged files = Sorry, CP/M2.2 or later is required.??*1234567890 No files. . k :LSX ?ABC ToDEFMPRTUVW __Ka ___Ya7aXa N____O_   Files occupying k(k remaining) a a $:.is R/O. File not copied. is R/O. File not copied. Out of directory spaceCopying with verification CRC check failed. Error. Disk full. Warning: source = target. Re-log drive for an accurate directory.bbbbbbbbcb ccccb"c&cb,c0c4c:c>cbDcHcLcPcbXc Delete? (Y/N):Y*uc_?File is R/O. Delete anyway?(Y/N) Y Deleted.ccccc. *??????????? Find what: }__ and user (and v to verify): and user: : drive: ?*V0123456789234567d d }_d .  (  (  (  (  (  (  (  (  (A: Again. Retag # files.R: Rename file(s).B: Backup to last file.S: Space remaining on disk.C: Copy file with optional verify.T: Tag file for transfer.D: Delete file.U: Untag a file.E: Erase all tagged/untagged files.V: View a file at console.F: Find file in directory.X: Exit to CP/M.L: Login new disk and user area.W: Wild card tag of files.M: Mass copy of tagged files.?: Redisplay menu.P: Page through a file at console.sp or cr: Next file.Drive :  To*#****Aborted.7gLg_HgJg.? Erase tagged or untagged files? (T/U) : TUDo you wish to be prompted? (Y/N) : NType A at prompt to abort.*****Relogging drive****Erase ?(Y/N/A)YAErasing :h =h 5hDh 5h 5h5h  Tag what: :ih what: }_ heh eheh New hh :.      New name or * : :*?Cannot rename. already exists.File is R/O. Okay to rename?(Y/N)YO.K. to rename Renaming . ? Old name: New name: i ime: _iO_}_ i i i i i j 4j  + jMjjj0j0jtjN_$j0j  j j#Tagging jj    ! ! !SWEEP version 4.1 - December 19, 1983by Robert FisherDePaul University243 S. WabashChicago, Illinois 60604 Whichk remaining on Drive :kkkk k???????????? k kklll_/l*k (k)* k (k)  _pl_dl_ llll `llll `ll Invalid Format ItemVmambmdmfmhm Stream/Record Sequen/Direct Input/Output Keyed Access P< $conmm_mjmxmmmmmmm mmmmm mnmmnmnn.dat+n,nDn%n&nNnPnWnRn,oLOADER y; !91""|0!~ʞz=_: _* ""*og*%|}D S#N#F:ʒ#4ʝ^#V{‚:¿*.~w*DM!&_*.& >k s#rr+6.""1*D`.45. F.~. ^#Vx>`. s#rz 6#N#fi%$g1:=<@v_}v=p{_3;{<g"T=X3*j ~P#~R#~L{gbk#N#Fk$&Zcx {~#o}o1!;!"Ï:= w*wWx ~#&*.~s*"ѷ\ Cannot load Program 221282 COPYR '82 DRI <bHA$@DH   A@!" $$@X X X S 1-! j 1".~2.~2 :Xck*kͮ  b < .~=>$.w.6#w.6#w.61.~  .~~w@.p T~º>+~.~~! yͮ Ë.~~w2g !PROFILE.S !+2 !  +~d {   O! w+w+: =w! 5 c ʋ  :p  m>> ͧ  N Ĩ –.~+w.~2  9 : ! ~##~ !7 : !Կ : x*l " !ZXچ! 6  zz: 6 : %2p  ͆ : =̀ 2r  DIR TYPE ERASE RENAME DIRSYS USER u"Q}:\=p:r Aæ R ÂN ͙ʸ} !M 545 x ]  ̵ 6 : oG! ~怹>2M  xf>:ͦ ͤ ͍ ͤ f ¹2 lf   ͫR  L͞L I *  *  A }_Yl !ͮ ͒6 \&đ %* "l ͍  ûȷ45: w ? A I N   SUBMIT COM ! ͮ ! 6 #"l  !cͿ  O!:r :ͦ ͍ !~B I !pͰ ^#VCOM SUB PRL y!cͰ  î !" * %.2P#ͮ !g 4*l +"l ͷ 2 "Qx2Sl "Tx2V!q ~ :p ͆ .ڶ2* og$2| .w#w#w#w.~ .w#w~?w; ; ! ~#49 w#~$ A  < > _I  ! 6 ! ~#Ͱ 6 m   _  ! 6=  { *.pѯ:r x , \<=!Ͱ =ɯ2 \s 2 ! D ;! : .44 #4"l ~[* 2 a7 {7 w!Y #! *l "l " ~ U #D ]T!̷ 6*%.w#w!} 6 r 6 #w.6#6 #t#6.wo*.s#r.rͧ ̧ m . ^#V45+ w#w.f.5\A "l " l |F# !( | !( : x. +"l ! ͮ   ͮ ~!G8 * ~;#1 կA *l ~:g #I ѯ*l  *l ~0څ :҅ q X x<Ü AX QX X ~@#~:k #^ *jT~# ® wy#ù ! 4 : !Ͱ ~@*h~ yw y/w*hw*h~I E> ͦ > æ % 0  < : ~ȹͦ #* A !g ~6*  * >? A *l " ~0: :: q "l x~0 xG#Gs : &͘ ͤ &ͦ %˜ >  Ʌo$>?· !  > # ͮ x> # ~ Enter User #: $No File$ required$ERASE $ (Y/N)? $ Press RETURN to Continue $ (User 0)$NON-SYSTEM FILE(S) EXIST$: $$$ SUB/******************************************************************** SWEEP version 4.1, December 19, 1983 by Robert Fisher DePaul University 243 S. Wabash Chicago, Illinois 60604 Released to the Public Domain by the author. *********************************************************************** SWEEP is a utility program for maintaining file directories, and transferring files between drives and user areas under CP/M2.2. SWEEP will not run under CP/M 1.4, but it will run under MP/M and (I think) CP/M 3.0. Prior to running SWEEP, you may want to run SWINIT41 to set it up for your system. See notes at the end. *********************************************************************** Invoking SWEEP and moving about the directory. ---------------------------------------------- When SWEEP is invoked, you will see a menu of 'commands' and the first entry in the directory. You will also be given the total space (in k) occupied by the files and the remaining space on the disk. SWEEP also reports the current user area in the prompt, or an asterisk if you have selected all user areas. Typing 'space' or 'return' moves you forward in the directory, typing B (or b) moves you backward. The directory is circular, so typing space at the end of the directory moves you to the beginning. (A line is skipped.) When you first invoke SWEEP, you can specify a drive and a starting place in the directory. The user area can be specified as a second parameter. SWEEP B:FOO.COM will begin with drive B: logged in, and the cursor on the first entry in the directory which is >= FOO.COM in alphabetical order. In the latest version, both file name and file type are recognized. SWEEP B:FOO.COM 8 will log in user area 8. Selecting user area * will cause all user areas to be "swept" at once. If the starting file contains wild card symbols (* or ?), then it will be treated as a directory wild card specification. Only those files in the selected user area which match the specification will be handled. At any time, you can recover the menu of functions by typing a question mark (?). Simply typing 'x' exits the program. Note that all characters can be entered in upper or lower case. Functions that act on one file. _______________________________ C This allows you to copy the file to the drive and user area of your choice. You will be prompted for the drive and user area. Just enter 'b3', say, to transfer the file to drive B: user area 3. If you omit the user area, the current user area of the file is used. Any file of the same name in the target area is first erased, an exception being when you are transferring to the current drive and user area. In the latter case, the transferred file is copied with its named changed by putting a $ in the last letter of the file type. If an existing file in the target area that must be erased is marked read-only (R/O), then the copy is simply not made. You will be told. You may use the delete function to delete the file, and then retry the copy. As an option, sweep will perform a CRC verification of the copy. When you are prompted for the drive and user, add a 'v' or 'V' to request verification. Thus specifying: b3 v will copy the file to drive b:, user area 3, with verification. See below for a description of the verification method. BUG: CP/M does not allow two files of the same name to be open on the same drive, even in different user areas. Thus, when transferring between user areas on the same drive, the target file is first named with the $ convention and then renamed. This can result in an extra file being erased. If there is too little room on the target drive, the transfer is aborted and the directory entry is erased. Any previous file of the same name in the target area is also erased.(Sorry.) D The current file is deleted. You will be asked if you really want it erased. If the file is read-only (R/O), then you will be given a second chance to back out. P Exactly like V below, except that after 20 lines have been typed SWEEP pauses until you type a character (any character). If you type two characters quickly, you will return to the main program. R The current file is renamed to the name you specify. Lower case will be converted to upper case, but other 'illegal' characters are not trapped. It is quite possible to give names to files that CP/M won't recognize. (You can also change them back again later, however, so no permanent harm is done.) Responding with "*" to the prompt will put you in the batch wildcard renaming mode. See below. If the file is read-only, you will be asked if you still want it renamed. It will no longer be read-only after renaming. V The current file is displayed at the terminal. ^S will stop the display until any other key is typed. Otherwise, any keypress will abort. Beginning with version 4.1, the V and P commands will suppress all control characters except control-i,j,l, and m. This is for the convenience of users with terminals that act up on certain control characters when they type wordstar files. See the P command above. T Tag a file for later transfer. (See below.) After being tagged, the file will be marked with an asterisk,'*'. The total of all tagged files is displayed both in units they occupy on the current disk and in units they would occupy on a single-density disk with a 1k block size. U Undo the effect of T (and take away the '*' or '#'). Commands that act on many files. -------------------------------- A Retags all the files currently marked with '#'. This allows you to repeat the transfers on another disk. Useful when the same batch of files must be sent to several disks. E The E command erases all untagged files or all tagged files. You will be asked whether you want to erase the tagged files or the untagged files. You must specify either T (or t) or U (or u) or the operation will be aborted. You will then be asked whether you want to be prompted or not. If you ask to be prompted, you will be asked for a Y or N on each file. Otherwise, the files will be deleted. Be very careful with this one. You can wipe out an entire directory very quickly. You can abort this operation by responding A to the prompt, or typing any key in the unprompted mode (if you are quick enough). The TAGGED option is useful after a mass transfer. Use the A command to retag all the transferred files, then use the E command to erase them. The UNTAGGED option is useful if you want to clean up a disk or user area, but retain a few key files. Just tag the files you want to retain and use the E command to erase the others. M Mass transfer of all tagged files to a selected drive and user area. This is the main reason for the program. If the target drive fills, the operation is aborted, with the untransferred files remaining tagged. This function invokes the copy function used by C, so everything said above applies here. If any key is typed while files are being transferred, the transfer is aborted after the current file. The remaining files remain tagged. After transferring a tagged file, the tag is changed to '#' so you can tell what has been sent. This is for display only; the file is otherwise considered untagged (but see the A command). The '#' can be removed with the U command, if desired. If no user area is specified, or if "*" is specified, the current user area of the file is used. You may request verification on mass transfers just as in the single file copy. Just follow the drive and user specification with a space and a 'v' or 'V'. R * Batch rename. You will be prompted for an "Old name:" and a "New name:". In each case you may give any "ambiguous file name" in response. The logged-in directory, as currently displayed, is searched for matches with "Old name", and the files are renamed, if possible, by the formula specified in "New name". A '?' in "New name" means keep that character of the current file name, an * is equivalent to filling out the remainder of the field (filename or filetype) with "?"'s. Any other character replaces the corresponding character in the current file name. When the substitutions are done, embedded spaces are removed. You will be asked to approve each substitution before it is actually made. Old name: SWEEP???.* New name: TEST ???.* These responses would result in SWEEP.COM being renamed TEST.COM, and SWEEP30.PLI being renamed TEST30.PLI. W Wild card tag. You will be asked for a file specification. All files matching this specification will be tagged. Other commands. --------------- B Move to previous file. Moves to last file if you are currently on the first file. F Allows you to move quickly to a particular file in the directory. You will be asked for a file name, and the first file greater than or equal to the file name entered will become the current file. This works just like the starting file name at startup or in the L command, except that wild card specifications aren't given special treatment. L Login new drive and user area. If the user area is ommitted, the current user area is used. You can specify a starting place in the directory. Responding 'b3 foo' will put you in user area 3 of drive B:, beginning at the first file >= FOO in alphabetical order. Selecting "*" for user area, logs in all user areas at once. If the starting file is a wild card specification, it is instead used to select the files to be used. Thus: L New drive (and user area): B1:*.PLI will log you into drive b, user area 1, and select only PLI source files. S Calculates space remaining on a drive. This now works in MP/M (and CP/M 3.0 ???) systems. X Exit to CP/M. ? Redisplay menu of commands. Tags used in SWEEP. ------------------- * Marks a tagged file. See M and E commands. # Marks a previously tagged file that has been transferred by the M command. It is logically untagged, and the # can be removed with the U command if it bothers you. Files marked with '#' can be retagged with the A command. Unmarked files are untagged. Remarks. -------- Whenever a drive is asked for (and on start-up), the disk system is reset. This is to prevent a disk from being "read only" under CP/M, and to allow you to repeat operations on fresh disks (e.g., finish a mass transfer after a disk fills by inserting a second disk). It also means that you should be free to switch density and/or number of sides of a disk in a particular drive. This, however, depends on how well your BIOS is written. It does mean, though, that a system disk must be present in drive A:. There is no logical upper limit to directory size, nor to the size of a file that may be transferred. The directory size is limited by available memory, though, as certain information must be kept on each entry. You should be able to use well over 1500 entries in a 64k system. Figure on 20 bytes per entry starting at 28k and running up to within 1k, or so,of the BDOS. Because of limitations on integer variables in PL/I (at present), available space on the drive will be rounded modulo 32768k. This should present few problems. If the total size of all files is larger than 32767k, then the program will probably crash. (This can only be a problem under CP/M 3.0.) The sort is done with quicksort, so it will not deteriorate too badly with large directories. (On the order of n*log(n).) The rest of the log-on stuff is either fixed - displaying the menu - or linear in the directory size - reading the directory and compressing it after sorting. On my system, a directory of about 99 entries takes 3.5 seconds to come up. Of this, about 1.1 seconds is used in the sort with the rest split about evenly between the operations before the sort and after the sort. (Disk access is not figured here, since my system uses the Intersystems CACHE BIOS with track buffering. Once the directory is read, it doesn't need to be read again. Using the standard system raises the total time to 4.9 seconds, the difference being the physical disk accesses.) File transfers make use of as much memory as possible to buffer data. The V command buffers only 4k (or what's available, if 4k is too much for either your file or your RAM). This allows large files to be sampled quickly, without reading in the full file. Invalid or empty answers to any prompt will result in no action being taken. Exceptions are specifying a drive you do not have (see patch points below) or an illegal file name under the R command. It is legal to include the colon when specifying a drive and user area. Thus responding "B3:" is equivalent to just "B3", and "B3:FOO.COM" is the same as "B3 FOO.COM". On the copy command, specifying a V in place of the user area results in a copy to the current user area with verification. That is, all the following responses are equivalent: "B V", "B:V", "B: V", and "BV" when verification is an option. Copy verification is done by computing a CRC checksum while writing the file. SWEEP then reads the copied file back computing it's checksum. The two checksum's are compared and you are told if they don't match. The algorithm used is based on the standard CRC-CCITT polynomial: x^16 + x^12 + x^5 + 1. The algorithm is similar to the one in D. Barker's corrections to CRCK and is table driven. It is coded in 8080 assembler for speed, and can be found in the file SWEEPIO.ASM. The second crc computation is done with a buffer that is offset 3 bytes from the original buffer. This is to help catch problems induced by memory errors. Any CRC errors which appear but are not flagged by CP/M as bad disk sectors are probably due to bad memory. The CRC verification takes approximately 2.5 times as long as the straight copy. Patch points. ------------- Several parameters should be set for your system. If you do not have a PL/I compiler, they can be set with DDT or by running the SWINIT41 program. See below. number_of_drives Should be set to the number of drives in your system. This will eliminate SELECT errors. Patch the byte at location 107H. It is currently set to 4. max_user Set this if you want less than the maximum number (0-15). Patch the byte at location 10CH. page_lines Number of lines printed between pauses in the P command. It is set to 20 now, which seems reasonable for a 24 line terminal. Patch at location 112H. clearstring SWEEP will clear the screen at sign-on and whenever it displays the menu. At present, the clear screen string is set to form-feed,space which should be harmless enough if you choose not to alter it. If you want to patch it for your terminal, patch the two bytes at location 60C2H (now set to 0C 20). Sample patching with DDT: ------------------------- (Underlined characters are typed by the user, the rest is from DDT.) A> DDT SWEEP41.COM invoke DDT ------------- DDT VERS 2.2 NEXT PC 6F00 0100 -S107 we'll patch number of drives ---- 0107 04 10 we type the 10 = 10H =16 -- 0108 32 . . means stop patching - -^C control-C to exit DDT __ A> SAVE 110 SWEEP.COM save 110 pages (11g01=6EH) Beginning with version 4.0, I am supplying a customization program to make these changes. Here is the header from that program: /**************************************************************************** * SWINIT41.PLI - December 19, 1983 * * This is a crude program to setup the variable parameters of SWEEP 4.1 * * It is provided as a convenience to those who are not familier with DDT or * * who can otherwise not patch SWEEP in the usual way. To use it you must: * * 1. Have the current version of SWEEP41 (December 19, 1983) * * 2. Be prepared to answer the prompts very carefully. No checking is * * done for unreasonable answers. * * You will be asked to enter * * a. The largest user area you will be using (0-15). * * b. The number of drives you will be using (1-16). * * c. The number of lines on your terminal screen. * * d. The decimal values of 2 ascii characters to clear the * * screen of your terminal. * * Good default answers are: a. 15, b. 4, c. 24, d. 32,32 (spaces) * * Since this program alters the SWEEP.COM file itself, you should have * * a backup version available in case you blow it. * ****************************************************************************/ çCOPYRIGHT (C) 1980 DIGITAL RESEARCH YA? OVL LINKING $ $ 1L9M9!96w:o9!9D:!""!""!"9*9^#V"9"q::u9 ͥ6**=;"`:"b:q:b:͞8.96`:q:͞8"9|!96wj1:9R,v!!]:ڤ*]:&f;) N#F͋41!]:4:u92:2:2;2E;2u;2;2;2;!D:6+6!E:6!"p9!"m9}2o9!z962v92x92w9!t96X!"y:"{:"}:":":":":":":":":":":":":":"i:"k:"m:"o:}2:!:6#6#6*9"q:2C:2D:2E:2R:!"X:o&"Z:|!"s:!"p;";";";":":";"7;*+":*+":*+" ;*+"9;!":":";"?;!":":";"A;:9*b::9=o&))9  ^#V!!<4*<&^<) <͞8-*<&^<) ^#V"d:M*<&^<) q#p!<4*9&))9  *`:s#r*A:)8"p9*9&))9 q#p:9<29O>D:9=29D:9ڗ*9&))9 ^#V"p9  ^#V"`:*`:DM!96#~ͬ . ":\ -:+: .+: -:9":5*.:~=ͬ :9('*.:~(*.:~)H^*.:~,NDͬ :9['(:9vC()!o96>5!B".:ͬ . ":\ -ˆ*.:~=Ÿͬ ï.+: -§:9ҹ'*.:~*.:~(H*.:~,Dͬ :9'ù:w92y9:9F:9(C(͆7:9):o9:o9H4!"p9>:o929*p9"95*.:~(*.:~ʐn*.:~)p̀^*.:~*.:~(HҍDO:9ʛD*Ͳ!6~̈́6*& 6:[],()?$! : @: <_2 <: !#<ڲ*#<& :<«>!#<4>*.:#".:*.:N2<&õ͵:< ͵!<6 !%<6+6:%< :%<  !<6͸ !\6͊ !!%<6͊> :%<5 !͸ ͵" :<:„ :\:%<Hb !:]A<2\O>v !*%<&\ 6 ô !%<6:<.° ͵͊ڰ :%< ڧ !͸ ͵Ô ! :%<<2% :<02<> : :>!"&<͵͊6 - *&<))))*<& "&<0 D͵ *&<:/͵: W :ZD͵:ڎ :!Q: D*Q:&J: : >!:*!^:6+":^:$t 8'> *0< ~L*0< DMB5*0< 6*0w#6!4w#6*0<##N#F*.< ~O`i~8p8!6Ͷ8ikS*0< DMv5*0< DMd5*0< *0<##N#Fq#pä*0<##q#p*u:#^#V*u: ^#V*u: ^#V*u:~*u:~*u:>*u:~*u: ^#V*w: ^#V!8:=<Hw!>:><Hw!?:?<Hw!@:@<Hw!B͔8>ͥG<8'*u:"w:*E<#"E<ͺ"u:>͔8$>ͥG<ͮ8!TJ<ͫ8:P<Hr:Q<ҁ!U<6 Æ!U<6:U<q:ͫ8+s#r!`:͹8ң96:T<Һ*JE<ͫ8*P<&i:) N#F,DM,*LE<ͫ8F*P<&i:) *q:s#rN*q:DMͷ!V<6>!V<ڷ!"Y<*V<&i:) ^#V"u:>u:ͫ8ʝͺ"W<*Y![<,*[<&i:) ^#V"u:*[<&<) N#F.>u:ͫ8%OkͥDMͪͮDMͪDMͪͺ"u:![<4!"i:"k:"m:"o:*d:##6*d: 6*d:^#V!`=p+q*d:*_=s#r*d: >!a=q*d: :a=w*d:##>?!b=q*d:##:b=w*d:##~*d:##>w*d:##~*d:##>w*d: ~!c=q*d: >:c=Hẅ́d:8++"\<*\<^#V!e=p+q̈́d:8++"\<*\<*d=s#r*d: ^#V!g=p+q*d: *f=s#r*d: ~!h=q*d: >:h=Hw!k=s+p+q!^=6:k==2k=ʱ*i=:^=2^=*i=#"i=Ñ:^=2^=!n=s+p+qͽ"d:`:d:͞8͹h!n=*l=*d: DM*n=>*>̈́d:8+s#r!r=s+q+p+q*o=DM*q=̈́*^=&^<) ^#V"d:>d:ͫ8ʆh!q=}*o=*d: DM*q=>*}U!r=}>M"d:<>!|=r+s+q+q+q+p+q+q+p+q:u=2}=:z=Һ!}=44*`:"d:*}=& "`:q:ͮ896<*s=DM*u=̈́*^=&^<) N#FU*^=&^<) *d:s#r*}=M͍*v=DM>*y=M*u=Ms*x=Mf*u=*d: *s=DM -B:z=Y*{=DM*d: ~#k!{96 MODULE TOP $UNDEFINED START SYMBOL: $YY???? $$$XX???? $$$RQST$ UNDEFINED SYMBOLS: $ABSOLUTE $CODE SIZE $DATA SIZE $COMMON SIZE $USE FACTOR $!=q*=MͲ!~=4!=q> !=8:=0OͲC:= AOͲ!=q:=O:=O!=p+q!=̈́8MD>=08MD:;!t;!;!;:u;2\. ] -Ÿ\ͩ6!t;6!;6!;6!;6!=6+6>!=*=&f;) ^#V"= *= ~ *= DMv5 *= 6!=6:=<2=:=7::2\. ] -)\ͩ6*p9###H:ͮ8!D:U!\:6*p9###F:ͮ8!C:r!\:6*p9###X:ͮ8҉!\:6:R:>S:ͫ8:U:H:C:/HҼ!\:6!\:6:E:!C:!\:6!\:6:C:*F:"::\:*p9###":*p9"::D:*H:":8*:*:"::r98*:)8":*:*:":Z:X:͞8_X:Z:͞8#"y:e!"y:!:6*X:":!=6>!=ڞ*=&y:) >Ͷ8Ҕͥ:=<2=v!":::2=!=6:=#w:==2= *=&:) *=&: N!: ͠8*=&: ~2=*=& :=w:=2=:=<2=õ*=&: :=w::<2:*b:"d:`:d:͞8q͜/!9H`2UO!: 8DM>ͪ̈́d:8+s#r&!]:6>!]:7*]:&f;) N#F͋4:*]:&<) N#F.B2=:="="=:=O>"=n2=ð-*]:&i:) ^#V"u:>u:ͫ8-2=ͥ"=ͮ"=!"=nͺ"u::]:<2]:w!=r+s+p+q*=}*=_DM͘4*=#*=|_͘4!=p+q*="d:2:=2=:=O>Ґ*=DM^"=ã*=&:) =8"=:=O>:=O>==͞8UO!: ͹8"=*=*="=*=DM*=8*d: ~*d: :!z9/H!"=ͽ"d:`:d:͞8HҴ>=08>͔8S6!~=6U`/wUp/>=08 \8 M`͹ҖÞ2DM_   *=#"=̈́d:8+s#r >!=Ͷ86!=6>#w#62~=ͽ"d:`:d:͞8N/=:=!=6>=08>͔8'6!~=6w*=#"=>&8)))M`̈́d:8+s#r>!=Ͷ8\66!=q!=:~=v d!=6h!=ڤ:==O! *d:N:=<2=|:E:J:*Q:M2"V:!"V:|!=6:Q:!=:==O!J: NͲ:=<2=6D:R:*U:&:) S:8"V:D>!{:Ͷ81*:"V:DX:ͣ8D*X:"V:Z:X:͞8mX:Z:͞8#DM*X:v6*:DM*:6*:DM*:6*:DM*:6`:s:͞89ͮ8*9|=ͫ8 Ͳ(Ͳ*=DM_-Ͳ*=*=+DM_)Ͳl*|9DM_68f ͥOr:t9Z^E.:n~:x9ZyU/?OVLAY?OVLA0RELIRLIRLREL))O`i~8p8>!:!>6::!>:>=O!: NͲ!>4½)2:͕":)2::: !:6!>6::!>. ):>=O!: Hq!>4 *h&\8*|& "9>*7:DM\͏5*9+"9!>q:>2]:*]:&f;) N#F͋4!>q:]:!f:Ҏ *]:&y:) N#F*>͘4:]: Z:y:͞8Ҽ *y:"Z:X:y:͞8 *y:"X:*]:&y:) N#F+q#p!>s+p+q::2>O!: :8">*>DM*>h!ͮ"!>2>:>>!>ͫ8HA!ͱ!">G!*!>">*>DM*>MC:>e!*]:M͋!*>*>*]:*>*>5:=Ҭ!ͱ!"!>>͔8ž!*!>">!>6í!!:]:2%>*>M^ *>DM4*>#DM4O`i~8p8"#>*%>M^ *#>*b:"d:`:d:͞8%"*d: ~#"*d: 6̈́d:8+s#r!!{96:*:MH"H"!^:6:*:Mi"2"g:͜2f:o"=6*:::: -y"::29:*::ͺ/Ҵ":*:͉:*:M"!:͹8"/Ͳͯ/Ͳ Ͳ=6#:*:*:*:*:͉*:*:"::*:M/I#:*:͉*d:DM :*:Mҟ#{#=ͯ6Ü#*:&:) :8DM>*:Mf#:*:*:&:) :8*:͉*]:&y:) N#F*]:*:DM5!=6#!=6*:":*:M^ :]:$$*g:*:":C$*]:&:) :8*]:&y:) q#p:]:P$!=6*]:&y:) N#F *:":>!:Ͷ8::HҲ$:R:Ҕ$=6ò$*:&:) :8"S:::2U:!R:6:0:$)$ò$!&>6>!&>%%*&>&:) *&>&:) 8*&>&:) q#p*&>&y:) q#p*&>&:) >w#6:&><2&>$s:q:͞87%*q:"s::G%͸*9"q:^ :_:/2^::{9]%!!)>s+p+q:)>ˆ%*g:*'>"'>:f:҅%!)>6Ý%*)>&:) '>8+s#r*]:&y:) N#F*]:%*'>DM*)>M͋%*]:&y:) N#F*'>*)>*]:5y y !*>q:*> &>!*>&:*>#&+"ÿ&:*>1&p"ÿ&:*>?&k$ÿ&:^:ҿ&:*>=O!& ^#VI"ÿ&ÿ&͈"ÿ&>ÿ&͵"ÿ&#ÿ&T#ÿ&#ÿ&#ÿ&$ÿ&$ÿ&Q$ÿ&d$ÿ&W&]&`&f&o&u&{&&&&&&&!+>6)&)2->:^:&*->My (')2,>')2+>:+> '*+>M%('͕".>:^:('*.>DM*,>^%:+>&7','!0:6&H'='!0:6!"1:"7::!:'*:͗8"1:"7:. 9\ -u')29!hʦ':92h\͕6¦'\=45)2|29!:6*7:"1:!"9"9^ :_:/2^::!:!_:' ',':e (.e -'e>*2!:\d5I'}/B(}͉ͽ"d:`:d:͞8)͹(:v92\!0>6>!0>گ(h!0>҈(*0>&\ 6 å(:0>=O! *d:*0>&\ w:0><20>g(!!:6.e -¼(\W5/(!!:6.e -(\d5*d:"1>!_:6I'*1>"d:̈́d:8+s#rI(.: -)!:6!:6^ ͽ"d:`:d:͞8)/)*{:DM>fy ^%y !":y y *d:"4>#*4>"d:!3>6>!3>)h!3>ڶ):3>=O! *d:Ny û) y :3><23>Œ)*:"::)͸*9"q:̈́d:8+s#r5)!0:4~ (*6*1:#"1:*7:{z*!"1:/ *1:!>~26>xG:6>26>G )x{_ P*#B*>ɯ`iq#zV*COMPRLRSPSPROVLSYM!;>q*5:> :;>w*5:#"5:!3:͹8ڦ*>*3:DM\͔5!"5:!<>q:8>!<>28>:7><27>*!7>6*8>Mq*!8>6!=>q*=>Mq**A:#"A:!?>p+q*>>}O**>>|O*::+:o9+h,*p9"A::\:,+**V:DM**X:":!@>6::=!@>q+*@>&: N!: p9͞8j+*@>&: N͍+!@>47+:o9:o9HҌ+ -!C>q:C>¢+*X:"D>ó+*C>&:) ^#V"D>D>A:͞8+96D>A:͞8+*+*C>&f;) N#F͋4*C>&y:) >Ͷ8,:C>,*X:DM',,',|9A:͞8&,*A:"|9!G>p+q*F>"H>*C>&y:) F>8+!H>͹8g,*H>DM4O**H>"H>3,::=O!: N!: !y: 8*p9͗8"A>**A>DM**:o9,***p9DM*,*m9DM****:r9,*:DM*,*!J>6>!J> -*!J>4,*p9"A::\:(-ͦ-ͦ-ͦ-!L>6::=!L>|-*L>&: ~2K>u-*K>&:) A:͠8e-ͦ-J-:r-.u--!L>4--*p9*A>A:ͮ8ҕ-ͦ-|-:7>ʥ-ͦ-Õ-!O>q*O>Mͧ**A:#"A:M>A:͞8-ͦ-ù-ͦ-*K>&i:) ^#V"u:>u:ͫ8.ͥ*K>&:) 8"M>͹-ͺ"u:-*K>&<) N#F.*0< ~R.*0< DMd5*0< *0<##N#Fq#p].*0<##q#p2P>:P>ʤ.*K>&:) 8"M>"9:P>O>Ҙ."9͹-2P>c.>5:08>͔8ʾ.q*å.>*5:DM\͔5\v5:w9Z.. \": -.:e /.*o9&\8_* DMe - /:w9#/:w92\\B5:9 A/. ~9\ -9/!"5:}28>27>*ͥ.:x9Z^/. \": -f/.en* -v/:x9ʌ/:x92\\B5!"5:}2R>ͽ"d:`:d:͞8(0͹/H02DMv0 q*!Q>6h!Q>/:Q>=O! *d:Nq*:Q><2Q>/:R><2R>0 q* q*0 q*̈́d:8+s#râ/ q* q*ͥ.!S>q> !S>O0:S>0Oq*Z0:S> AOq*!T>q:T>O60:T>O60!V>p+q*U>|O[0*U>}O[0*9>!=8"W>*W>!=8!Y>s:h0:Y>2h\͕60\>645*W>!=8!|s2*9͗8"9>. \~9 -0:9 1*9>"9>\d5͍0C\͏5!Z>s*9>!=8C "9*9*|9s#r͍0C*Z>&\8DM\͔5:j2j\v5:9ҁ1*|9)8"|9:y9ZŠ1a9ҟ10ñ1g9ұ10!_>q.*[> :_>w*[> ~!`>q*[> :`>w*[> *[> ^#VN#FR* *[> 6*[>^#V!=8"b>?8!a>s1!a>P2*[> DMv5*a>M1*[> DM͕6P2*[> DML5*b>!=8MͲ1*[>  *[> ͞8ҍ2*[>  *[> N#Fq#p *[> ~ڮ2*[> DMB5 *[> 61*[> N#F*[> *[> N#F͔51!e>p+q*[> N#F*d>?8^8*[>q#p*[>*[> 8+*[>##q#p*[>*[> N#F^#V?8*[> s#r *[> N#F`i"h>*[> N#F `i"j>*h>"f>j>f>͞8ڐ3*f>+*[> ^#V\8DM2_2*f>"f>\3*[> ^#V*j>\8DM2*[>  *[> ͞8Ҿ31*[> N#F*[> *[> N#F͏5!n>s+p+q*[>l>͠84 *[> ~4_2*l>DM2ͦ3Ê4*[>##l>͞8Ҋ4 *[> ~34_2*l>DM2:n>j4*[>  *[> N#FPY͹8d463g4ͦ3Ê4*[>  *[> ͞8҇41Ê4ͦ3!p>p+q*o>"[>!s>s+p+q*q>DM3*[> ^#V"]>*[> N#F*q>?8*]>:s>w *[> 6!u>p+q*t>DM3*[> ^#V"]>*[> N#F*t>?8*]>~   +5{>.+55OͲ5w66ͩ6́5;6<566́5͕6<>́5͕6<>645͜6<H66! w #ˆ5>Ö5>2,6""6"$6yo`"&6!"*6͋6-66*&6|6 "&6*"6MD6*$6DM:,65ͷ6g666Ͱ66**6|6U6*$645*"6""6**6#"*6ú56**6ABORTED$NO SPACE$NO FILE: $CANNOT CLOSE$DISK READ ERROR: $DISK WRITE ERROR$YYYP   YP6YPYPYPYPYPYP Ͳ ò!>6#6͐6">*>|$7>9ͫ8"|>##*|> ~!7!>6D7*>|?7!>66"|>D7!>6:>Y7!~>6#6#6Å7*|>~2~>*|> ~2>:>z7:>2>*|> ~2>!>6>!>ڰ7*>&v> ~/*>&: w!>4‹7:72"g:^ *:"|> *g:":*9My *9My *9My *~>My *>My *>My *|>":i`N#Fog_og_{ozg_ogDM!>))덑o|gV8 =D8DM!>))k8 =c8_{ozg^#V) ~8^#V|g}o ˆ8_{ozgi`N#Fogo&og_{_z#W LINK 1.31 $01/04/83?MEMRY$MEMRYX MEMORY OVERFLOW, USE [A] SWITCH$INSUFFICIENT MEMORY$OVERLAPPING SEGMENTS$ XXABS $$$XXPROG $$$XXDATA $$$XXCOMM $$$::;7;YYABS $$$YYPROG $$$YYDATA $$$YYCOMM $$$n;;;;INDEX ERROR$MULTIPLE DEFINITION: $MAIN MODULE ERROR$FIRST COMMON NOT LARGEST$COMMON ERROR$UNRECOGNIZED ITEM $( COPYRIGHT (C) 1977 DIGITAL RESEARCH 112O02Z0̀%!"K2.>2.*M0"$/̓%!"":g0i!"P0"R0"2:0v: 0$  :[0-ʬ+ʬ* :[0!_0M!f0P p  !   :O0Ĝ!":O0*V0}|<r ͪ*|Ĵ:O0_͑H *V0"Ù*V0"E V» ͪ»**»"Ù*K0"X0!0NA#~' ~p"K0*K0N"X0!0q#*w œ:0!x ͜ *V0*R0:_0̍"V02*M0r; !:r :0F: 0e%;m ">2:0b: 020 W,F:0b: 0e,ʹ:re*X0#![0~ʇww2/ͬ:2T/-"."$/2/>2.v:.ʸ!/6+͕%>20:.ʮ:.0209$<!5*}Ģ*V0":0y: 0:yv! X! ^#fkX _~ 0^ Z   2 5 8  :0‰:0=ʉG! 0ʃF#2sÖ*I0| E2V ,[ ͊m *R0"R0"P0 m E2D2V ,ʾ ͊:/ m :/ "> 2/:Į:0 : 0 -Ͳ !/6+:.;?*$/*."$/?"$/:.l*.^#V{r+s5*.^#V ʓ:. r+s!06#wÚ> 209!e/~6![0~6".~,#!0w9 9*.~6 *: 0,Ĵ2f/*.s#r2[02e/*.#"X0$<5ͬ*$/"M00:T/2:/2[0 v>20*.".2[0v*R0m "R0͍"R0!/w >=G*R0*I0"R0"R0 m :/ }>͞ ¥͢ :O0*V0*ʿ͜">2:O0:0:O0!!4:0: 0,>"4:O0: 2\0:0=: 0 F!Fʹ%*X0"`0>2Z0*X0":0k: 0T!T:\0¦:O0¦:0=ʦ ʦ*"X0 !':[0'Tx»!Z04TT!Z05T:\0!":]0!**V0":O0*X0~ Ĵ*X06 '>#G*I0!" :0 :Z0 !0N*K0:O0Ÿ"b0+"X0yʛ 'É' Ͳ >ͮ 222:0: 0 !ͮ-:0:0!4 :0& : 0::0!xI !4̨ e ::̮>͞ } !~5:Į ͵ !4̨!~5 G!~Ҩ4_!p!~ʮ5^!~> >2\0:0N *K0"+"X0:0 >''!:0N : 0,N :0 >  > !0N#~' ) > ''*K0"V0:\0x ʹ:\0" m }*K0"+"X0''*K0"V0>"4ͬ:2T/:[0 “ 2/-*M0"$/*X0!{#zڿ ~+"X0*M0+"M0wß #"K0*M0".:\0 N]T s#r+*V0*{_zW".:\02.R     % *I0:/ ͪ% ͬ:O0ĭ%  :.ʢ :0¢ *K0+"X0!2<20*#"" : 00Ĩ!??" 09"K0+"X0$< :0¢ : 0,? ʹ  *} :]0 :O0 :0 ͤ%:e0ĭ%:0 : 0  ͬͧ%vʹ   ͺ :0: 0 !;* _!5 ^#fkS \ h n 2 ͠ ͻ ͵ ͠ ͖ 8{ Ăy0 2͵ ͖ Gͻ ͋ ͖ 1ͻ ͯ 2ͯ ͖ (Ăy 2͵ ͋ ͖ ͖ Ăy0 ͖ 2ͯ 1 'd ! ^#V#*0}o|g*  ":D x=D y0P 2!0^4! 0q :0Ė: 0,; Ė*I0m |}$† ͌oy Ԍ͋ 8O͖ Ăy01y 1m X:0 : 0, >C͘%:0 : 0 v;:0 : 0 v-!v !v-ʹ {ozg:.7ͮ2Z0!O0~4l!"*|>"V0*""J͊!/6 !/͒%:^0ʏ>2.͡%ͱ*K0*T0&*M0*T0&\ ͍!/w#õH USE FACTOR !/͒%*"P0Þ%z{*P0"R0*"V0 !":O0Ģ*R0̜*R0ĜG:O0xě%:/ *R0̍:xz*P0#"P0E2D20:b!^4!/wjj*R0!6zz{z4A_A?ɯ2.2*T0"V0!.8w# *V0*K0{zҤ*b0+"X0 =$**X0#Þ!.*V0".#"X0$:d0<:0<! 0~?<#ʐ: 0͡!.".^#V"V0}{##~2.*.^#V#"."V0*V0}d##~<2.G*V0##"X0:.> u!.~w>w> u:.P'!5^!/~ !~620͕%2.|z}z> u!.~w:.W=*u!.4C*V0^#V"V0ý!.5¯:20͕%!^4!/w>R͘%>V͘%>Dý>Pý>Lý>Oý>Bý>Sý>N͘%*6".~ 6YA-!2~B6~44O!! s#r!1~ _6^4! w!p!2~~!55N!! N#fiooo&)^#fk9BIO[ov ͌z{>ɯo>g͌"!6ů{_zW5>)D*OxG !?DM!xGyO23)#͌)=R|g}o=^͌͌roz{͉͌͌}|͉͌Þ͌Þ͌ë͉͌!!o#Ã͌zg{o͌zg{o͌zg{oolo&3:0: 0 ;!,ɯ2122=2 !"I0&q!1~\5_! ~͔D:2:/ *!"I0:/ :0:0! 0^#=ʙV¨*0!҂ :0:0& !!>O: >2 yU`:10_!~0!1s! ~͔ yU!1~N=w_! ~QZP>2 ypP͘% >U̘%>: 2 3>E͘%óf:.O*.~H:.=!4>͕%0:/#". ͆%2G:0xa{_ ʇ ʇ:0x҇_<20!/w:e/S:e/9ɯ2f/2d/2e/:0:e/ !2f/g/~#»S͉!f/~4!g/_:e/w2e/ɯ<*V0"36*"V0ɯ2!4!f/6".!f/~55!d/^4!g/~f:.:e/JGwf^l͗^{:e/&{!f/4#ww&ʞGʱ2e/xf͗ :e/&ʕ:0  ý͗&{&{ý͗  !e/~&>62/-!.6*M0"$/B".2f/*"V0͗ 2f/2e/2[020> 2͕%>20ɯ202!0~@$6^4#:[0w~$w:[00 6:[0A:[0?e@eAɷP6 o2[0:Z0ʦ:\0 :O0¦:[0':[0 !20:[0 R;/>20:Z0?:\0:O0?́;B*`0*X0++{z~ ++!+"X0:Z02Z0́ͪ'2Z0X:[0*K: ḰͪX? X́ö20Pg>ã6r>ã:[0'ƒ2[0>ã ¡:.ʔ>+2/͕%!/6 >20>20:[02́:0:Z0: 0=!EQ<!LT:[0=!LE>!GT:[0=!GE2[0" 0!04>20![0:0/ʦg¦´/ʦA¦:[0O<QA>HHR>22[0m:B_>fD> j!052!"0!0N#~#A҄0Æ7O!~*0!ʩң)Ú "0 x:[0 '¦́'æ:[0 :[0,;%:[0 !:[0; ,202́/>20:[02́:0G:0::0l:[0'́:[0' 20/:[0'|>20^—́:[0  <¨!~4 >¼!~5 : >20>V>O>I>B͘%!QéÉ $ ? H Y ` e Ò ü ò ~ÏGÇåûfD?<==:e>?; ><>; ;<=R>>>F>;>G==<==>=s;=P=*>=$?P:-?]>*<<==<;=>>y> ;: =;>?>P?<=?>>=<<i;m=>c==>o>v<=<;8?N!Nw#w#W!"V0!.w#w#l2N!.~4^!.~w!.ͼ!.ͼ!.ͼ!/~w!$/ͼ!D/~w!T/~wN#Fp+q!.~^!.!. !. !. !/!$/ !D/!T/5~wN#Fq#p>BØ%!0" * F#%2NG*V0##~w*V0##~<͉:.t!.N!. yq~t +aG=#w#wY*M0!0n& {ozg"V0!K0{#z"M0b*M0!0N#yʢ ~Õb!."O1:N *M0!$/{#z"V0$ _!.*V0~#~1 ~#"M0û1 !͒%Þ%SYMBOL TABLE OVERFLOW G*V0##~w*V0##~=*V0_###1 s#r1 ^#V1 ##"X0P wP ~O!0~z 6~=ͼ !0N#~ͼ „ Ͳ O2Ny *\ ?=)$=)w#Ž&!\60 ڱ&>GO#w ³&>O # &6 &6L#6I#6B#w2|r&\u'>2]0!"%![0~2%wG&!,x&>82%2%!"b0*"M0!1"%"&"@&#"K0"T0' _#~6' D':%A6'>:6'D'>.6'D'>-6'x&!,N'!k-x&!,N':% '> ':%'_!% '6 4ɯ2%2]02e02d02g02%:\ =)!%w#w#w#w#w#w#>2^02_0:m$(!~#$,(~(# 3(%Aʩ(Pʩ(Sʩ(Hʩ(Lʩ(*t(+t(-¶(^0~Sʣ(Mʣ(e0Lʣ(d0Qʣ(g0Rʣ(%1¶(x#3(~AҶ(#3(#6 !)-x&!x&!%͉&!%͉&ͳ'(`&͛'͠':%)!&͉&l&͛'͠'!%60#60#60#>2f0!"&:O0*!"%2%2%2%Z&%u'!-x&z{:]0ʢ)*%F)w)!"%r&\‰)*%#"%+~):.2]0ʢ)r&\!~-N'*%F))Z&!"%*%B&%)¼))*)6# )G&*%*%#"%~!<-x&G:%7*$*x*7*x2*Ϳ'5*9**&*&w#"&!F)`&!"&*&%~ʅ*B&Œ*`*G&`*!S-x&ö,͟**>&*@&w#">&!F)l&!">&*@&&`*_!%~ *2%*b0}!,~ +*#+> *>#**> **b0~>+*#2+> *> *> *}2%!%*O*:/ :O0:%y*:%!O0•+:e0!]0+~,:/ ,!/~ +:f0,:/++:_0,+:/#,:/ ,:_0=+!/~ +!0s!%~!%*4:0!/,G~Y+#x=+> Y+> Y+20!/>x6 #=,G!/~ pͳ'*&}?,>*/,`&%͈':^0*+,!&6S#6Y#6M#w!&w:%2%!"&ͳ'*2%`&%͛'͠'+,:%ʶ,:%.*P0"%.*>&}ʶ,>͕*æ,:%,l&&͈'!-x&CP/M MACRO ASSEM 2.0 NO SOURCE FILE PRESENT NO DIRECTORY SPACE SOURCE FILE NAME ERROR INVALID PARAMETER: SOURCE FILE READ ERROR OUTPUT FILE WRITE ERROR CANNOT CLOSE FILES UNBALANCED MACRO LIB END OF ASSEMBLY G:%x-!%~--.-*P0*%O {-z-.*P0"%!%^4!%w..WƐ'@'Õ*>:͕*!%^Ww*%{-|-}--{?.!%~#-6.-> ͕*> ͕*͞*> ͞*ws1_ ÕCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321;Zx0NSun$Mon$Tue$Wed$Thu$Fri$Sat$::Enter today's date (MM/DD/YY): $Enter the time (HH:MM:SS): $Press any key to set time $Strike key to set time$ERROR: Requires CP/M3.$ERROR: Illegal time/date specification.$1_ 1_ ͓" * }! /* |! Hs1" 1X" :]C:]C* DM C  ͜o&" !]6m:] $ m:]S"͵.f  -=d >!e Җ. f -\! "{ *{ "} ! 6*} ~2 .*  -Ž͵.f   -§d >!e . f -! "{ *{ "} ! 6*} ~2 ͵͜o&" .* ## - )2m.  -*! 6 ̀ 2͵͜o&" .*  -ZI2ÂR͵1_ j͵v !_ q*_ &!a p+q*`  !c p+q*b    ͥ ͥ! q: <2 O*} : w! p+q* ~$7* : <2 O*} w* #" ! q: 0O! q: O8: O8! q* MF:! q* &! ͚ K8* &! ͚ M8! q* Mr/: ±: ¿! 6: <2 O*} ~2 : ͨ: 0 ! s+q! 6ÂG: Â: : H2 /Â: 0! wAÂͨ! : #~! HaÂ: ! s+q+q! : ʀÂͨ* M* ! s+q: 2 : * &) >; H: =: * ! ͚ ! s* ͜ " : ! q* &! ͚ ))))* &͜ } =2 : 2 .! 6;* & ~2 /* e2 /cNe2 : ! : HxÂ* &) : N_!m͹ ͒ * & N͏ * M* ͏_*{ #q#pO*{ w:;eO*{ w*{ ~: : :;e2 *{ 6-:;eO*{ w! s+q: ! ! 6N!m" : [!n"   h  +s#r! 4E! 6 >! һ: =2 ҝ! 6* &) : ͎ ! ҸÃ*{ ~2 *{  ~2 *{  ~2 *{ #^#V" +!͚ ! s@! 6: >;! H ! 6~* &) : ͎  ! s+4: O! DM  * M͗* M͗* Mr * Ma* Ma* MF! p+q!" * "{  "} *{ ~° ͼ! 6: *{ ~~H ! 6*} ~2 * &*} " Â! 62.* DM -  ̀  ͥ! 6>! B * &  Nͥ: <2  ! r+s+p+q+q! 6: =! ڊ * &* * &*  ʀ >: <2 W >_ogDM!>))덑o|gҳ =¡ DM!>)) = O{ozgi`N#Fogo&og_{_z#W01bCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321NAMES~VALUES~HELP~CON:~CONIN:~CONOUT:~LST:~AUX:~AUXIN:~AUXOUT:~CONSOLE~KEYBOARD~PRINTER~AUXILIARY~AXI:~AXO: &+07?GPXbgkXON~NOXON~NULL~50 ~75 ~110~134~150~300~600~1200~1800~2400~3600~4800~7200~9600~19200 #'+/49>CHMRWCOLUMNS~LINES~PAGESIZE[]=, NONE 50 75 110 134 150 300 600 1200 1800 2400 3600 4800 7200 9600 19200"$*&("*&(INPUT $OUTPUT $SOFT-BAUD$SERIAL $XON-XOFF $Error at the '^'; $Error at end of line; $Invalid number$End of line expected$Invalid delimiter$Invalid option$Baud rate can not be set for this device$Invalid physical device$Physical device does not have input capability$Physical device does not have output capability$Physical device does not have input/output capability$A NULL device can not be assigned to CONIN$Ambiguous assignments to a NULL device are not allowed$Physical Devices: $I=Input,O=Output,S=Serial,X=Xon-Xoff $  $ Bad Logical Device Assignment; $Physical Device Does Not Exist$ $File$Null Device$Current Assignments: $CONIN: = $CONOUT: = $AUXIN: = $AUXOUT: = $LST: = $Console width set to $ columns Console page set to $ lines $CONIN: = $CONOUT: = $AUXIN: = $AUXOUT: = $CONIN: = $CONOUT: = $AUXIN: = $AUXOUT: = $LST: = $Physical Device: $Baud Rate: $Characteristics: $PARALLEL$Requires CP/M 3.0$Device Reassignment Not Supported$Enter new assignment or hit RETURN $1b1b͏}0͏|HX "g:>gH|!"}Z :: H:H|b>g–X͘2e͘2f.x*gDM -²A/;SX }h2i !~6 *i& 6~A/!l6:i!l5*l&~ Nͬ *l&~ w:l<2l :i2dbv!q*&! p+q* ! s+p+q* : w#6*  * #" N#Fy ! q: 2!61!q:2!61!s+q:2!6*&"1!r+s+q:2!6*#s#r1!q:22!q!6*& > >*& :R :!4, !r+s+p+q+p+q͐ !#6 *~ *~2#* M# 2!'6:· :'ڪ ú * M# 2Õ v :24 :22&*~2$!'6*~2# *~ P *N! ** =2%!&D !'6!6:&!A :': !4# G *64 *:$w:}{+s#r͐ :z *}#"} !6:#2(O* ~2*&*: !(4*:(w*&*: ¿ *(&*~2Ñ *6*}~2 ̀ :2!!6*}#~2 !!4N* : !'6$ *!&*: $ !'6!4N*} ~2 *&*}~2 * M# 2:>!H} !4N*} ~2 * M# 2L :2}{#+s#r*}N# 2!« *}#"}Ð !)q:)a :){ :) :) H H!-s+q+p+q:-=2- **:,w**#"* !.q!76*b"3"5:e( !e6(*d&*e&͈!1s*d&͊!2s:.:.Ha *}+"}p :}++s#r !/6:1!/ږ *3"5*eMS !/4x *2MS :7ҭ Xó /X:e?Ҿ *.M!1 ^#VFXG UXG jXG |XG XG XG XG XG +XG aXG XG    ( !8q!06:8!0{ *3NH*3#"3!04\ !06:8!0ں *5}§ !76^Hì  H*5#"5!04ƒ !;s+p+q!"<!;>w *;M!<+s#r*<9+s#r!>q!"@}2?>!?3*?&m ~,*@DM*?; "@!?4*>M*@!Bq!C6>!Cp*B&))) *C& NH!C4H!Dq*D&)))  ~2FO>ҕ!F6!E6>!E*F&Ͳ *E& NH!E4š!Gq!I6*G&)))  ~2H2HIH!I4:H2HOH!I4:H2H'SH!I4:H2H>XH!I4:IR H!I4> XX:e2J(r!J6(*J&!͈!Ls+6!J6*K&))) ~  *KM? H*KMq H*KMX!K4+~!L Å!J4Ê!Qp+q:e2c(!c6(:c _!͈!es!c6>!c/*P)"P*c&S w!c4 !c6*c&))) ~X:cQX!c44:c2f!R6!d6+6>!c*c&S ~:f!cҝX%X !R6*cM? H!d4:e!d6 DX!c4k:b!R6OX:RTX `X"Ͱ"gxX*gDM$Ͱ"gX*gDM&Ͱ"gX*gDM(Ͱ"gX*gDM*Ͱ"gX*gDM !jp+q>!Ҁ>m !k6:=!kڹ*k&*i*k&m w!k4!k6*k&))) ~ !l6>!l *l&m *k&))) *l& !l4:k!k4>>þ>!sq*s&)))  ~2u!  ~2v!6!6::HHUZ :… :’ :°:u*s&)))  w::u*s&)))  w>!2:2:u2t2t *s&)))  :w.x*g -*s&" "wE.x*g -=S!{s+p+q>!{_ !"|!~6:{!~ڵ*y~0*y>9Hҏ !|ͧ*y~0_"|*y#"y:~<2~j>!| *|}!q*&!d͈!s^!dͲ:!s^! ͈!sn&ͫ:!s>!":0OH>!>#H?:0OH:0OH!6!6::HhZ :… ::ʝ hZ :}+DM*I=2*:: hZ :}+DM*I=2*S͘2e͘2f X:e!g:"O!C ^#VXUU$XUU/XUU:XUUEXU "+.7:*MͰ"*DM :2::Hқ*MS:::H:H: HI : !6!6UZ :O! ~2:J:- G:"= G*M!6#6>!p*&m 6:<2R:/:}+DMn2:— *&m 6:±*M#::H:*}~HH!6:*}~,H*}#"}:/UZ p::Hd*&)))  >\" $ a ::Hҩ*&)))  >¡& ( æ :":&H*&)))  > *M *&)))  >  *M !q*&)))  ~2*&)))  ~2 PX*M? cX*Mq vX!6>!:2¸*&ͫ DMX !6>!ڵ H:<2:X !6>! H:<2:<2m!p+q::H!6$!6*DMn2:< :J*M:\*M#a !6!6:€!"b"}Ï!"}+"b+~2dZ ::H:H!6!6::H:}+DMS@::S @:7:/4 @sS!p+q*~ *~ Hk*#"G*~w>>_ogDM!>))덑o|gҡ =^#V))) DM!>)) =¹_og^#V) _{ozgo&og_{_z#W~16OCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321ERROR: Illegal Option or Modifier. $File Spec Limit is $ERROR: Illegal Global/Local Drive Spec Mixing. $Requires CP/M 3 $ERROR: Options not grouped together. $ERROR: Illegal command tail. $No File $1616|27}27:70:7H҂0uÅl92888,T28!868͗6:8:80u:8@I #0uä9 ͉!8͎28*8M)*8"8!"88͎28!86>8͟6:8HҌ!\6?\͢28!"8:8n*8#"8Ͳ28V*8DM!*8) !ͭ6Ҍ!86!86!"8:8*88*886>~6:8:8/!8H͎ !86!96:8͌$e.8͎28×*8"8:o9/:8/HB0uv o&!8q*8& !8q:828!8681m!8q:80/>9!8/H!8r+s+q+p+q*8>w#6!"8}28:8!8!8:8O*8 N~>*8!8:8O*8 ~0_*8C66+s#r!886+s#r#4¸>!8s+p+q:85*8>X6+s#rL*8*8M!h6\6+s#r!8p+q!86:8!86>~6HҊ!8n6+s#r#4X:8!8p+q*8N#FM28O>Ҫ>!"8>!8*8M!8d6+s#r*88͸6s#r:88͗6:8H9 :8**8#~A!86!*8#~D*8##~IH9!76!*8#~D*8##~AHc!86!86!*8#~Eu!76!*8#~F«*8##~F’!86è*8##~U¥!86è? !*8#~G:8*8##~028*8##~0o&<6*8 ~0_!8s:8/>!8/H*88? !*8#~M*!86!*8#~Ny*8 ~XI!76v*8 ~P^!86v*8 ~Ss!86v? !*8#~R*8##~OHҞ!76!*8#~R*8##~WH!76!*8#~S *8##~Y!76 *8##~I!86 *8##~O!86 ? !*8#~X!76!? 86 *8#~Lz8:8 t*8#*8M8͖n>8͟6e? 8q? w? 6 *8#~Up 8:8:7 Hҥ? :88͗6Hm *8#~A*8##~LH!"8d :8 :8Ha :8 *8#~0287 *8#~0o&<6*8##~0_!8s:8/>!8/H[ *88^ ? d ? 8å6 *8#~D*8##~R~IHH3 8:8ª ? :88͗6H0 *8#~A*8##~LH !"8B86+s#r' *8#~A/>P/H$ *8#~A_8' ? 8ê 6 ? !860u:8  . *8# *8&C68  -o  *8&C68  ~  *8&C68  ~ H  *8&C68  6  *8&C68  6*8~  *8&C68 6 *8~= *8&C68 Hq:8<282 0 d[108:7!7/M !76#6:7!7/a !76+6:7!7| :8y !86Ä !76+6:8·  *8&C68  6 *8&C68 6!86>8͟6 !86:8=!8  *8&C68 ~  *8&C68 :8w *8&C68 ^8:8<28 t !86:8=!8t  *8&C68 ~ *8&C68 :8Hj 0u:8<28# >8͟6Š K_8>0!7 :8/ 8͗6 To&"8>8͟6 !"8 state8, char = $ state7, char = $ state6, char = $ state5, nxtchar = $ state4, char = $ state3, char = $ state2, char = $ state1, char = $ startstate, char = $!8p+q!86*8&*8~ ~ HҞ !84y :8!8q:8[:8]H:8(H:8)H:8=H:8,H:8H >>!8p+q!86*8#DMn 28O>G*8~!8*8&*86 *8& *8"8>!8Ҷ:8=O*8 N͢ :8!8O*8 N͢ HҶ*8+"8*8~<:8!8=Oo:8!8O*8 DM*8 -*8&*8~"!86:8<28L:8=O*8 ~ #:8=O*8 6!8p+q!86*8&*8~ʇ*8&*8~a/*8&*8>z/H}*8&*8~ *8&*8w:8<28/!8q:80/>9!8/H!8q:8A/>Z!8/H:8<28O*8 ~28*8& *8~28!8q*8 ͭ6:8<28O*8 :8w!8q!86*8M͠/:8$H*:8*8M͠*8M͈H:8_H:8$H:8!8/Hy*8M͸:8<28**8M͠*8M͈H:8_H:8$HҴ͸:8<28y*8 6*8 :8w:8!8q*8M͠*8M͈H:8*H:8?H:8_H:8$H!8q:8!8w*8M!8:8HҲ:8*¥:828*8&"8͸*8Me:8<28͸M!8:8z*8!8s>!86!8:8+ښ?:8<28*8!8sì*8M͸>!86> !8*8&*86 :8<28º:8::8A/>P!8/H :8A*8M͠:8$H:8_H:8*H:8?H/^*8~^>/k>:8.“͸*8Mғ!86/ғ>*8 6 *8 6@>!8q*8M͈/ҹ>*8M͈*8 :8/H:8H*8M͸*8 ~<*8 wù:8H:8DH:8BHM*8 ~!8J*8M͸*8 ~<*8 wM>*8 6 >!8q:8\h>͸:8\:8H*8 ~ Hҭ*8M͸*8 ~<*8 wk:8\:8H͸í:8\>*8 6͸>:828͵>:8=28͸!86 * Y/* ͦ/*>>:8,:8)H:8H]*8 6>v*8 >*8 w>> O>Ұ*8 >*8 w*8 > ҭ*8 6 >>:8,:8)H:8H*8 6>*8 >*8 w>>:8*8q#p>*8 6*8##q#p>:8?  *8M0:8K:8]‘͸:8,:8(H:8)H~͛:8Š/ð:8 :8,HҰ͸CC:8  *8M0:8:8 :8,H͸ :8)͸)>:8   *8M0:8<*8 q#p *8 6>-28Jʹ>:8c  *8M0:8(r͸ :8Ҏ*8Mq#p *8 6>-28Ҝ)>;:8Ҷ  *8M0:83:8!9w͸!9~,~ HC3!9~]0:8(:8,H:8)H͛3:8+3/3!9~=?M3>3:8Y"  *8M0:8u*8Cq#p *8 6>*8 :8wO>Ҋ>y28Ҙ͟>:8ұ4  *8M0:8):8H:8͸:8=28ñ:8[͸C:8 :8,H:8(H+:8($:8<28͸//:8EF  *8M0:8a *8 6*8/q#p>:8(v:8<28͸a*8 :8wO>ҋ>ͳ28ҙ͛>:8@»!86͸X  *8M0:8:8)>:8(:8<28͸/:8[͸Cͳ28͛>!8p+q*8"8*8##^#V"8*8 ^#V"8!86!86͸!86 *8 6*8 6*8 ~^*8ͭ6t͜28*8/ͭ6Š/28*8Cͭ6 C28*8Mͭ6¶M28*8 ͭ6 28*8ͭ628!86:8/*8 6*8##ͭ6*8##:86*8##q#p!8p+q*8"8*8##N#F*8##N#F*8##q#p$*8q#p Scanning Directory... $Out of Memory $Not Enough Memory $ !8p+q*8͙͐28u! 9r+s+p+q+q! 96:9=! 9$* 9&* 9>* 9&* 9>H~?H>! 94>*8>29!8f:8A>!"9*99*896>~6f>>8͟6:9H:8HҘ*98!96:8=!9 *9&C68 ~:8H *9&C68  ~:7/ *8# *9&C68  :7/!94:7!96!96> !9J*9&*8>!9w!94(:8!9wwO!9 "9O!9 ^#V"8!96>8͟6:9/H*8*8> *8#*8#HҼ!96*8 "9*8 ^#V"8t>8͟6>>*8~!ʡ/ҡ*8#DM!"99͢6>89͒6>*9"9"8*8#"8. *8#*8# -B*8>*8w *8 >w#6*8 w#6*8 w#6*8 w*8 w#6*8 w#6*9*8s#r:9#*8> *8~!  *8 ;2*9 9͗6́6> 9͗6+s#r. *9*9DM -*8 *9s#r74*8>147>. *8#*8# -F *8 *8 ~*8 w!96!96K2>~6~!96!96>!9Ý:9!9w҃*9&*8n&"9:9*9& *8~9W6+s#r>9͟6:9<29Ï>!9ҍ *8 ;2<_*9&C6*8 >;2H͈6<0 *8 *9&*9&C66*8 >;2H͈6 *8 q#p*8 *9&*9&C66*8 q#pR08͗6"9!96>!9 *9&9) >w#6:9<29¥ *"9y2!86!"8"8!\6?\͢29!"9*9~!!!96 !!96:9ʈ!:9o&"8:9?!*9&<6a "9*8~|!*8#"8*8~ f! *8 ~28|!'|!/|!l0ͻͲ29 !!:"8;͗6Ҥ!|0u Sort Stack Overflow $Not Enough Memory for Sort $ Sorting Directory... $! 9p+q*9))))*9)) *9) *9 *8 !$9r+s+p+q!%96> !%9m"*%9&*!9>2&9*%9&*#9>2'9Hf"!'9:&9!%94-">!-9r+s+p+q!l96**9"49*,9"69:l9 u$*l9&))49 ^#V"*9  ^#V",9!l95,9*9͒6r$**9".9*,9"09*,9**9r6)*(9N#F!"909.9͒6#*.9)*(9N#F!"8*8DM*9"5#*.9#".9*.9)*(9N#F!"8 #*09)*(9N#F!"8*9DM*8"s#*09+"09*09)*(9N#F!"8G#09.9͒6#*.9)*(9^#V"29*09)*(9*.9)*(9N#Fq#p*09)*(9*29s#r*.9#".9>!09ͪ6#*09+"09"*909͒6.9,9͒6́62$,9.9͒6)$!l94n&))49 *.9s#r*l9&))  *,9s#r*09",9o$09*9͒6i$!l94n&))49 **9s#r*l9&))  *09s#r*.9"*9÷"Ë":l9ʆ$!0Ë$!96*9"(9>8͟6Ң$(99͒6r6!8ͭ6$!0!"m9*8+!m9ͭ6$*m9)*(9*m9s#r*m9"m9$!0*8+p"!96 Name Bytes Recs Attributes $------------ ------ ------ ------------$ Prot Update $ ------ -------------- --------------$ Access $ Create $ Press RETURN to Continue $Sys$Dir$RO$RW$Arcv $ $Read $Write $Delete$None $ $Directory For Drive $ User $: $k$ERROR: Illegal Format Value. $ERROR: Date and Time Stamping Inactive. $Total Bytes = $ Total Records = $ Files Found = $ Total 1k Blocks = $ Used/Max Dir Entries For Drive $No File $'2v9:v9 ''2v9':v9+'u:8W'*8+:w9͈6W'%0*9#"9 '!w960!w94*8 ^#Vx9<0*8 {9o0 *8 ^#V~9<0*8#DM10*8 N#F'[1k00*8 DM10 *8 ~'%0'%00 *8 ~'%0(%00:8+( *8 ~"(%0((%0Þ( *8 ~@(A0C(0*8#~U(10X(0*8##~k(20n(0*8 ~҃(30Æ(0*8 ~қ(40Þ(0*8 >ͪ6l)0*8 ^#V"9 >(%0 )*9 >@(%0 )*9 > )%0 )&00*9 ~*9 ~H=)*9 DMͣ5C) &000*9~*9#~Hl)*9DMͣ5:8|) 0Æ):9چ),'&0:8AO0:0:7 ڶ)1&0*8& [1,'!"9!96!9p+q*p9*9&6>~6'**9*86>~6!t9ͭ6H*,'m),'*,'*9#"9:8AO0**09&0*9DM1ͻ*p9#"p9*t9#"t9!9s+q+q:9ր!9j*>:9ր!9*>>!9p+q*9 N*7M*7J* *9 N*7M*7J*H!\6?!96\͢29:95+:9o&"8> *8 ~H;2ᖟ/H,+',+*8#DM͂*,+*8#DM)Ͳ29*!96:9Ҭ+*9#"9*9)*(9N#F!"8*8:889͒6HҖ+*9#"9*9)*(9N#F!"8[+89͒6©+*9"8+*8"8*8:898͒6H+*8"8ö+:8+!96+!9698͒6i,*8 >ͪ6!7>͟6!7H*8#DM͂*Hc,_'*8#DM)*8 N#F'[1<&06++!96!"t998͒6q-*8 >ͪ6!7>͟6!7H*8#DM͂*Hk-*p9*9&6>~6X-*9*86>~6K-:8>t9͟6H>-,'m),' %00 %0,'3%003%0,'*9"9*t9#"t9H-,'*9#"9U-,'*9#"9[-0͎'*p9#"p9_'ͻ6+u,!96!"t998͒6d.*8 >ͪ6!7>͟6!7H*8#DM͂*H^.*9*86>~6A.:8>t9͟6HA.,'m),' %0[%0:8@.%0.%0,'3%0r%0,'*9"9*t9#"t9,'*9#"9͎'͟(*p9#"p9ͻ_'6+}-!"9"p9"x9}2z9o&"{92}9o&"~9298͗6"8*9 "9!"96+>!8ҵ.>&0u*8M!D/ ^#V͵*J/+J/:8&/:8:8@:8 H:8HH!9/r-#/]&0uA/:8!9>/r-A/j,J/...:8>!p9ͪ6H0*98͢6!8҆/ 0 0Ì/,','&0x91k0&0 {91&0*p9[1&0~91&0:8AO0:00*8[1/0K2#[1>p9͟6,0:8&0,'m)&0ͻ;0!o96:8;0,'!9r+s+p+q*9^#V"9*995s#r!9ͭ6n0*9##4!9r+s+p+q*9^#V*9DM<0*9##*9##~`iw!9p+q*9##~29*9##~w*9n6+s#r*9#:9w!9q*9&!9p+q*9  0 0 0!9p+q!96>!9/1*9&*9>O0!941 0!96> !9Z1*9&*9>O0!9491!9s+p+q+p+q>9͟61*9*96!9s*96"9PY! 6"9>~6!9#~Hһ101!96:90O0j1!9r+s+p+q*9##~2*9##N*9DM[1*9N#F'[1:2!969:9͟6+20*9&<6!9s 2*9N#F'[1!9q*9&*9~!9q*9&*9*9& *9N`ih6n&"9;2<o&"9;Zx0NSun$Mon$Tue$Wed$Thu$Fri$Sat$!9q:9<29O*9 :9w!9p+q*9~$3*9:9<29O*9 w*9#"92!9q:90O2!9q:9O3:9O3!9q*9M3:2!9q*9&! 6K3*9&! 6M3!9q*9MJ3/2!9s+q:929:9*9&2) >;͟6HҸ3:9=:9*9! 6!9s*96"9:9!9q*9&! 6))))*9&6 }!9s+q:9!9!96N!m"9:9*4!n"999͒67499͒6+s#r!944!96 >!9Ҋ4:9=29l4!96*9&2) :96!9ͭ6҇4R4*9 ~29*9 ~29*9 ~29*9#^#V"9+!6!9s4!96:9>;!9ͪ6H4!96M4*9&2) :969͢6!9s+4*9~(5:9O!2 DM2 2*9Mo3*9Mo3*9MJ3 2*9M93*9M93*9~`5*9M3!9p+q!"9*9"9 "9*9~~Hҟ5͋4!96 5â5u!9p+q!96.*9DM9 -º59a5!96> !95*9& 9 N0:9<295i`N#Fog_og_ogDM!>))덑o|g26 = 6^#V))) DM!>))R6 =J6_og^#V) h6^#V|g}o r6_{ozgO{ozgi`N#Fogo&og_{_z#Wi`N#Fog\1"CP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321͈͋> (12/06/82) CP/M 3 PIP VERS 3.0 DISK READ$DISK WRITE$VERIFY$INVALID DESTINATION$INVALID SOURCE$USER ABORTED$BAD PARAMETER$INVALID USER NUMBER$INVALID FORMAT$HEX RECORD CHECKSUM$FILE NOT FOUND$START NOT FOUND$QUIT NOT FOUND$INVALID HEX DIGIT$CLOSE FILE$UNEXPECTED END OF HEX FILE$INVALID SEPARATOR$NO DIRECTORY SPACE$INVALID FORMAT WITH SPARCE FILE$MAKE FILE$OPEN FILE$PRINTER BUSY$CAN'T DELETE TEMP FILE$ *5<P_lz)<\fp}NO DIRECTORY SPACE$NO DATA BLOCK$CAN'T CLOSE CURRENT EXTENT$SEEK TO UNWRITTEN EXTENT$RANDOM RECORD OUT OF RANGE$RECORDS DON'T MATCH$RECORD LOCKED$INVALID FILENAME$FCB CHECKSUM$2FTe$NONRECOVERABLE$R/O DISK$R/O FILE$INVALID DISK SELECT$INCOMPATIBLE MODE$INVALID PASSWORD$ALREADY EXISTS$LIMIT EXCEEDED$eT     =.:;,<> _[]OUTPRNLSTAXOAUXCONAXIINPNULEOFERROR: $ - $$$$DESTINATION IS R/O, DELETE (Y/N)? $**NOT DELETED**$COPYING -$ (Y/N)? $REQUIRES CP/M 3$CP/M 3 PIP VERSION 3.0$:"Q}#( :}#2m#}1͖-m:m#8ͺk 2#2$M 2"!\#6!z#6:z#b:m#2}#!$6+6+6!o#6!"6!"_#"X#}2d#2g#2h#2c#2z#!n#6!e#6#6!j#6!"6:m#ҹ*ͨͺ!#6:}#͑ ͖%#:d#%# :p#=:p#_HH ":S# N:"H ͵!S#6:d#<"$\( K"#&#( Az:S#:" H҃͵!"6&#,"( Az>!S#Ҕͥ z:S#ʡ!e#6:j#z!f#6:p#,:p# Hͥ :p#,2j#!c#w:S#!$6:$!$6:$!$6:"> !"H!d#"ͥ :"/!f#6:" T!f#6>'!f#Q!f#4<g:" dgA2:j#w"á:m#2}#b! $p+q*$}2{#|2x#!!$q:!$_ ͨ ͨ!#$p+q*"$ !%$p+qͺ*$$DM!|#6|#  !'$p+q*&$!)$p+q$*($ DM!+$p+q**$DM **$DM̈́:{#**$ ~Hi **$!{#6!x#6!-$p+q*,$DM̈́!/$p+q*.$DM̈́DM̈́!1$p+q*0$DM *0$DM̈́!3$p+q*2$DM̈́!5$p+q*4$DM̈́!7$p+q$*6$ ~ *6$ >w! *6$ >w$*6$ DM*6$DM̈́!9$p+q*8$DM *8$DM̈́!;$p+q*:$DM̈́ !<$q!<$:$ʐ :<$2$_ *#Mt *R#Mt *"Mt !>$p+q*=$!DM̈́:{#!@$p+q*?$"DM̈́:{#!B$p+q*A$#!D$p+q*C$$!E$q!E$:\# :E$2\#_,0!J$s+p+q+p+q:J$=2J$^ *F$*H$ w*F$#"F$*H$#"H$7  !z#6:h#~ ͡ "j !h#6:g#Ҕ ͙ "j "͢ !}#6!"6l!K$q_ *K$&) N#Fͺ!N$r+s+q:{#2Q$:x#2R$_ :L$:Q$H !R$6 :R$2R$*L$& N! N#F> !L$~H:Q$H> !Q$/H^  ͨ:Q$=O!r N#F!R$6:R$ {  ͨ*R$&) N#Ft>M$H" *M$~A=Oͨ:ͨ!P$6> !P$ *P$&*M$>2O$ :P$ .ͨ*O$Mͨ!P$4¢ ͺ:Q$:Q$H:Q$H:Q$H :d#2z#D :R$>!R$~ HH> HD :d#2z#ͥ  m m ͥ !V#:"{ >!V#:"© !U#:"Ғ >!U#:"© !T#:"ҩ >>͙ %#-"( x"( :+#2+#%#! :{#2y# %#j :x# %# "͢ :{#:x#H!" " :{#L:x#D" L" !#6!g#6͡ :"2""! :{#u!h#6:$/:"HҊ!{#6:{#¯:x#§" ï" :"2r#:"2s#:"2t#:"2u#:"2v#:"2w#" 2{#"T#( !"6#6#6#6!"]#:g#ͬ !_#!"Y$>'")!"W$͙ :k#!l#we *W$$ DM" b" k" :a#Ҁ!@"Z# Ë!"Z# W$Y$;">'"W$Y$;"!@*"!a#W$Y$;""Z#!Z#"}O *W$$ DM" :{#" *Z#*W$"W$Ë:$ң !"W$ Y$W$;"ҝ"ͩ 2V$*##"#>'"G!#4!U$6:U$ր!V$ҁ*U$& :U$W$!$ 2V$!U$4L*W$"W$:V$ښ" "Ϳ " *W$$ W$_#;"+s#r{_$( N :a#!@"Z# !"Z# ͡ *X#"]#X#";">'"X#";"!@*"!a#=X#";"!"Z#!Z#"}O *X#*"DM:"2W#"Ϳ :{#:{#n" :a#҇*x#&"*X#"X#!W#:":"րHҦ!"6" n /2k#:a#/!c#" "j !h#6!i#6*X#*"6*Z#*X#"X#![$q:[$ !"4>!$:$!":$1*[$&*S#M! ^#V*[$M̈́ø*[$&ø*[$&ø*[$&ø"_#;"ڄ *_#$ :[$w*_##"_#øg*[$&øAKYgu!\$q:\$ *\$M:$*\$M:"2]$!$:]$!$:]$2]$!]$:$w>!]$!]$5 :\$ (!"6!^$q:^$!$wF ͹O:^$0O͹!_$q:_$O):_$O)!`$6:$2$:$'2$:$'2$:$'2$*$MP*$MP*$MP:$¿:͹ ͹ ͹!a$q:$:a$ :n#9:a$ :a$H9:$2b$(:b$!b$6<:"<2"!b$(!"6 ͹>!$4k!n#6:a$ F!"6*a$M͹:a$ Z!n#6!c$q:c$a/>z!c$/H~:c$_2c$:c$!d$q:d$A/>Z!d$/Hҥ:d$ 2d$:d$!f$6*"M!N ^#Vͥ `"]#;" :e#/!b#!"X#]#@" *_#"X#*]#*"~2e$*]##"]#`5!f$62e$`2e$`̀2e$`"5E:f$ҕ:$Ҁ:o#<2o#2f$Ë:e$ 2f$:f$ҕN :$Ҥ:e$2e$:$ҳ*e$M[: $*e$M͂:e$>!":"=2"> >>!"!"5+N!~# ~2g$!"4ͩ2g$ >>!$;*$Mk8:$2"!$6:"<2"!"6g>!$c*$Mk\!$6!"6> :g$g:g$!h$q:"!h$wO!~# ~2i$—*h$&~# :g$w>!g$:i$¨!"4í!"6>2p#:$X#]#;"!i#:p#!o$62j$:j$::j$:o$" *j$M2j$2j$2l$:j$2k$2j$!l$w:l$D!o$6I!o$6: $!o$x:j$::j$Hu2j$T:*k$M*j$M:l$2m$"p$2n$:l$ʲ!l$52k$Ý" 2j$:j$0O> :j$0:j$AO>" :j$A 2j$OH!m$wO`i"">!$@ ͥ >!$N ͥ *_#}bO2 ͙ "j :{#" :y#:.#:$:{#Y:{#NH{͟O[2{#Ø:{#Yͺ"͢ ͺ:.#2.#:/#2/#%#V %#͢ %##( "0 :&#!r#2&#:'##2'#:(##2(#:)##2)#:-#2-#:.##2.#:/##2/#:0#20#%#V :$}͡ :"2"!"6"V :b#ڦ!$""K"!>1"""""$@""!>1"""""$ """_#;" !"X#:$/>X#H"H@>X#H"""!r$6>!r$@:r$"!*"~9:r$"!"X#!r$4:e#!f#2a#!i#6!b#6!l#6+6!s$6>!s$ڶ*s$&$ ~ʯ*s$&$ ~‘!a#6ï*s$&$ ~¯:e#!f#2b#!a#6!s$4b~:f#W:a#:i#:c#!i#*X#"_#:j#*X#"_# *_#"X#:k#!i# RG: $!$$5Ͱ5*p#M$:j#!c#G*_#"X#:e#QO͡ "  "ͩ 2{#n Hґ*""#:"2#!i#6:{#°*"#"">'"­!"4:{#*"!"">'"!"4" f:z#!"t$"x$͡ !h6\ !"v$:{#t$v$;"H6*v$#"v$͔ :{#]>x$H"R\ : $\ͺ*v$#"t$:{#_!#&#( &#"( f#!1#6!"6:/#/!$#: $>x$H"!{#6:{#Y:{#NH':$͟O[2{#!{#6Y*x$#"x$!g#6:{#Y! $#Aͺ!z$6> !z$e*z$&%# ~2{$ ^:z$ W.ͨ*{$Mͨ!z$4/:$p>͡ !"6?" :{#ʲ:{#_!# "( :"ڬ>͔ ~>!":R#!":%#HH :#<2#!}#> *#&~# N[2p# :p# H !}$p+q.*|$ 6 !p#6 #6:q#,T:q# A!p#6N:q#$N!p#6 ͒ )$*|$ 6,*|$ 6:"<*|$w*|$ :#w!~$6>!~$ڗ*~$&$ 6!~$4|!"6#6#6!q#6*p#Mc :q#ھ:p#*Ͳ ͒ 2p#ê:p#:¿:q#(*|$#~A<*|$wO>*p#Mc %:p#[ !#5.*|$ 6 ñ:q#1!$6#6> !$ڰ!$6:$<2$O>/:$!$O!J *$&*|$ H~G:$¡.*|$ :$w[œ !#5:$2$!$49:p#[¼ _ :q#!q#6+~. 2p#Oc  :q# :p#* Ͳ ͒ !q#6+~;= 2p#Oc = :q#$ *q#&$ *|$:p#w!q#4 :p#[H !#5.*|$ 6 *|$ 6å!$q!$6> !$ڏ *$&> :$ˆ >!$4l >:q#<2q#O*|$ :p#w:p#?± !d#6!$q!p#6?!$:q# ͒ û 2p#:p# :p#]H!:p#A2$O>!:p# !2p#!ͥ !:p#S:p#QHX!:#<2$2p#:p# HO!1!2p#Ü!2p#02$O> r!!$6Ü!2p#02$O> ڜ!*$&!*$& !$sr!*$&$ :$w:$!>!$ҿ!ͥ -*|$ :$w 2p#_og_{ozg_og^#V))) _{ozg^#V) "^#V|g}o "_{ozgO{ozgi`N#Fogo&ogCOMMANDS CONVENTIONS 3CNTRLCHARS COPYSYS $VDATE &dEXAMPLES (3DEVICE *:OPTIONS 0EXAMPLES 5 DIR ?TBUILT-IN BVEXAMPLES FWITHOPTIONS N)OPTIONS Q~EXAMPLES bjDUMP kED lKCOMMANDS n7EXAMPLES kERASE mOPTION pEXAMPLES lFILESPEC GENCOM eOPTIONS EXAMPLES |GET OPTIONS uEXAMPLES HELP jHEXCOM ZINITDIR LIB *OPTIONS GMODIFIERS *EXAMPLES 7LINK OPTIONS oEXAMPLES MAC EXAMPLES \OPTIONS $PATCH ]PIP (COPY) CEXAMPLES 6OPTIONS &)PUT /'OPTIONS 5MEXAMPLES >-RENAME D9EXAMPLES GRMAC NvOPTIONS PREXAMPLE T\SAVE VzEXAMPLE ZSET `LABEL c_EXAMPLES djPASSWORDS fbMODES i#ATTRIBUTES o&EXAMPLES wDEFAULT |YTIME-STAMPS ~OPTIONS -EXAMPLES ^DRIVES 4SETDEF MEXAMPLES mSHOW WEXAMPLES pSID COMMANDS bEXAMPLES eUTILITIES uSUBMIT 4SUBFILE EXECUTE  PROFILE.SUB  TYPE *EXAMPLES GUSER IEXAMPLES ZXREF $ $ )`$ j" ///1commands CP/M 3 Command Format: A>COMMAND {command tail} A CP/M 3 command line is composed of a command, an optional command tail, and a carriage return. The command is the name or filename of a program to be executed. The optional command tail can consist of a drive specification, one or more file specifications, and some options or parameters. ///2conventions COMMAND CONVENTIONS The following special symbols define command syntax. {} surrounds an optional item. | separates alternative items in a command line. indicates a carriage return. ^ indicates the Control Key. n substitute a number for n. s substitute a string (group) of characters for s. o substitute an option or option list for o. [] type square brackets to enclose an option list. () type parens to enclose a range of options within an option list. RW Read-Write attribute - opposite of RO RO Read-Only attribute - opposite of RW SYS System attribute - opposite of DIR DIR Directory attribute - opposite of SYS ... preceding element can be repeated as many times as desired. * wildcard: replaces all or part of a filename and/or filetype. ? wildcard: replaces any single character in the same position of a filename and/or filetype. ///1cntrlchars Control Character Function CTRL-A moves cursor one character to the left. Banked system only. CTRL-B moves cursor from beginning to end of command line and back without affecting command. Banked system only. CTRL-C stops executing program when entered at the system prompt or after CTRL-S. CTRL-E forces a physical carriage return without sending command to CP/M 3. CTRL-F moves cursor one character to the right. Banked system only. CTRL-G deletes character at current cursor position if in the middle of a line. Banked system only. CTRL-I same as the TAB key. CTRL-H delete character to the left of cursor. CTRL-J moves cursor to the left of the command line and sends command to CP/M 3. Line feed, has same effect as carriage return. CTRL-K deletes character at cursor and all characters to the right. CTRL-M same as carriage return. CTRL-P echoes console output to the list device. CTRL-Q restarts screen scrolling after a CTRL-S. CTRL-R retypes the characters to the left of the cursor  on a new line; updates the command line buffer. CTRL-S stops screen scrolling. CTRL-U updates the command line buffer to contain the characters to the left of the cursor; deletes current line. CTRL-W recalls previous command line if current line is empty; otherwise moves cursor to end of line. CTRL-J,-M,-R,-U and RETURN update the command line buffer for recall with CTRL-W. Banked system only. CTRL-X deletes all characters to the left of the cursor. ///1COPYSYS Syntax: COPYSYS Explanation: COPYSYS copies the CP/M 3 system from a CP/M 3 system diskette to another diskette. The new diskette must have the same format as the original system diskette. Example: A>COPYSYS ///1DATE Syntax: DATE {CONTINUOUS} DATE {time-specification} DATE SET Explanation: The DATE command lets you display and set the date and time of day. ///2Examples A>DATE Displays the current date and time. A>DATE C Displays the date and time continuously. A>DATE 08/14/82 10:30:0 Sets the date and time. A>DATE SET Prompts for date and time entries. ///1DEVICE Syntax: DEVICE { NAMES | VALUES | physical-dev | logical-dev} DEVICE logical-dev=physical-dev {option} {,physical-dev {option},...} DEVICE logical-dev = NULL DEVICE physical-dev {option} DEVICE CONSOLE [ PAGE | COLUMNS = columns | LINES = lines] Explanation: DEVICE displays current logical device assignments and physical device names. DEVICE assigns logical devices to peripheral devices attached to the computer. DEVICE also sets the communications protocol and speed of a peripheral device, and displays or sets the current console screen size. ///2Options [ XON | NOXON | baud-rate ] XON refers to the XON/XOFF communications protocol. NOXON indicates no protocol and the computer sends data to the device whether or not the device is ready to receive it. baud-rate is the speed of the device. The system accepts the following baud rates: 50 75 110 134 150 300 600 1200 1800 2400 3600 4800 7200 9600 19200 ///2Examples A>DEVICE Displays the physical devices and current assignments of the logical devices in the system. A>DEVICE NAMES Lists the physical devices with a summary of the device characteristics. A>DEVICE VALUES Displays the current logical device assignments. A>DEVICE CRT Displays the attributes of the physical device CRT. A>DEVICE CON Displays the assignment of the logical device CON: A>DEVICE CONOUT:=LPT,CRT Assigns the system console output (CONOUT:) to the printer (LPT) and the screen (CRT). A>DEVICE AUXIN:=CRT2 [XON,9600] Assigns the auxiliary logical input device (AUXIN:) to the physical device CRT using protocol XON/XOFF and sets the transmission rate for the device at 9600. A>DEVICE LST:=NULL Disconnects the list output logical device (LST:). A>DEVICE LPT [XON,9600] Sets the XON/XOFF protocol for the physical device LPT and sets the transmission speed at 9600. A>DEVICE CONSOLE [PAGE] Displays the current console page width in columns and length in lines. A>DEVICE CONSOLE [COLUMNS=40 LINES=16] Sets the screen size to 40 columns and 16 lines. ///1DIR The DIR command displays the names of files and the characteristics associated with the files. The DIR command has three distinct references: DIR DIRS DIR with Options DIR and DIRS are built-in utilities. DIR with Options is a transient utility and must be loaded into memory from the disk. ///2Built-in Syntax: DIR {d:} DIR {filespec} DIRS {d:} DIRS {filespec} Explanation: The DIR and DIRS Built-in commands display the names of files cataloged in the directory of an on-line disk. DIR lists the names of files in the current user number that have the Directory (DIR) attribute. DIR accepts the * and ? wildcards in the file specification. ///3Examples A>DIR Displays all files in user 0 on drive A that have the Directory attribute. A>DIR B: Displays all DIR files in user 0 on drive B. 2A>DIR C:ZIPPY.DAT Displays the name ZIPPY.DAT if the file is in user 2 on drive C. 4A>DIR *.BAS Displays all DIR files with filetype BAS in user 4 on drive A. B3>DIR X*.C?D Displays all DIR files in user 3 on drive B whose filename begins with the letter X, and whose three character filetype contains the first character C and last character D. A>DIRS Displays all files for user 0 on drive A that have the system (SYS) attribute. A>DIRS *.COM Displays all SYS files with filetype COM on drive A in user 0. A command (.COM) file in user 0 with the system attribute can be accessed from any user number on that drive, and from any drive in the search chain (see SETDEF). ///2withOptions Syntax: DIR {d:} [options] DIR {filespec} {filespec} ... [options] Explanation: The DIR command with options is an enhanced version of the DIR built-in command and displays your files in a variety of ways. DIR can search for files on any or all drives, for any or all user numbers. One or two letters is sufficient to identify an option. You need not type the right hand square bracket. ///3Options Option Function ATT displays the file attributes. DATE displays date and time stamps of files. DIR displays only files that have the DIR attribute. DRIVE=ALL displays files on all on-line drives. DRIVE=(A,B,C,...,P) displays files on the drives specified. DRIVE=d displays files on the drive specified by d. EXCLUDE displays files that DO NOT MATCH the files specified in the command line. FF sends an initial form feed to the printer device if the printer has been activated by CTRL-P. FULL shows the name, size, number of 128-byte records, and attributes of the files. If there is a directory label on the drive, DIR shows the password protection mode and the time stamps. If there is no directory label, DIR displays two file entries on a line, omitting the password and time stamp columns. The display is alphabetically sorted. (See SET for a description of file attributes, directory labels, passwords and protection modes.) LENGTH=n displays n lines of printer output before inserting a table heading. n is a number between 5 and 65536. MESSAGE displays the names of drives and user numbers DIR is searching. NOSORT displays files in the order it finds them on the disk. RO displays only the files that have the Read-Only attribute. RW displays only the files that are set to Read-Write. SIZE displays the filename and size in kilobytes (1024  bytes). SYS displays only the files that have the SYS attribute. USER=ALL displays all files in all user numbers for the default or specified drive. USER=n displays the files in the user number specified by n. USER=(0,1,...,15) displays files under the user numbers specified. ///3Examples A>DIR C: [FULL] Displays full set of characteristics for all files in user 0 on drive C. A>DIR C: [DATE] Lists the files on drive C and their dates. A>DIR D: [RW,SYS] Displays all files in user 0 on drive D with Read-Write and System attributes. 3A>DIR [USER=ALL, DRIVE=ALL] Displays all the files in all user numbers (0-15) in all on- line drives. B6>DIR [exclude] *.DAT Lists all the files on drive B in user 6 that do not have a filetype of .DAT. 3B>DIR [SIZE] *.PLI *.COM *.ASM Displays all the files of type PLI, COM, and ASM in user 3 on drive B in size display format. A>DIR [drive=all user=all] TESTFILE.BOB DIR displays the filename TESTFILE.BOB if it is found on any drive in any user number. A>DIR [size,rw] D: DIR lists each Read-Write file that resides on Drive D, with its size in kilobytes. Note that D: is equivalent to D:*.*. ///1DUMP Syntax: DUMP filespec Explanation: DUMP displays the contents of a file in hexadecimal and ASCII format. Example: A>DUMP ABC.TEX ///1ed Format: ED input-filespec {d:|output-filespec} Explanation: Character file editor. To redirect or rename the new version of the file specify the destination drive or destination filespec. ///2commands ED Command Summary Command Action nA append n lines from original file to memory buffer 0A append file until buffer is one half full #A append file until buffer is full (or end of file) B, -B move CP to the beginning (B) or bottom (-B) of buffer nC, -nC move CP n characters forward (C) or back (-C) through buffer nD, -nD delete n characters before (-D) or from (D) the CP E save new file and return to CP/M-86 Fstring{^Z} find character string H save new file, reedit, use new file as original file I enter insert mode Istring{^Z} insert string at CP Jsearch_str^Zins_str^Zdel_to_str juxtapose strings nK, -nK delete (kill) n lines from the CP nL, -nL, 0L move CP n lines nMcommands execute commands n times n, -n move CP n lines and display that line n: move to line n :ncommand execute command through line n Nstring{^Z} extended find string O return to original file nP, -nP  move CP 23 lines forward and display 23 lines at console Q abandon new file, return to CP/M-86 R{^Z} read X$$$$$$$.LIB file into buffer Rfilespec{^Z} read filespec into buffer Sdelete string^Zinsert string substitute string nT, -nT, 0T type n lines U, -U upper-case translation V, -V line numbering on/off 0V display free buffer space nW write n lines to new file 0W write until buffer is half empty nX write or append n lines to X$$$$$$$.LIB nXfilespec{^Z} write n lines to filespec; append if previous xcommand applied to same file 0x{^Z} delete file X$$$$$$$.LIB 0xfilespec{^Z} delete filespec nZ wait n seconds Note: CP points to the current character being referenced in the edit buffer. Use {^Z} to separate multiple commands on the same line. ///2Examples A>ED TEST.DAT A>ED TEST.DAT B: A>ED TEST.DAT TEST2.DAT A>ED TEST.DAT B:TEST2.DAT ///1erase Syntax: ERASE {filespec} {[CONFIRM]} Explanation: The ERASE command removes one or more files from the directory of a disk. Wildcard characters are accepted in the filespec. Directory and data space are automatically reclaimed for later use by another file. The ERASE command can be abbreviated to ERA. ///2Option [CONFIRM] option informs the system to prompt for verification before erasing each file that matches the filespec. CONFIRM can be abbreviated to C. ///2Examples A>ERASE X.PAS Removes the file X.PAS from the disk in drive A. A>ERA *.PRN Confirm (Y/N)?Y All files with the filetype PRN are removed from the disk in drive A. B>ERA A:MY*.* [CONFIRM] Each file on drive A with a filename that begins with MY is displayed with a question mark for confirmation. Type Y to erase the file displayed, N to keep the file. A>ERA B:*.* Confirm (Y/N)?Y All files on drive B are removed from the disk. ///1filespec FILESPEC FORMAT CP/M 3 identifies every file by its unique file specification, which can consist of four parts: the drive specification, the filename, the filetype and the password. The term "filespec" indicates any valid combination of the four parts of a file specification, all separated by their appropriate delimiters. A colon must follow a drive letter. A period must precede a filetype. A semicolon must precede a password. The symbols and rules for the parts of a file specification follow: d: drivespec optional single alpha character (A-P) filename filename 1-8 letters and/or numbers typ filetype optional 0-3 letters and/or numbers password password optional 0-8 letters and/or numbers Valid combinations of the elements of a CP/M 3 file specification are: filename d:filename filename.typ d:filename.typ filename;password d:filename;password filename.typ;password d:filename.typ;password If you do not include a drive specifier, CP/M 3 automatically uses the default drive. Some CP/M 3 commands accept wildcard (* and ?) characters in the filename and/or filetype parts of the command tail. A wildcard in the command line can in one command reference many matching files on the default or specified user number and drive. (See Commands). ///1GENCOM Syntax: GENCOM {COM-filespec} {RSX-filespec} ... {[LOADER | NULL | SCB=(offset,value)]} Explanation: The GENCOM command creates a special COM file with attached RSX files. The GENCOM command can also restore a previously GENCOMed file to the original COM file without the header and RSX's. GENCOM can also attach header records to COM files. ///2Options LOADER sets a flag to keep the program loader active. NULL indicates that only RSX files are specified. GENCOM creates a dummy COM file for the RSX files. The output COM filename is taken from the filename of the first RSX-filespec. SCB=(offset,value) sets the System Control Block from the program by using the hex values specified by (offset,value). ///2Examples A>GENCOM MYPROG PROG1 PROG2 Generates a new COM file MYPROG.COM with attached RSX's PROG1 and PROG2. A>GENCOM PROG1 PROG2 [NULL] Creates a COM file PROG1.COM with RSX's PROG1 and PROG2. A>GENCOM MYPROG  GENCOM takes MYPROG.COM, strips off the header and deletes all attached RSX's to restore it to its original COM format. A>GENCOM MYPROG PROG1 PROG2 GENCOM looks at the already-GENCOMed file MYPROG.COM to see if PROG1.RSX and PROG2.RSX are already attached RSX files in the module. If either one is already attached, GENCOM replaces it with the new RSX module. Otherwise, GENCOM appends the specified RSX files to the COM file. ///1GET Syntax: GET {CONSOLE INPUT FROM} FILE filespec{[{ECHO|NO ECHO} | SYSTEM]} GET {CONSOLE INPUT FROM} CONSOLE Explanation: GET directs the system to take console input from a file for the next system command or user program entered at the console. Console input is taken from a file until the program terminates. If the file is exhausted before program input is terminated, the program looks for subsequent input from the console. If the program terminates before exhausting all its input, the system reverts back to the console for console input. With the SYSTEM option, the system immediately goes to the specified file for console input. The system reverts to the console for input when it reaches the end of file. Re-direct the system to the console for console input with the GET CONSOLE INPUT FROM CONSOLE command as a command line in the input file. ///2Options ECHO specifies that input is echoed to the console. This is the default option. NO ECHO specifies that file input is not echoed to the console. The program output and the system prompts are not affected by this option and are still echoed to the console. SYSTEM specifies that all system input is immediately taken from the disk file specified in the command line. GET takes system and program input from the file until the file is exhausted or until GET reads a GET console command from the file. ///2Examples A>GET FILE XINPUT A>MYPROG Tells the system to activate the GET utility. Since SYSTEM is not specified, the system reads the next input line from the console and executes MYPROG. If MYPROG program requires console input, it is taken from the file XINPUT. When MYPROG terminates, the system reverts back to the console for console input. A>GET FILE XIN2 [SYSTEM] Immediately directs the system to get subsequent console input from file XIN2 because it includes the SYSTEM option. The system reverts back to the console for console input when it reaches the end of file in XIN2. Or XIN2 may redirect the system back to the console if it contains a GET CONSOLE command. A>GET CONSOLE Tells the system to get console input from the console. This command may be used in a file (previously specified in a GET FILE command), which is already being read by the system for console input. It is used to re-direct the console input back to the console before the end-of-file is reached. ///1HELP Syntax: HELP {topic} {subtopic1 ... subtopic8} {[NOPAGE|LIST]} Explanation: HELP displays a list of topics and provides summarized information for CP/M 3 commands. HELP topic displays information about that topic. HELP topic subtopic displays information about that subtopic. One or two letters is enough to identify the topics. After HELP displays information for your topic, it displays the special prompt HELP> on your screen, followed by a list of subtopics. - Enter ? to display list of main topics. - Enter a period and subtopic name to access subtopics. - Enter a period to redisplay what you just read. - Press the RETURN key to return to the CP/M 3 system prompt. - [NOPAGE] option disables the 24 lines per page console display. - Press any key to exit a display and return to the HELP> prompt. Examples: A>HELP A>HELP DATE A>HELP DIR OPTIONS A>HELP>.OPTIONS HELP>SET HELP>SET PASSWORD HELP>.PASSWORD HELP>. HELP> ///1HEXCOM Syntax: HEXCOM filename Explanation: The HEXCOM Command generates a command file (filetype .COM) from a .HEX input file. It names the output file with the same filename as the input file but with filetype .COM. HEXCOM always looks for a file with filetype .HEX. Example: A>HEXCOM B:PROGRAM Generates a command file PROGRAM.COM from the input hex file PROGRAM.HEX. ///1INITDIR Syntax: INITDIR {d:} Explanation: The INITDIR Command initializes a disk directory to allow date and time stamping of files on that disk. INITDIR can also recover time/date directory space. Example: A>INITDIR C: INITDIR WILL ACTIVATE TIME-STAMPS FOR SPECIFIED DRIVE. Do you want to re-format the directory on C: (Y/N)?Y ///1LIB Syntax: LIB filespec{[I|M|P|D]} LIB filespec{[I|M|P]}=filespec{modifier} {,filespec{modifier} ... } Explanation: A library is a file that contains a collection of object modules. Use the LIB utility to create libraries, and to append, replace, select or delete modules from an existing library. Use LIB to obtain information about the contents of library files. LIB creates and maintains library files that contain object modules in Microsoft REL file format. These modules are produced by Digital Research's relocatable macro-assembler program, RMAC, or any other language translator that pruduces modules in Microsoft REL file format. You can use LINK-80 to link the object modules contained in a library to other object files. LINK-80 automatically selects from the library only those modules needed by the program being linked, and then forms an executable file with a filetype of COM. ///2Options I The INDEX option creates an indexed library file of type .IRL. LINK-80 searches faster on indexed libraries than on non-indexed libraries. M The MODULE option displays module names. P The PUBLICS option displays module names and the public variables for the new library file. D The DUMP option displays the contents of object modules in ASCII form. ///2Modifiers Use modifiers in the command line to instruct LIB to delete, replace, or select modules in a library file. Angle brackets enclose the modules to be deleted or replaced. Parentheses enclose the modules to be selected. LIB Modifiers Delete Replace If module name and filename are the same this shorthand can be used: Select (modFIRST-modLAST,mod1,mod2,...,modN) ///2Examples A>LIB TEST4[P] Displays all modules and publics in TEST4.REL. A>LIB TEST5[P]=FILE1,FILE2 Creates TEST5.REL from FILE1.REL and FILE2.REL and displays all modules and publics in TEST5.REL. A>LIB TEST=TEST1(MOD1,MOD4),TEST2(C1-C4,C6) Creates a library file TEST.REL from modules in two source files. TEST1.REL contributes MOD1 and MOD4. LIB extracts modules C1, C4, and all the modules located between them, as well as module C6 from TEST2.REL. A>LIB FILE2=FILE3 Creates FILE2.REL from FILE3.REL, omitting MODA which is a module in FILE3.REL. A>LIB FILE6=FILE5 Creates FILE6.REL from FILE5.REL, FILEB.REL replaces MODA. A>LIB FILE6=FILE5 Module THISNAME is in FILE5.REL. When LIB creates FILE6.REL from FILE5.REL the file THISNAME.REL replaces the similarly named module THISNAME. A>LIB FILE1[I]=B:FILE2(PLOTS,FIND,SEARCH-DISPLAY) Creates FILE1.IRL on drive A from the selected modules PLOTS, FIND, and modules SEARCH through the module DISPLAY, in FILE2.REL on drive B. ///1LINK Syntax: LINK d:{filespec,{[options]}=}filespec{[options]}{,...} Explanation: LINK combines relocatable object modules such as those produced by RMAC and PL/I-80 into a .COM file ready for execution. Relocatable files can contain external references and publics. Relocatable files can reference modules in library files. LINK searches the library files and includes the referenced modules in the output file. See the CP/M 3 Programmer's Utilities Guide for a complete description of LINK- 80. ///2Options Use LINK option switches to control execution parameters. Link options follow the file specifications and are enclosed within square brackets. Multiple switches are separated by commas. LINK-80 Options A Additional memory; reduces buffer space and writes temporary data to disk B BIOS link in banked CP/M 3 system. 1. Aligns data segment on page boundary. 2. Puts length of code segment in header. 3. Defaults to .SPR filetype. Dhhhh Data origin; sets memory origin for common and data area Gn Go; set start address to label n Lhhhh Load; change default load address of module to hhhh. Default 0100H Mhhhh Memory size; Define free memory requirements for MP/M modules. NL No listing of symbol table at console NR No symbol table file OC Output .COM command file. Default OP Output .PRL page relocatable file for execution under MP/M in relocatable segment OR Output .RSP resident system process file for execution under MP/M OS Output .SPR system page relocatable file for execution under MP/M Phhhh Program origin; changes default program origin address to hhhh. Default is 0100H. Q Lists symbols with leading question mark S Search preceding file as a library $Cd Destination of console messages d can be X (console), Y (printer), or Z (zero output). Default is X. $Id Source of intermediate files; d is disk drive A-P. Default is current drive. $Ld Source of library files; d is disk drive A-P. Default is current drive. $Od Destination of of object file; d can be Z or disk drive A-P. Default is to same drive as first file in the LINK-80 command. $Sd Destination of symbol file; d can be Y or Z or disk drive A-P. Default is to same drive as first file in LINK-80 command. ///2Examples A>LINK b:MYFILE[NR] LINK-80 on drive A uses as input MYFILE.REL on drive B and produces the executable machine code file MYFILE.COM on drive B. The [NR] option specifies no symbol table file. A>LINK m1,m2,m3 LINK-80 combines the separately compiled files m1, m2, and m3, resolves their external references, and produces the executable machine code file m1.COM. A>LINK m=m1,m2,m3 LINK-80 combines the separately compiled files m1, m2, and m3 and produces the executable machine code file m.COM. A>LINK MYFILE,FILE5[s] The [s] option tells LINK-80 to search FILE5 as a library. LINK-80 combines MYFILE.REL with the referenced subroutines contained in FILE5.REL on the default drive A and produces MYFILE.COM on drive A. ///1mac Syntax: MAC filename {$options} Explanation: MAC, the CP/M 3 macro assembler, reads assembly language statements from a file of type .ASM, assembles the statements, and produces three output files with the input filename and filetypes of .HEX, .PRN, and .SYM. Filename.HEX contains INTEL hexadecimal format object code. Filename.PRN contains an annotated source listing that you can print or examine at the console. Filename.SYM contains a sorted list of symbols defined in the program. ///2Examples A>MAC SAMPLE A>MAC SAMPLE $PB AA HB SX ///2options Use options to direct the input and output of MAC. Use a letter with the option to indicate the source and destination drives, and console, printer, or zero output. Valid drive names are A thru O. X, P and Z specify console, printer, and zero output, respectively. Assembly Options That Direct Input/Output A source drive for .ASM file (A-O) H destination drive for .HEX file (A-O, Z) L source drive for macrolibrary .LIB files called by the MACLIB statement. P destination drive for .PRN file (A-O, X, P, Z)  S destination drive for .SYM file Assembly Options That Modify Contents Of Output File +L lists input lines read from macrollibrary .LIB files -L suppresses listing (default) +M lists all macro lines as they are processed during assembly -M suppresses all macro lines as they are read during assembly *M lists only hex generated by macro expansions +Q lists all LOCAL symbols in the symbol list -Q suppresses all LOCAL symbols in the symbol list (default) +S appends symbol file to print file -S suppresses creation of symbol file +1 produces a pass 1 listing for macro debugging in .PRN file -1 suppress listing on pass 1 (default) ///1PATCH Syntax: PATCH filename{.typ} {n} Explanation: The PATCH command displays or installs patch number n to the CP/M 3 system or command files. The patch number n must be between 1 and 32 inclusive. Example: A>PATCH SHOW 2 Patches the SHOW.COM system file with patch number 2. ///1PIP (copy) Syntax: DESTINATION SOURCE PIP d:{Gn} | filespec{[Gn]} = filespec{[o]},... | d:{[o]} Explanation: The file copy program PIP copies files, combines files, and transfers files between disks, printers, consoles, or other devices attached to your computer. The first filespec is the destination. The second filespec is the source. Use two or more source filespecs separated by commas to combine two or more files into one file. [o] is any combination of the available options. The [Gn] option in the destination filespec tells PIP to copy your file to that user number. PIP with no command tail displays an * prompt and awaits your series of commands, entered and processed one line at a time. The source or destination can be any CP/M 3 logical device. ///2Examples COPY A FILE FROM ONE DISK TO ANOTHER A>PIP b:=a:draft.txt  A>PIP b:draft.txt = a: B3>PIP myfile.dat=A:[G9] A9>PIP B:[G3]=myfile.dat COPY A FILE AND RENAME IT A5>PIP newdraft.txt=oldraft.txt C8>PIP b:newdraft.txt=a:oldraft.txt COPY MULTIPLE FILES A>PIP b:=draft.* A>PIP b:=*.* B>PIP b:=c:.*.* C>PIP b:=*.txt[g5] C>PIP a:=*.com[wr] B>PIP a:[g3]=c:*.* COMBINE MULTIPLE FILES A>PIP b:new.dat=file1.dat,file2.dat COPY, RENAME AND PLACE IN USER 1 A>pip newdraft.txt[g1]=oldraft.txt COPY, RENAME AND GET FROM USER 1 A>PIP newdraft.txt=oldraft.txt[g1] COPY TO/FROM LOGICAL DEVICES A>PIP b:funfile.sue=con: A>PIP lst:=con: A>PIP lst:=b:draft.txt[t8] A>PIP prn:=b:draft.txt ///2options PIP OPTIONS A Archive. Copy only files that have been changed since the last copy. C Confirm. PIP prompts for confirmation before each file copy. Dn Delete any characters past column n. E Echo transfer to console. F Filter form-feeds from source data. Gn Get from or go to user n. H Test for valid Hex format. I Ignore :00 Hex data records and test for valid Hex format. K Kill display of filespecs on console. L Translate upper case to lower case. N Number output lines O Object file transfer, ^Z ignored. Pn Set page length to n. (default n=60) Qs^Z Quit copying from source at string s. R Read files that have been set to SYStem. Ss^Z Start copying from the source at the string s. Tn Expand tabs to n spaces. U Translate lower case to upper case. V Verify that data has been written correctly. W Write over Read Only files without console query. Z Zero the parity bit. All options except C,G,K,O,R,V and W force an ASCII file transfer, character by character, terminated by a ^Z. ///1PUT Syntax: PUT CONSOLE {OUTPUT TO} FILE filespec {option} | CONSOLE PUT PRINTER {OUTPUT TO} FILE filespec {option} | PRINTER PUT CONSOLE {OUTPUT TO} CONSOLE PUT PRINTER {OUTPUT TO} PRINTER Explanation: PUT puts console or printer output to a file for the next command entered at the console, until the program terminates. Then console output reverts to the console. Printer output is directed to a file until the program terminates. Then printer output is put back to the printer. PUT with the SYSTEM option directs all subsequent console/printer output to the specified file. This option terminates when you enter the PUT CONSOLE or PUT PRINTER command. ///2Options [ {ECHO | NO ECHO} {FILTER | NO FILTER} | {SYSTEM} ] ECHO specifies that output is echoed to the console. This is the default option when you direct console output to a file. NO ECHO specifies that file output is not echoed to the  console. NO ECHO is the default for the PUT PRINTER command. FILTER specifies filtering of control characters, which means that control characters are translated to printable characters. For example, an ESCape character is translated to ^[. NO FILTER means that PUT does not translate control characters. This is the default option. SYSTEM specifies that system output as well as program output is written to the file specified by filespec. Output is written to the file until a subsequent PUT CONSOLE command redirects console output back to the console. ///2Examples A>PUT CONSOLE OUTPUT TO FILE XOUT [ECHO] Directs console output to file XOUT with the output echoed to the console. A>PUT PRINTER OUTPUT TO FILE XOUT A>MYPROG Directs  the printer output of program MYPROG to file XOUT. The output is not echoed to the printer. A>PUT PRINTER OUTPUT TO FILE XOUT2 [ECHO,SYSTEM] Directs all printer output to file XOUT2 as well as to the printer (with ECHO option), and the PUT is in effect until you enter a PUT PRINTER OUTPUT TO PRINTER command. A>PUT CONSOLE OUTPUT TO CONSOLE Directs console output back to the console. A>PUT PRINTER OUTPUT TO PRINTER Directs printer output back to the printer. ///1RENAME Syntax: RENAME {new-filespec=old-filespec} Explanation: RENAME lets you change the name of a file in the directory of a disk. To change several filenames in one command use the * or ? wildcards in the file specifications. The RENAME command can be abbreviated REN. REN prompts you for input. ///2Examples A>RENAME NEWFILE.BAS=OLDFILE.BAS The file OLDFILE.BAS changes to NEWFILE.BAS on drive A. A>RENAME The system prompts for the filespecs: Enter New Name:X.PRN Enter Old Name:Y.PRN Y .PRN=X .PRN A> File X.PRN is renamed to Y.PRN on drive A. B>REN A:PRINTS.NEW = PRINCE.NEW The file PRINCE.NEW on drive A changes to PRINTS.NEW on drive A. A>RENAME S*.TEX=A*.TEX The above command renames all the files matching A*.TEX to files with filenames S*.TEX. A>REN B:NEWLIST=B:OLDLIST The file OLDLIST changes to NEWLIST on drive B. Since the second drive specifier, B: is implied by the first one, it is unnecessary in this example. The command line above has the same effect as the following: A>REN B:NEWLIST=OLDLIST or A>REN NEWLIST=B:OLDLIST ///1RMAC Syntax: RMAC filespec {$Rd | $Sd | $Pd} Explanation: RMAC, a relocatable macro assembler, assembles .ASM files of into .REL files that you can link to create .COM files. ///2options RMAC options specify the destination of the output files. Replace d with the destination drive letter for the output files. Option d=output option R- drive for REL file (A-O, Z) S- drive for SYM file (A-O, X, P, Z) P- drive for PRN file (A-O, X, P, Z) A-O specifies drive A-O. X means output to the console. P means output to the printer. Z means zero output. ///2Example A>RMAC TEST $PX SB RB Assembles the file TEST.ASM from drive A, sends the listing file (TEST.PRN) to the console, puts the symbol file (TEST.SYM) on drive B and puts the relocatable object file (TEST.REL) on drive B. ///1SAVE Syntax: SAVE Explanation: SAVE copies the contents of memory to a file. To use SAVE, first issue the SAVE command, then run your program which reads a file into memory. Your program exits to the SAVE utility which prompts you for a filespec to which it copies the contents of memory, and the beginning and ending address of the memory to be SAVEd. ///2Example A>SAVE Activates the SAVE utility. Now enter the name of the program which loads a file into memory. A>SID dump.com Next, execute the program. #g0 When the program exits, SAVE intercepts the return to the system and prompts the user for the filespec and the bounds of memory to be SAVEd. SAVE Ver 3.0 Enter file (type RETURN to exit):dump2.com If file DUMP2.COM exists already, the system asks: Delete dump2.com? Y Then the system asks for the bounds of memory to be saved: Beginning hex address: 100 Ending hex address: 400 The contents of memory from 100H (Hexadecimal) to 400H is copied to file DUMP2.COM.  ///1SET Syntax: SET [options] SET d: [options] SET filespec [options] Explanation: SET initiates password protection and time stamping of files. It also sets the file and drive attributes Read-Write, Read-Only, DIR and SYS. It lets you label a disk and password protect the label. To enable time stamping of files, you must first run INITDIR to format the disk directory. ///2Label Syntax: SET {d:} [NAME=labelname.typ] SET [PASSWORD=password] SET [PASSWORD= ///3Examples A>SET [NAME=DISK100] Labels the disk on the default drive as DISK100. A>SET [PASSWORD=SECRET] Assigns SECRET to the disk label. A>SET [PASSWORD= Nullifies the existing password. ///2Passwords SET [PROTECT=ON] SET [PROTECT=OFF] SET filespec [PASSWORD=password] SET filespec [PROTECT=READ] SET filespec [PROTECT=WRITE] SET filespec [PROTECT=DELETE] SET filespec [PROTECT=NONE] SET filespec [attribute-options] ///3Modes Password Protection Modes Mode Protection READ The password is required for reading, copying writing, deleting or renaming the file. WRITE The password is required for writing, deleting or renaming the file. You do not need a password to read the file. DELETE The password is only required for deleting or renaming the file. You do not need a password to read or modify the file. NONE No password exists for the file. If a password password exists, this modifier can be used to delete the password. ///2Attributes RO sets the file attribute to Read-Only. RW sets the file attribute to Read-Write. SYS sets the file attribute to SYS. DIR sets the file attribute to DIR. ARCHIVE=OFF means that the file has not been backed up (archived). ARCHIVE=ON means that the file has been backed up (archived). The Archive attribute can be turned on by SET or by PIP when copying a group of files with the PIP [A] option. SHOW and DIR display the Archive option. F1=ON|OFF turns on or off the user-definable file attribute F1. F2=ON|OFF turns on or off the user-definable file attribute F2. F3=ON|OFF turns on or off the user-definable file attribute F3. F4=ON|OFF turns on or off the user-definable file attribute F4. ///3Examples SET [PROTECT=ON] Turns on password protection for all the files on the disk.  You must turn on password protection before you can assign passwords to files. SET [PROTECT=OFF] Disables password protection for the files on your disk. A>SET MYFILE.TEX [PASSWORD=MYFIL] MYFIL is the password assigned to file MYFILE.TEX. B>SET *.TEX [PASSWORD=SECRET, PROTECT=WRITE] Assigns the password SECRET to all the TEX files on drive B. Each TEX file is given a WRITE protect mode to prevent unauthorized editing. A>SET MYFILE.TEX [RO SYS] Sets MYFILE.TEX to Read-Only and SYStem. ///2Default A>SET [DEFAULT=dd] Instructs the system to use dd as a password if you do not enter a password for a password-protected file. ///2Time-Stamps Syntax: SET [CREATE=ON] SET [ACCESS=ON] SET [UPDATE=ON] Explanation: The above SET commands allow you to keep a record of the time and date of file creation and update, or of the last access and update of your files. ///3Options [CREATE=ON] turns on CREATE time stamps on the disk in the default or specified drive. To record the creation time of a file, the CREATE option must be turned on before the file is created. [ACCESS=ON] turns on ACCESS time stamps on the disk in the default or specified drive. ACCESS and CREATE options are mutually exclusive; only one can be in effect at a time. If you turn on the ACCESS time stamp on a disk that previously had CREATE time stamp, the CREATE time stamp is automatically turned off. [UPDATE=ON] turns on UPDATE time stamps on the disk in the default or specified drive. UPDATE time stamps record the time the file was last modified. ///3Examples A>SET [ACCESS=ON]  A>SET [CREATE=ON,UPDATE=ON] ///2Drives Syntax: SET {d:} [RO] SET {d:} [RW] Example: A>SET B: [RO] Sets drive B to Read-Only. ///1SETDEF Syntax: SETDEF { d: {,d: {,d: {,d:}}}} {[ TEMPORARY = d: ] | [ ORDER = (typ {,typ}) ]} SETDEF [DISPLAY | NO DISPLAY] SETDEF [PAGE | NOPAGE] Explanation: SETDEF allows the user to display or define up to four drives for the program search order, the drive for temporary files, and the file type search order. The SETDEF definitions affect only the loading of programs and/or execution of SUBMIT (SUB) files. SETDEF turns on/off the system Display and Console Page modes. When on, the system displays the location and name of programs loaded or SUBmit files executed, and stops after displaying one full console screen of information. ///2Examples A>SETDEF  Displays current SETDEF parameters. A>SETDEF [TEMPORARY=C:] Sets disk drive C as the drive to be used for temporary files. A>SETDEF C:,* Tells the system to search for a program on drive C, then, if not found, search for it on the default drive. A>SETDEF [ORDER=(SUB,COM)] Instructs the system to search for a SUB file to execute. If no SUB file is found, search for a COM file. A>SETDEF [DISPLAY] Turns on the system display mode. Henceforth, the system displays the name and location of programs loaded or submit files executed. A>SETDEF [NO DISPLAY] Turns off the system Display mode. ///1SHOW Syntax: SHOW {d:}{[SPACE |LABEL |USERS |DIR |DRIVE]} Explanation: The SHOW command displays the following disk drive information: Access mode and the amount of free disk space Disk label Current user number and Number of files for each user number on the disk Number of free directory entries for the disk Drive characteristics ///2Examples A>SHOW A>SHOW [SPACE] Instructs the system to display access mode and amount of space left on logged-in drives. A>SHOW B: Show access mode for drive B and amount of space left on drive B. A>SHOW B:[LABEL] Displays label information for drive B. A>SHOW [USERS] Displays the current user number and all the users on drive A and the corresponding number of files assigned to them. A>SHOW C:[DIR] Displays the number of free directory entries on drive C. A>SHOW [DRIVE] Displays the drive characteristics of drive A. ///1SID Syntax: SID {pgm-filespec} {,sym-filespec} Explanation: The SID symbolic debugger allows you to monitor and test programs developed for the 8080 microprocessor. SID supports real-time breakpoints, fully monitored execution, symbolic disassembly, assembly, and memory display and fill functions. SID can dynamically load SID utility programs to provide traceback and histogram facilities. ///2Commands Command Meaning As (Assemble) Enter assembly language statements s is the start address Cs{b{,d}} (Call) Call to memory location from SID s is the called address b is the value of the BC register pair d is the value of the DE register pair D{W}{s}{,f} (Display) Display memory in hex and ASCII W is a 16-bit word format s is the start address f is the finish address Epgm-filespec (Load) Load program and symbol table {,sym-filespec} for execution E*sym-filespec (Load) Load a symbol table file Fs,f,d (Fill) Fill memory with constant value s is the start address f is the finish address d is an eight-bit data item G{p}{,a{,b}} (Go) Begin Execution p is a start address a is a temporary breakpoint H (Hex) Displays all symbols with addresses in Hex H.a Displays hex, decimal, and ASCII values of a where a is a symbolic expression Ha,b Computes hex sum and difference of a and b where  a and b are symbolic expressions Icommand tail (Input) Input CCP command line L{s}{,f} (List) List 8080 mnemonic instructions s is the start address f is the finish address Ms,h,d (Move) Move Memory Block s is the start address h is the high address of the block d is the destination start address P{p{,c}} (Pass) Pass point set, reset, and display p is a permanent breakpoint address c is initial value of pass counter Rfilespec{,d} (Read) Read Code/Symbols d is an offset to each address S{W}s (Set) Set Memory Values s is address where value is sent W is 16 bit word T{n{,c}} (Trace) Trace Program Execution n is the number of program steps c is the utility entry address. T{W}{n{,c}} (Trace) Trace Without Call W instructs SID not to trace subroutines n is the number of program steps c is the utility entry address U{W}{n{,c}} (Untrace) Monitor Execution without Trace n is the number of program steps c is the utility entry address W instructs SID not to trace subroutines V (Value) Display the value of the next available location in memory  (NEXT), the next location after the largest file read in (MSZE), the current value of the Program counter (PC), and the address of the end of available memory (END) Wfilespec,s,f (Write) Write the contents of a contiguous block of memory to filespec. f is finish address X{f}{r} (Examine) Examine/alter CPU state. f is flag bit C,Z,M,E or I. r is register A,B,D,H,S or P. ///2Examples A>SID CP/M 3 loads SID from drive A into memory. SID displays the # prompt when it is ready to accept commands. A>B:SID SAMPLE.HEX CP/M 3 loads SID and the program file SAMPLE.HEX into memory from drive B. ///2Utilities SID utilities, HIST.UTL and TRACE.UTL are special programs that operate with SID to provide additional debugging facilities. The mechanisms for system initialization, data collection, and data display are described in the CP/M SID User's Guide. The HIST utility creates a histogram (bar graph) showing the relative frequency of execution of code within selected program segments of the test program. The HIST utility allows you to monitor those sections of code that execute most frequently. The TRACE utility obtains a backtrace of the instructions that led to a particular breakpoint address in a program under test. You can collect the addresses of up to 256 instructions between pass points in U or T modes. ///1SUBMIT Syntax: SUBMIT {filespec} {argument} ... {argument} Explanation: The SUBMIT command lets you execute a group (batch) of commands from a SUBmit file (a file with filetype of SUB). ///2Subfile The SUB file can contain the following types of lines: Any valid CP/M 3 command Any valid CP/M 3 command with SUBMIT parameters ($0-$9) Any data input line Any program input line with parameters ($0 to $9) The command line cannot exceed 135 characters. The following lines illustrate the variety of lines which may be entered in a SUB file: DIR DIR *.BAK MAC $1 $$$4 PIP LST:=$1.PRN[T$2 $3 $5] DIR *.ASM PIP SUBMIT A>SUBMIT SUBA A>SUBMIT AA ZZ SZ A>SUBMIT B:START DIR E: ///2PROFILE.SUB Everytime you power up or reset your computer, CP/M 3 looks for a special SUBmit file named PROFILE.SUB to execute. If it does not exist, CP/M 3 resumes normal operation. If the PROFILE.SUB file exists, the system executes the commands in the file. This file is convenient to use if you regularly execute a set of commands before you do your regular session on the computer. ///1TYPE Syntax: TYPE {filespec {[ PAGE | NOPAGE ]}} Explanation: The TYPE command displays the contents of an ASCII character file on your screen. [PAGE] Causes the console listing to be displayed in paged mode; i.e., stop automatically after listing n lines of text, where n normally defaults to 24 lines per page. [NOPAGE] Turns off Console Page Mode and continuously displays a typed file on the screen. ///2Examples A>TYPE MYPROG.PLI Displays the contents of the file MYPROG.PLI on your screen. A>TYPE B:THISFILE [PAGE] Displays the contents of the file THISFILE from drive B on your screen twenty four lines at a time. ///1USER Syntax: USER {number} Explanation: The USER command sets the current user number. The disk directory can be divided into distinct groups according to a "User Number." User numbers range from 0 through 15. ///2Examples A>USER Enter User#:5 5A> The current user number is now 5 on drive A. A>USER 3 3A> This command changes the current User Number to 3. ///1XREF Syntax: XREF {d:} filename {$P} Explanation: XREF provides a cross-reference summary of variable usage in a program. XREF requires the .PRN and .SYM files produced by MAC or RMAC for input to the program. The SYM and PRN files must have the same filename as the filename in the XREF command tail. XREF outputs a file of type .XRF. Examples: A>XREF b:MYPROG A>XREF b:MYPROG $P DUMP VERSION 3.0 DUMP.COM COPYRIGHT 1982, DIGITAL RESEARCH151282654321Ҋ ҏ>.Ï_ Ҧ0Ï7Ï͜Ü\2|::Iͺ>2 :2f>2>û>!6 #=!~a1{1 w##:Ƃ2*6 2fl:<2!G\:>2 *|ͫ}*ͫ>:Ï:> ͏> Ï> Ï:_:<2>2ͺ >Ï*}o|*!""ͮͷ͇*"͛~ͫ#*}#"%"*̀*}K|K*ͺ-m121=2#\:}mͺ2>o:  /\ͺ 1gn~ͻ͙D.:ܰg+":>2 CP/M 3 DUMP - Version 3.0$ ERROR: File Not Found $ Enter Password: $ Password Error$ ERROR: No Records Exist$ Press RETURN to continue $,ͳ*!9"5R/͈>]!p-! .>4$q/*RQ͈>]!w-!<.>-4$q/*Rs͈>]!|-!i.>;4$q/*R͈>]!-!.>;4$q/*R͈>]!-!.>;4$q/*R͈>]!-!/>4$q/*̈́!-͌!5G$/*!5/5x#!6/5x#*5%!k,>V)[RX͈>]!-!7/> 4$q!32$q/*R}͈>]!-!@/>*4$q/*̈́!-͌!3]$/*!j/3>#µ!3j/> ̀$!32$G3!,M!$%!k,R͈>]!-!s/> 4$q!32$q/*R͈>]!-!|/>;4$q/*R@͈>]!-!/>:4$q/*Rb͈>]!-!/>(4$q/*R͈>]!-!0>74$q/*̈́+#}24/*:4og |>24R͈>]!-!P0>:4$q/*R͈>]!-!0>;4$q/*R͈>]!-!0>B4$q/*1̈́.+#}24/*RS͈>]!-!1>>4$q/*Ru͈>]!-!E1>=4$q/*R͈>]!-!1>:4$q/*R͈>]!-!1>)4$q/*R͈>]!-!1>>4$q/*̈́+#}24/*!45555R͈>]!-!#2>>4$q/*R?͈>]!-!a2><4$q/*Ra͈>]!-!2>>4$q/*R͈>]!-!2>4$q/*R͈>]!-!2>4$q/*R͈>]!.!3>4$q/*R͈>]!.!33>4$q/*R ͈>]! .!R3><4$q/*R-͈>]!.!3>4$q/*RO͈>]!.!3>4$q/*Rq͈>]!.!3>$4$q/*̈́+#}24+#}!5w/*!k,͍ogͫ!3͒/*!4:4!4w:4:4!4w!4:4!4w!k,L͍ogͫ!3/*!k,%͍>_ogͫ!3͒/*:4:5I:4!4w:5!4w!k,Lj͍>_ogͫ!3/*!k,c͟ ",«„BZ!9ʣʚ~#_Ê> _š&9x2,y º2,"5͑<ͽ *5Px2,=$A AG:,=ڿ$x2,"5͑!,F6!,~#x=2,ͽ >E_:,+,-/2,i s   | i .i s | i e EC i + i  - i s ҿ$Gi s 7 xGGGi ? GyOR ¿$i C :,d | U y2,p ~#z0 0!,_w!,~ҙ 4_!,sÿ$$2,G:,<2,=¿$:,¿$ :, !,5!,4ʿ$:,G:, !,͠ >2," _!,5 :,!,<_!,>w w>+ !,~5>.Z G:,x0A :,> !,~T 5!,4!,5-2,x!,^4{s s !,~0>0"5*,~2 5:,ʑ  ʑ Ϳ$: 52 5>V ! 5£ 5~/o :, >9 >*  *: 5!9q#= >2 5<2 525Z 2 5: 5_: 5 *,~25:59< : 5, : 52 5 , :5=O: 5o g :5O: 5g ZF *‘ O: 5U y2 5: 5y : 50y :5O:5*s > g Ë : 52 5:5O: 5g :5 % :5< :5L ¿ :5O:5o g :52 5:5O> g : 5 : 50 :5O> g  :5=O:5o g :5O: 5g : 52 5 :5O: 5g :5Vc : 5Q : 52 5 Q :5=O: 5o g : 5] <2 5 :5O:5- ˜ : 5ƒ :5Bʍ Ï : 5*ʏ > g :5O:5Cʦ D:,¹ > g g :5C g >Rg g >Bg : 5*5!54! 54S+-$G: 5Ox*,##  <>S >+ >- >C >D :/,.B! 5N*,# ȾC G: 5_: 5O x*,# Ⱦ^ !i#9w$G:,ˆ x+-ʜ Sʖ x+ʜ -Sʙ >+>->  ¸ x= G'ß :, !,xʟ Vß ß ʟ > _ x >Vß 'ß x>ʟ =Tx!,<T':,GT:,> _<>25!5f:,{!,{> ̓> ̓̓25!5 ~ y<>§= ç5OoE####W-60#E>ew#.exP 8GZ+y=x=0 60$w %+6.$y=x= x<}!9f f e ew# ʿ$MH !9 x+wmxOo>g9x fʿ$ ʋ ʋw#È=<<_K ¸oWE##-K0ڿ$ 0_ҿ$ ¿$K0w# xP 8GZ(+wxP-xP¿$8o>g9##fʿ$ P P ڿ$͂z!5&>  “~͂Ç ¥xŸ>~ ͮ~x!,î:,:,͂>2#5!!5f!$5&T͕^͠^#V- T#F&#N&#^#r+s#^#V++r+s~5͕5^͠q#pO͕4~ r_͠s#r#s#r#q!x&, Format Overflow*,-&,!E5ɯ25=25"5!52525!5*5s#r5~# *5~!,"6*6"6!6 !6CB!,"6*6" 6! 6 &!6CB*6##~B!,"6!"6!6&^#V"6*6" 6!,""6!5"&6!6&"*6!(6l^#V",6*,6".6!.6͘ ɯÏ>Ï>2:6";6"=6`i"?6!9"A6!06ë6 ~# °*6~*6~!6>4$G3!!!,!,"6!6ͦ!6>4$G3!R.!!"-!"-"6!6ͦ1*6"6!6ͦ!6*6^#V!,s#r*6^#V!,s#r*6^#Vʹ#|*,ʹ#|Gv!6*6^#V}*,}Gʙ!6:,*6^#V}*,}Gʽ!6:,*6^#V}!6^#V"6!,"6*6"6!6&"6"6!66~# :,c*6~#*6s#r!"6*6^#V"6*6*6͸$`*6+*6#"6!6 *6#"65Ñ!,"6*6"6*6"6!6ͯ!,"6!"6!6&"6"6!6ß6~# ¤:,:AJ!6^#V}*6w!,"6*6"6*6"6!6͌J!"6A*6#"6:6*6*6w*6*6^#V+͸$|+:6 4:͂26:6!,"6!"7!6&27!7f^#V" 7:,u:,* 7* 75! 76: 7 ʛÍ|!7 * 7* 75!,6!7 :,* 76ç͂2 7: 7!,"7!"7!7&!,6#6! 76 :, !7 ^#V"#7!,")7*#7"'7!%7f@!,"/7!"37!+7&=:,*#7~ Z*,#",*#7~ n!,6#6:,*#7~ *,#",!,6#6*#7~ *,#",!,#!,6#6*,*,#͸$|!,"97!"=7!57&!,6"?7!9"A7!?7! 9^I7~# *I7^#V|*I7*K7 ͺ#*K7 nbP*K7 !N7>͍$j!C7>4$*I7#!N7G$*I7~#–*I7^#V)))|*I76P#6*I7~#*I7^#V))|*I76#6*I76<#6*I76#6*I76#6*I76#6*I7 6*I7^#V}#}2M7*I7^#V}'!M744*I7^#V}=>2M7*I7^#V}h*K7~#h*K76#6*I7"f7*K7"b7*K7"d7!\7C*I7^#V|¥*I7"p7!"r7!h7&^#V^#V̓*:,!&2,O!,6 +~#w!, s#r!,4;*, I/O Stack Overflow!9"t7!t7E!9$>B%~T]O ;+~0>x^#V"x7*x76ͧVo!,"7!"7!|7&hxy2{7:{7+:z7> b›+á>+Vq_çq:{7y+y_h2+!,6hq_%:z7!,w+͂2z7*x7~<:z7*x7#*x7~ogw*x74:z7:z7 :z7,:z7 ?:z7':,¢!,"7!7S!76í:,27!,6:7 ڼ*,#",:7 !,6#6:7"9!";!*9!^#V#"9!^#V"?!"C!||~yaA =.:;<>[]y *=!  7C $7 1e o&))))\xH  ʂ#w ‚7=*C!#ʱAұG7 :ʶ 6ûp47+O# #*6?w7 7#6 .,7 O  ,#*6?w7 37 #6 ,%#65*C!##^ ~?L# ExCON CON RDR PUN LST M!g ~=$7 1Ұ\ʗl$!~ 7!T  7#øx=Gõ7>ɯ*C!+^#V#{#z6#6 r+s!7F#~E!76P  ͙* ͙*!7^r+s6 #6 !74^N*C!|u}=bqmmO>~ʁʁ>N*C!|­Ym=ʚy¦͙*é>~ʹ=ʹ>q2H!*C!/"E!{*E!*C!#:H!O#s#r r+s{+!B!4*E!+>|:+}o~2A!"=!:A!Iv|G:A!I*?!pv4#6*!:A!ڗ4*9!++"9!à}+ʤ:}|24!"2!4"7!1z%|I##"C!6*?!s#r͑µ { ʵ *C!:A!w6 *7!"5!< :A!µ <ʵ !"5!*C!(2!w# ,*C!~#!*C!A+>*!*?!w#w*!*!Oq*!*!N͈*!*C!~" 4#4#4*!~§f"*!>*!*!~>*!*C!~>*!k"*!*C!!*~!/2G!*C!| (^#V{z zx 2B!zC :G!7 Oq> N͈# *C!|x *~x =!B!u :G!r n wU y>*!|}*!~> *!<*!*!|¯ *?!w=*!*C!X+*?!^#V6+6++&*!*!>*!"N#F#~q#p#w>*!*!>*!*~!!= !>!*C!" s#r#w=*!*;! }!76 4>27*7!4#4#4~#N#F#y#x#:7*7!!:7ʣ!x!b!:7~G~#~O?!#~!! p! y! qO>G!$q#p#6m""7"727x27I!27Y!!7~5#͈!ʳ"=":7"*7<³"7"*7:7O*7:7"y O":7b!*7w# "i!:7#*7!x!#!*7"7Â":7/g.>Gx|g}o#G!9!xʇ# ʂ#+T#$%¿$gÂ#-I#0$:$0T])ڿ$)ڿ$ڿ$)ڿ$o|gڿ$9#{ʗ#$%¿$}Ø#|ڿ$z-̰$o&9}ȇî#)ô#yw# ú#F#O #### # # > ##F#"7x4$$*7!9G_>WObk++.$~+&$y~#/g{ozg!$&$$$$$ Conversion*C8| %^#V"C8###^#V#N#Fx % #~$&*C8|7%^#V#N#F!9yx7%"C8&%:,T%!9!,{z#T%/*7%!]%!9:J-O!K- {#z!J-5_%#}OD*A8~Ҽ%##~#foƒ%!%&%%%%% Free Space Exhausted##^#V#{_zWڅ&{_zWڈ%4z%{ &##^#V# ##s#rs#r#s#r+++~sw#r####}*A8}|&*{z&+F+N+V+5^{څ&{z҅&}|҅&{_&_&i`~sw#r##q#p i`N#F#^#V~҅&q4#p+i`##s#r&,&, FREE Request Out-of-Range$ Free Space Overwrite$GK&Mbk&ͳ(FͲ(NͲ(N#FͲ(^#V"l-y2k-x&i&)0''x'>3'!,{#z*,*,/*xyx?'͗'_!(^#V'͑'>(͓'y'>)͓'|t'͆'[(|ʀ'͆''(+>,͓'͑'> _Ù* ͙* Ù*0:ړ'Ó'͡'á'͑'|ͯ'}ï' 'd' '''x͡'N #~͓''!('*;8!9{_z!({!( 5(3(͑'>#͓'*;8>=^#V#ͻ'5(L(>: V(>?͓'!(''>=͓'^#V|‹(}ڂ(.)):)'#F>AG(> #¦(~ >.L(~ L(=×(^#V# File: Traceback:((() ))%)5) ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADG!J-~ڂ)g), Condition Stack Overflow$4Ox!7 w#s#r#s#r!9!K- s#r!J-N!7 +++++»)#{)#z)++~û)++!J-5!~# ))!J-N!7 +++++*#~#'*+{"*#z'*++~*#^#V=!,~̓*5:,_!,^#V",,.~# U**,))))), )| j**,|}*n-",:,*,,w# **n-{ Ҫ* ®*!#"n-*Copyright (c) 1980 Digital Research, v1.3 !"?8"=8"C82J-2,*F8 +";8q#p##}o"A8*}o|%+,,+w+w+r+s4w#w#s#r<2E8++*?8s#r"?8*=8#"=8*=8DM!?8x~+#~+++F+Nq#p*=8+"=8++=£+!+~O~#~G!>w!/x+y+ >O6# + ʲ+=ɯ ~#fo++a+!=8~#,*?8X++5,,G,  Insufficient Memory$ Invalid I/O List End of Execution$\, 8 8SWEEPSYSINSYSPRINT SWINIT41 - December 19, 1983Initialization program for SWEEP version 4.1.This program will patch configuration dependent parameters into a copy of SWEEP.COM version 4.1. It does not copy thefile, so make sure you have a backup copy before preceding.Ready to proceed? (Y/N) : yYNo file Enter the name of the file to be patched: SWEEP.COMPatching SWEEP can transfer files between different CP/M user areas.If you want to limit the user areas it can access, enter avalue less than 15 to the next question.Enter maximum user area (0-15)[-1 to leave unchanged]: SWEEP will ignore all requests for drives greater than themaximum number of drives in your system (typically 2 or 4).Enter the number of drives in your system [-1 to leave unchanged]:The P command will print a screen full of text and then pause.The number of lines printed will be 4 less than the number ofline on your terminal. It is set now for a 24 line screen.You may enter -1 to leave this unchanged.Enter actual number of lines on your terminal [typically 24] :Enter decimal values of 2 characters to clear terminal screen.Enter 32,32 if you do not know the values, or enter -1,-1 toleave this unchanged. It is used only at sign-on, and wheneverthe function menu is displayed.The values that I know are: H-19/H-89/Z-19 27,69 Hazeltine 1500 126,28 C-Itoh CIT-101 12,32 (set up to clear on formfeed) NorthStar Advantage 4,32 KayPro 26,32Enter the values for your terminal: 5555,5#5,5-5,.505 Invalid Format Item55 Invalid Key65655565&6*6:6;6=6?6A6 Stream/Record Sequen/Direct Input/Output Keyed Access P< $con66,{6C6Q6_6m66666666666666677 77 7 77 7)77 737!7"7=7.datM7N7f7G7H7p7r7v7w7777H81n$'CP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321!`i^#V#~#foͽ{¡y#wG:xA##6?)@w){#{s333333.;;33,;;#wD{_#6 sO O ڹ.:;=,/[]<>a{Ҷ_#  ý Copyright (c) 1982, Digital Research 11/02/82 @ @NULL0LOADER0SCB []=, :;<>%\|"()/#!@&+-*? COMHEXRSX1###~ERROR: FILE: File not found.No directory space.Invalid file name.First submitted file must be a COM file.Duplicate input RSX...Duplicate RSX in header. Replacing old by new.Invalid RSX type.No more RSX files to be used.Error on copy.There are not enough available RSX slots.Disk read.Disk write.Total file size exceeds 64K.COM file found and NULL option.No header or RSXs to strip.Invalid FCB.Media change occurred.Disk I/O error.Invalid drive error.Invalid SCB offsetMissing right parenthesis.Missing SCB value.Missing left parenthesis.Unrecognized option.No modifier for this option.OPTION: This file was not used.GENCOM completed.Requires CP/M 3 or higher.1n$1n$" %* %|<Ó* %}0HÓ::$]Ç:$jZÇ:$wÇ:$҄ZÇer ͺv!n$q*n$& ͤ!p$p+q*o$~*o$Nͤ*o$#"o$  ͤ ͤ!r$p+q*q$DMͺ !t$p+q*s$!v$p+q*u$!x$p+q*w$!}$p+q*|$"y$*y$}2$|2{$!~$q*~$&,2$!$p+q*$!$p+q*$!$p+q*$!$p+q*$!$p+q*$!$q*$&-!;6:$!; *;&') N#F:2$!;4%:2$%ͻ2$!;6>!;S*;&/% 6!;48!/%6 !;6#6:; *;&*(~ HҞ*;&*(*;&/% w!;4#4`*;&/% 6.!;6 :; *;&*(~ H!;4#N*( *;&/% w!;4î!;p+q3r*;DMͺz/%ͺ!;p+q*;DM *y$}2;|2;:; F  :; T   :;x :;j $ :;x 4 !;q!;6*;&1 :/• >*;&1 :;© :;!;4 !;r+s+p+q+p+q !;6. *;~ *;~2;*;My 2$!;6:$ L :;  *;My 2$ ! . :;2$͌ :;2$2;*;~2;!;6*;~2;. *;~L ç *;N! *;*; =2;!;› !;6!;6:;!;ژ L :;ڑ 6 !;4z Þ 6 *;6͌ *;:;w:$$͂#+s#r :$ *$#"$ :L2$:;2;O*; ~2;*;&*;:/( !;4*;:;w*;&*;:; *;&*;~2; *;6*$~2; :;2;!;6*$#~2;!;4N*; :0f !;6| *;&*;:;| !;6!;4N*$ ~2;*;&*$~2;*;My 2$:$:$H:$H:$H !;4N*$ ~2;*;My 2$ä :;2$$͂##+s#r*$Ny 2$!L *$#"$ :$$#+";!;6:$!;P *;Nͤ*;#";!;41 !;p+qr*;DMͺ!;r+s+p+q*;DM͗ *;DM͗ *;~w*;*;~!;p+q*;>9Ұ *;~7w÷ *;~0w!;r+s+q+q*;:;~!;H IQ !;60!$6!;6*$#"$;+ͱ :;" rͺ :;2 !%6? :;? !%6:$H :$Q :$ˆ :;} rͺ;+ͱ È aͧ !%6:$‘ :$š :$£ *$#";*;Ny 2$ *$DM*;i *:&: w*$##"$ *$;i *:&: w*;"$!:4*$Ny 2$\Q *$#"$*$Ny 2$:$1*$#"$*$Ny 2$!L:$IY!M:$YwQ *$#"$*$Ny 2$!N*$#"$9*$0͸ *$#";*;Ny 2$!L:$£!M:$°6*$0͸ F*;0͸ *$DM*;i *:&v: w*$##"$2*$;i *:&v: w*;#"$Q !;p+q*;DM*O>0*;"( !;p+q*;DM:O>R*;"( !;p+q*;DMJ2$>!$y*;"( *( >Š*(DMͻO>ҟ*("(!;p+q*$"%*;"%*$"'%̀"$$#*'"( !;q!;6>!;*;&)))=% *;& *;& w!;4!;6 >!;F:;2;*;&; 6*;& 6!;4!;6> !;ڍ:;2;*;&% *;&; w*;&*(*;& w!;4K;ͫ2$>!$ҥ*'"(!;p+q!;6 >!!;*;&*;6!;4±!̓#+s#r!<5&*<$T :{$]*(DMZ!#:Q! <#:Q2<* !<ړ*<&* (6!<4w* (" (!<6*<&') ^#V"(x*(DM͋2$!)"<*<*<&$) N#Fq#px*(DM͋2$:)!)6*<&9 :)w!)6!)6!)6%͛2$!"$$*$*$"$!<4:$GT*<$#ã!!<ڸ*<&: 6!<4!\"<$w#s#r!n"<$w#s#r.:[ -!<6>!:H!<6::=!!!%(z:$/H!"$$#͞%U!$6̓!"<6:"<#ڀ*"<&( 6:"<<2"<_!"<6:$!"<ک*"<&$) >w#6:"<<2"<…!(" (* (:Ow:%/* ( :Ow* ( 6* ( :$w!"$:%:O2)x* (DM%͛2$>!$!%"( ):%/i:$R%͛2$*("(!"$$fx%͛2$!"$o!"$*$*$"$/!##"$*$DM*#w#6!)" (%͛2$* (##"*<**!(<ڋ*&<&)))9 *(<& *'<&)))9 *(<& w:(<<2(!(!%< *%<& * (*$<&)))9 *%<& w:%<<2%<!)" (!$6!,<6:$!,<*,<&$ 6!-<6:$!-<ں*-<&') ^#V"(!.<6>!.<ڑ*.<& * (*.<& *(ʇð:.<<2.!$:$_!)" (!,<6:$!,<r:,<<2,<* (#^#V"0<:$5~ *( 6x*(DM͋2$!0<#"$%͛2$*$DMi*0<"$/>>!)" (* ( ~2$ʃ҃* ( :$* ( w*("(* ( >Ҭf %͛2$:$~!"$$!"$$#*$"$*(DM1͞%U̓!)" (*("(!"$:%N:%/!$N!)6 *( 6*(DM͛2$:$H !"$:%1:$d~õ:$ʚ x*(DMZ:$ʚ:{$$͂#+s#r*(DMZy:{$$͂#+s#r!$#+s#r*(DMU:$/1*(DM1x*(DMͦ*(DM*(DM͋2$.)$ -:% !)6:O2) *( 6*(DM͛2$:$1 *(DM1!"$!3<6>$#_"*(DM͠*$~[h*( ~25<>!5<!6<6!4<6:5<=!4<*6<&*(*3<&)))=% *4<& w:6<<26<:4<<24<†*3<&% :5!%**(DM*O>S:%/P o:%o*( >o :% :$<2$23<!*3<&ͮ#% *3<&') q#p!4<6:$=!4< !5<6> !5<:3<=o&!ͮ#% *5<& !*3<&ͮ#% *5<& w:5<<25<³:3<=23<:4<<24<£R"*'"(X">!$҉!!$6!3<6:$!3< !*3<&') ^#V"(X#/b 'Ͳ"!*3<&% >x *3!$Ҙ Ͳ"!:3<<24<:$!4<!*4<&') ^#V"'!6<6>!6< *6<&*(*6<&*' :6<<26<¿ Ͳ":4<<24< Ÿ :3<<23<0 !$:$ !9!3<6!$:3<҄!*3<&$ ~24<:$=2$:4<26<:$!6!$ҹ! !O:) ":$!!$6!:%!%!!$6!!$6:)"!$6.;) -!2":$"!$62":%!%,"!$62" :"!$6:$/^"%ͦ%ͻ2$*(~2%%S!*3<&ͮ#% "(*3<&') q#p!4<6> !4<ڱ"!*3<&ͮ#% *4<& 6:4<<24<…" *$&$ :3 !6<#*5<&*7<*6<&*( w:5<<25<:6<<26<"!: !6:5<<25<:6<<26<:#>i`N#Fog_ogDM!>))덑o|gҨ# =–#DM!>))ҽ# =µ#^#V) #^#V|g}o #O{ozgi`N#Fogo&og_{_z#WTEMP $$$ GET 1âCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321SYSIN $$$Getting console input from $INPUT~FROM~FILE~STATUS~CONDITIONAL~FALSE~TRUE~CONSOLE~CONIN:~AUXILIARY~AUXIN:~END~CON:~AUX:~NOT~ECHO~FILTERED~SYSTEM~PROGRAM #).6=GNRW\`enu|[]=, ./;Error at the '^': $Error at end of line: $Invalid option or modifier$End of line expected$Invalid file specification$Invalid command$Invalid delimiter$File not found$Enter Password: $file: $SUBMIT of $GET from $ stopped$console$GET from $ stopped$console$Requires CP/M 3.0$CP/M 3 GET Version 3.0 $Get console input from a file $Enter file: $11N}0N|HG+\Yr'2ͅ !6 *& 6+!6:!D*& NZ *& w!4!":2"ͱ!6*& ~ w!4a!"+~2*& "!6!6%*: : H:HI%*:%*:%*:!6*DMͱF: : H:HÀ Fͻ : T :: H: Hғ: †̀ Ó%*:¨%*:½%*:*DMͱ:: H: H̀ ͻ v!q*&!p+q* !s+p+q*:w#6* *#"N#Fy  !p+q*!p+q*!q*&-!q:2!61!s+q:2!6*&"1m!p+q*m!p+q*<!q!6*&: >*&: :":!4!r+s+p+q+p+q: Di !6ͯ*~ʙ*~2*M2!6::ڃÓ*M2nãͯO:2 :22*~2!6*~2ͯ*~)*N! ** =2!!6!6:!!:ø!4 ø*6 *:w:+s#ri :S*#"X!6:2O* ~2*&*:9ʩ!4*:w*&*:˜*&*~2j*6*~2Y:2!6*#~2!4N* :!6*&*:!6!4N* ~2*&*~2*M2:> !HV !4N* ~2*M2% :2#+s#r*N2!E„ *#"i   !s+q+p+q:=2ʺ *:w*#"Ý !q!6*""͐2:( !6(*&*&!s*&!s:C ::H, *+"C :C :++s#rͅ !6:!i *"*M !4K *M :Ҁ FÆ Y:Aґ ͅ *M! ^#Vp      ͅ !q!6:! *N*#"!4 ͅ !6:!V *!C !6^H  *#"!4 ͅ !q:at :{t : :OZ 2:ͅ ͅ l ͐ !6>! x 2 *&l :w:  : Ò : : Ò :=2O!l 6 ë : !4¢ W2!p+q*~A *~@O:!6> !ڄ : \ .*&*~ } *&*>O!4F ">ʰ *++"~Ұ "lp̀\`"̀*} *|2 : ͆ ͅ lp\`" *"ͻ ͐0 ͅ \ ͯ!p+q!6+6>!W *M[ :O[ !47 :!q*&*>*& z !6: ʍ ͻ "> "*DM) ҽ  *DM ͅ Í #: ͻ ">7*DM) 7"+*DM 6ͅ ">[?p͐0hͅ *DM !q"!+s#r:ʨ:=+s#r*DM!p+q*"!\"b"ͻ >ͅ *#"*~[ͻ :: H'%*:„:?ͻ %*:\yÁ:lyÁ:|yÁͻ $!6:£!6%*::Һ!6ÿ!6$::!6!6$::!6!6$::!6!6$ͻ ͅ !p+q*~ ~ HR*#"1*~^>>!`i^#V#~#fo͟]ƒywôG:±xAa{Ҙ_ ʫ ʫß`i~#~2#~2#~2*| \!\~2.n~`>26!.t~:s}>26!N#F#*"^q#Vp"N#F##"^q#Vp"4!7 !6ë7 \\m>_ 1:~# yɍWARNING: Cannot redirect from BIOS $ERROR: Auxiliary device redirection not implemented $ERROR: Insufficient Memory $""SYSIN SUB_og_ogDM!>))덑o|g =_og_{ozgi`N#Fogo&og~FGET :<***.n6.t6 LL!p:~y !6 <ʊ~"x!F#fh!:~!«!>w~:!5*.~w:; :~!9"1W:.~ !5< W@w.tEy!h g ={  ͩ* . +6.w   *ͩ2*.6#6*.~w#~=~# Ʌo$x(\!54  !F6ȷx(\>^\@_: N#x€ʹ> ʹ ʹŸ*.>wm#wM~xµmp> \ 8>""SYSIN SUB hhhhhhhhhhhhhh 151282 COPYR '82 DRI gggggggggggggggggggggggggggggg"D! BH!!$@ !HA@  H!@  @BP!DIRLBL yd'* !9"1>"#2#:Og}**Ip2~w2i#1#":RͶ :O~!ʫ:<2Ž:"2"x2*# O:ļ:<:G>O*# :<t tIw!/>!/>!*6 #:_#:*Y" Y" Y" >*Y"#####Y"##Y"Y"Yz2*Kg"ɯ22!"*DM6:O* 2~ ~ †:<~:2>2:<** "_?:<2>!/:<}:2* ~b W6 y2> # vwm>2>!/ N *~O²+—">2>!/*:< "~G # p *~w#  : *8*:*8yO:O*}O= ~ w#P^#V#ɷ{ozg |g}oh:<͉̉O<OBKBK$'-*!*^#V"DD  $$HD@" @@ $B $$H$H$HH$$! HD$D$D@AD HD$!A" ɀ3PUT 1$CP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321WARNING: $OUTPUT~TO~FILE~CONSOLE~CONOUT:~AUXILIARY~AUXOUT:~END~CON:~AUX:~LIST~LST:~PRINTER~INPUT )15:?DIQVNOT~ECHO~RAW~FILTERED~SYSTEM~PROGRAM $[]=, ./;Error at the '^': $Error at end of line: $Invalid option or modifier$End of line expected$Invalid file specification$Invalid command$Invalid delimiter$File is Read Only$ (Y/N)? $PUT aborted$Enter Password: $Putting $list$console$ input to $ output to $file: $ Do you want another file$File already exists; Delete it$PUT completed for $printer$console$Requires CP/M 3.0$CP/M 3 PUT Version 3.0 $Put console output to a file$ Enter file: $1$1$n}0n|H 7/ң777G2*͵ !6 **& 6/[!&6:*!&ڋ*&& N *&& w:&<2&`!"':*2)".͉!&6*&& ~ :&<2&è!"'+~2)*&& ".!06!260Z:0:0H:0 Hғ!860Z:090Z:0N0Z:0a*.DM͉Ð:0:0H:0 Hҋ)Ð :0 :0 H:0 H@!86#6!,6+60Z:00Z:00Z:0*.DM͉:0 :0 H:0 H8)= :0:0H:0 H:2 r)0Z:0—0Zÿ:0¿!86#6#6!,6+60Z:00Z:0*.DM͉:0:0H:0 H) v!Hq*H&!Jp+q*I !Ms+p+q*K:Mw#6*K *K#"KN#Fy  !Op+q*N!Qp+q*P!Sp+q*R!Tq*T&-!Uq:U24!5641!Ws+q:V24!56*W&"641!Yp+q"*X<m![p+q*Zm!\q!]6*]& >>*]& :\R:]!]4,!cr+s+p+q+p+q:2 t͙ !j6 *b~*b~2j*gM#22!n6:2 :nڳ*gM#22Þ :d21= :d212m*b~2k!n6*b~2j *b~Y *bN! *`*` =2l!mM !n6!e6:m!eJ :nC !e4, P *b6= *b:kw:1.r+s#r͙ :2ʃ *.#".È !26:j2oO*` ~2f*f&*^: !o4*b:ow*f&*^:g *o&*`~2fÚ *b6*.~2g͉ :f2h!d6*.#~2g!h4N*^ :3 !n6- *h&*^:g- !n6!d4N*. ~2g*d&*.~2g*gM#22:2> !2H҆ !d4N*. ~2g*gM#22U :d21.r#+s#r*.N#22!)´ *.#".Ù   !ss+q+p+q:s=2s *p:rw*p#"p !tq!}6*'"y"{2%:%( !%6(*)&*%&!ws*)&́!xs:ts :t:tH\ *.+".s :ts :1.͵++s#r͵ !u6:w!uڙ *y"{*%M !u4{ *xM :}Ұ *7ö =7:%A ͵ *tM! ^#VT7 o7 7 7 7 7 !~q!v6:~!vD *yN*y#"y!v4% ͵ !v6:~!vڃ *{.͸p !}6^u  *{#"{!v4L ͵ !p+q*DM772͵ :y:YH 7!q:a :{ : :.O 2:͵ ͵ 7@ !6>!څ 2 4 *&@ :w: = :H  :n :[  :=2O!@ 6  :~ !4 7:8 7ã 7:8´ 7ú 7!p+q0 ͵ &7*~ *~@O:!6> !,: .*&*~ %*&*N!4 ,">͵r*++"~[+"r7͆ *DMͻ -͇ Ͱ@͠:@ ʍ:b2b\͐"*}*|27H͇ \̀"*}*|2 : ͵ Ͱ\̀"Ͱ:@ :b2b\͐"Ͱ͆ \ͻ 8̈́:2 :2HF ,">͞u+"g7*DMͻ ͵ F͆ :8‰z7Ï7:2:2 H҈!60Z:0!60Z:0:0H :0:!96!96:01:,!:61!:6:0M:H!:6M!:6:0i:d!;6i!;6:0…:Ҁ!;6Å!;6Ø!p+q*"<!\"><7"ͭ¼*<". .@l ->͵-*#".*~[ ͘-!p+q*~ *~ H'*#"*~3>>!`i^#V#~#fot2XywÉG:†xAa{m_ ʀ ʀt`i~•2F2G#~2H#~2I#~2N*| !\~=w4_P 12O'"&###~2M:G 9!!<1>27>2"> 2#!H:FH!I1>27>t2">2#2H*&.~@!"J<V<W^#V###*#*~~*&.~‡>28í.h"5~ʗ>286!:"o".~>286!N#F*#*#",^q#Vp"*#N#F*#"3^q#Vp"14!&L1 \\:8«X !86>_ 1/:~# y1p   %co %c WARNING: Cannot redirect from BIOS $ ERROR: Auxiliary device redirection not implemented $ ERROR: Insufficient Memory $ ERROR: You cannot PUT INPUT to a file when using GET or SUBMIT. $z K   %coSYSOUT $$$_ogDM!>))덑o|gҘ =†_{ozgi`N#Fogo&og~4PUT :ʜ4Y:O>52:[y<jbj%j:!F#fh!~}#$ 151282 COPYR '82 DRI ggggggggggggggggggggggggggggggggBD$H$$I! D $DA HH$@ H!@D! A (("1 üCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321 ERROR: Not renamed, $ ERROR: Drive read only.$Invalid wildcard.$ERROR: No such file to rename.$ Disk I/O.$Currently Opened.$Bad password.$file already exists$Enter password: $, delete (Y/N)?$ERROR: Invalid File. $Requires CP/M 3.0$Enter New Name: $ ERROR: Incorrect file specification. $Enter Old Name: $1 1 q"6 *6 }0*6 |H\7!" !\" " ͫ  " B ̈́ ùn7(G29 >!9 E7!6 *9 & ": )7*: DM(G29 )*: 6 *: #": *: 6=:9 : 2 #+s#r*: 6 !" !\" "  " B ʹ̈́  N o :\: ! :\o * ~2 J  . v! q* &! p+q*  ! s+p+q* : w*  * #" ~  ! p+q* ! p+q* ! p+q* ! p+q* ! q* &-! q: 2 ! 6 1! q: 2 ! 6 1! r+s+q: 2 ! 6* #s#r 1 ' '! s+q+p+q: =2 ^* : w* #" A! q: y7: 7: ¥7: ³7: 7: 7: 7: 7! p+q! 6> ! -: .'* &* >O'! 4! p+q.* * DM -E ͳ* DMͣ" * }‹* |2 : ҇* M_: >! q: aڨ: {Ҩ: : )#7  4! 6>! CO͎2 * & : w: )C: õ: ): õ: =2 O! 6 : 9: <2 h2 ! 6+6> ! ڠ* & ~?–* &* ~?ʑ77Ö! 6: <2 R: ! p+q* : w!! 6> !! *! & ~?*! &* *! &*  w:! <2! ¶ͳ z2# _:# M :# o&"$ E"& G"( I"* ", ". "0 *$ DMͤ*$ DM.2" Ÿ* DMN 47O͎Yœ* DM͓*$ DM.2" ß:" ½*$ DMN ͬ*$ DM.2" :" *$ DMN )* DM='*$ DMͳ*& E*( G** I*, *. *0 !(  Y D .*(  -< ͊2# !3 p+q7*2 DM '*" M_7D7* #" ! "  " .  -¢ !5 p+q*4 ~ *4 ~ H *4 #"4 ñ *4 ~ >>!`i^#V#~#fo"  yˆ w7 G:4 xAڈ ҈ a{ _È  . . " _og_{ozgi`N#Fog_{_z#W#ɀSAVE SAVE y<1!~ʋ;:* ͩ".~>2`*.h~`>26!*#~2#~2r+s-* 1!~ʀ#_6|ʉ#6?#6 #6$\<8Y‰\>!|w\:V"8: V "**Ͳ\h}}€!*:2\<T}Q**#s#r>2:Ÿ*.h6 1>2::>2}2|2!"  !!\( yŽw=G::xAڎҎa{!_Î 4 4(!~> L5*~#"a_:f7ñ8 ʱ0vñ@7ñ҇0ÒGڐ7ñ7o:O& ʦ))))ÛzW{_f: CP/M 3 SAVE - Version 3.0$ Enter file (type RETURN to exit): $ Delete $ Beginning hex address $ Ending hex address $ $ ERROR: Bad close.$ ERROR: No directory space.$ ERROR: No disk space.$@$ $H I$I!$HI"$$"$ I ! A  !B B@@ $ABH$!"D$"BÞCOPYRIGHT (C) 1980 DIGITAL RESEARCH YARELIRLFATAL ERROR$l$l1 ͺ!"!6͓*~=:!ͣ !6:/::!ͣ !6:!!/ͣ < ͧv! s+p+q> ͍"̀ځ*>! q** DM* 1q>> ͍+s#r=>!r+s+q+q+p+q> ͍"!6> !*&*6!4¦:! *w* * * DM -* *s#r*"̀*":*. Tu -". u -2:~ l:\.~ -Ql.~ -dup. du -zT!"u*M: *M: !6>}!: :<2¨#u{u>!͘,T>͍)*DMTT"*%DMu{̀+s#r;'*DMu{̀N*"'ͅ>v":2T2u:ҙu͟!6>!ڙ: :<2:ҦT͟:!/Ҵ:͍ >>l͍ >!͘:/H*!*"'*DMT{T:lͪ : >>l?: &#*DMu{:2:2u͉Tp*>@O>*>@*w*~!s+q*&%*& *&%*2& "*DMT*+"*DM3T"!p+q!\#s>!s:+&:2̀&ͣ :22ͧ!s+q+q*M*͍"̀̀Hm*DM̀%*& "!6|*#:w*##:w* :w!6!6\2!:!H÷:!!6l+6**͍!6\* ^#V""!3"$"!o2ͣ :< J.< -B3!6#6!6*#s#r!6\wl!6!6!6\ʒÇ.  -›!&6:!&:&=O! N,:&<2&©**pH*#N*##* ^N0Jͭ1 Gͤͣ  <_1D**M*0G!'q:w**M0*"!6}!6:'҄Çͭ1Ҙ**͇H* >͘ҿ:'/**M*0} <_1K!6#6#6:  . - 12(:( T}L :2:2!:y :2̀y ͣ :22!""*"!6!6: *")*"*K: *: !6#6l: *)"ï !6l+6!6͔ :  G. - !"!\"!"*^#V" $!^q> !^] :^0O,h :^ AO,!_q:_OD :_OD !ap+q>`Mi !`\Mi !cp+q*bDMG!ep+q!d\+J<!hr+s+q*f&4 N,*gDM͵ DM̈́  ,*3&+) >>l!C9 < ,*3&+) ^#V*3M  ,!iq*# :iw*#"!͛o #*DMu{!"*!*"D*!s*D!s*D!s!6*!*"D*!s*D!s*D!s!6*M: *M: *M: O`iN928 "92;!j6:;!jU :j=O!< Hq!j40 *8M*9 !k6:;!kڇ :k=O!< N,!k4g  ,!lq*' :lw*#"!͛ '*DMT{*!*"!"!ns+q: ͪ :n!O> !>O:n2n#O!mT!w& 8 !w:o2% & *M͍ !6!6:n!2oK :m!o>O!mC!pq*pM !rp+q*q}OY *q|OY *8M *9DMg *;M !s6:;!sھ :s=O!< NY !s4ž !t6:;!t :t=O!< N: !t4 : 2u: :* *uMi  ,*3&+) N#F+q#p!C6:? *uMY !vq "w:R:ҕ *vM*w *3&+) N#F+q#p*3&+) >>l2C:Ҵ *vM *wDMg !yq:y/:yH >!y# :y::::y8*;< -*:;2:@:<!C6*y&>) N#FG>!ykb :y/:yH҅V :y ¦:823*3&+) *9s#r:y!"+"-"/"1!36<::y<@ Gb :!:y<b :I:y/ *yM :y#~ >!y/͐ :yI:I 7:[:y[Ϳ o >á2zO>Ҏ*zM@:zá2z*zM͵:z,=>)-,),>,=*#"!|p+q*{~**{ >*{#"{>ʹ*~>~,H !6)!\""!o)ͣ !6!6ʹͼi**& w:<2cͣ ʹ7*~-w!6*~)…!6:ғͣ !6*"*~)*:º!6***̈́:*:!6!6lͼͣ Þ!6*~>ʤ*#"}!6*:3ͣ *~=X!6*#"}:X!"}**Ҁ* *}s#r*>wÑ**}̈́ͼҡͣ ʹ*~]*~D!6*~I!6*~M!6*~P!6ͣ ʹè!q!6!6*"ʹ!""!o8ͣ >͍J!"ͼҍ*~(c͆Ç*~_[],()!q: > :a/>z!/H:_2:!p+q*^#V"*##^#V"!6 !6+6:W: Q!6l<*6+: m+_Ax!!6Aڙ:ڐ!l+}::*~:Hھ!*#~A<*wO>!*&*6 '!6:.+A: !l+: !*&*\:<2O* N2!6> !i*& :b>!4F>:<2O* :w:!4~ʶ 6*#"*{zڶ!"ͧ*!~2xG:2G:p ˆx!4~ 6*#"*{z!"*!~2xG:2G x{_ C#5>ɯ$!p+q!6> !ڌ*&*~ x*&*N,:….,!4Q!r+s+p+q*DMG*DMFEͣ !s+p+q+p+q+p+qWͣ !">͍+s#r!oM*DM`:$*DM͐O>!>͍ ͣ !9*DM͠O>9ͣ *"*#"`!r+s+p+q+p+q***DMͮ*!r+s+p+q+p+q***DMͮ!p+q*DMp!6 > !*&*6!4²*DMͰͣ !p+q * 6 * 6*DM̀*͍!p+q*DM+ͣ !q*& , ,!p+q*  !p+q*!p+q*!p+q*! p+q*! p+q* ! p+q* !p+q`*!p+q*_{ozg_ogDM!>))덑o|g = DM!>))4 =,_{ozg~ D^#V) N~ U^#V|g}o `_{ozgO{ozgi`N#Fogo&og_{_z#WLIB 1.1 $REL $$$IRL $$$INDEX ERROR$NO MODULE: $SYNTAX ERROR$APDCentry symbol $select common block $program name $request $error 4 $define common size $chain external $define entry point $error 8 $external + offset $define data size $set program counter $chain address $define program size $end program $end file$FTiw(5ABORTED$DISK READ ERROR$DISK WRITE ERROR$CANNOT CLOSE$DIRECTORY FULL$NO FILE: $$4!y~=W!x# ~#bxE {8~#o}oA'.`28!Ip+q*HT!J6J T ` T!p+q*T> >/Ҥ×!p+q*DM͛:̀ ̀:2:!!K:*&L Ǹ!4!K6 ͐uëYALPSID'TCELLOC$LAITINI!%cCOPYRIGHT (C) 1977 DIGITAL RESEARCH {{ { {zb{b{*9 {_zW}l&))o> \> \\ß*"!" ͟#͟Prںºx"x#"̀ں͇"1!6# y͟!h͟$h͟'h*̀`*̀`*1̀I ?! ^#Vr+sz`>>!@^#V#̀{ k͇#"/<͟h2**̀`i~#!~6͟*1Þ6͔h*1^#V#Þ͔{> \*/̀>*\ ERROR - FORM IS X,Y TYPE HISTOGRAM BOUNDS HISTOGRAM: ADDR RELATIVE FREQUENCY, LARGEST VALUE = .INITIAL = .COLLECT = .DISPLAY = .... !6 ` !6 ` !6 ` *&T` !6 ` !6 ` !60 ` *&T` !6* ` !6* ` !6* ` *& @AA I$DBD $I$BHA"DH!""@!y~=W!x# ~#bxE {8~#o}oA'.`28!Ip+q*HT!J6J T ` T!p+q*T> >/Ҥ×!p+q*DM͛:̀ ̀:2:!!K:*&L Ǹ!4!K6 ͐uÇYALPSID'TCELLOC$LAITINI!ÓCOPYRIGHT (C) 1977, DIGITAL RESEARCH g gzd{ *9 Wl> W> W*"!"^l!]kl$]xl']::>2l!6!"!~4*s,r,"!~Ol!F2y* "*xT-V-^yA!~4x]> WO" Q>2y*"  INITIAL = COLLECT = DISPLAY = "-A" IN EFFECT, ADDRESS BACKTRACE READY FOR SYMBOLIC BACKTRACE BACKTRACE:%B 2!4þ *%"%:/ ͩ!4¡ :$ !4!"%!q: O !{4>!O :!{O :2*'M!8 ^#V%!t ͫ *%B :w*%#"%` Ø Ø Ø Ø Ø ͩ` *M6` !6 ` !6 ` !6 ` *&T` !6 ` !6 ` !60 ` *& @@ I$B$!!D!$"H@* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z z/**************************************************************** SWEE versio 4.1 Decembe 19 1983 b Rober Fisher DePau University 24 S Wabash Chicago Illinoi 60604 Release t th Publi Domai b th author. ***************************************************************** SWEE i utilit progra fo maintainin fil directories an transferrin file betwee drive an use area unde CP/M2.2 SWEE wil no ru unde CP/ 1.4 bu i wil ru unde MP/ an ( think CP/ 3.0 Prio t runnin SWEEP yo ma wan t ru SWINIT4 t se i u fo you system Se note a th end. ***************************************************************** Invokin SWEE an movin abou th directory. ---------------------------------------------- Whe SWEE i invoked yo wil se men o 'commands an th firs entr i th directory Yo wil als b give th tota spac (i k occupie b th file an th remainin spac o$ th disk SWEE als report th curren use are i th prompt o a asteris i yo hav selecte al use areas. Typin 'space o 'return move yo forwar i th directory typin (o b move yo backward Th director i circular s typin spacea th en o th director move yo t th beginning ( lin i skipped.) Whe yo firs invok SWEEP yo ca specif driv an star tin plac i th directory Th use are ca b specifie a secon parameter. SWEEP B:FOO.COM wil begi wit driv B logge in an th curso o th firs entr i th director whic i > FOO.CO i alphabetica order I th lates version bot fil nam an fil typ ar recog nized. SWEEP B:FOO.COM 8 wil lo i use are 8 Selectin use are wil caus al use area t b "swept a once. I th startin fil contain wil car symbol ( o ?) the i wil b treate a director wil car specification Onl thos file i th selecte use are whic matc th specifica tio wil b handled. A an time yo ca recove th men o function b typin questio mar (?). Simpl typin 'x exit th program. Note that all characters can be entered in upper or lower case. Functions that act on one file. _______________________________ C This allows you to copy the file to the drive and user area of your choice. You will be prompted for the drive and user area. Just enter 'b3', say, to transfer the file to drive B: user area 3. If you omit the user area, the current user area of the file is used. Any file of the same name in the target area is first erased, an exception being when you are transferring to the current drive and user area. In the latter case, the transferred file is copied with its named changed by putting a $ in the last letter of the file type. If an existing file in the target area that must be erased is marked read-only (R/O), then the copy is simply not made. You will be told. You may use the delete function to delete the file, and then retry the copy. As an option, sweep will perform a CRC verification of the copy. When you are prompted for the drive and user, add a 'v' or 'V' to request verification. Thus specifying: b3 v will copy the file to drive b:, user area 3, with verification. See below for a description of the verification method. BUG: CP/M does not allow two files of the same name to be open on the same drive, even in different user areas. Thus, when transferring between user areas on the same drive, the target file is first named with the $ convention and then renamed. This can result in an extra file being erased. If there is too little room on the target drive, the transfer is aborted and the directory entry is erased. Any previous file of the same name in the target area is also erased.(Sorry.) D The current file is deleted. You will be asked if you really want it erased. If the file is read-only (R/O), then you will be given a second chance to back out. P Exactly like V below, except that after 20 lines have been typed SWEEP pauses until you type a character (any character). If you type two characters quickly, you will return to the main program. R The current file is renamed to the name you specify. Lower case will be converted to upper case, but other 'illegal' characters are not trapped. It is quite possible to give names to files that CP/M won't recognize. (You can also change them back again later, however, so no permanent harm is done.) Responding with "*" to the prompt will put you in the batch wildcard renaming mode. See below. If the file is read-only, you will be asked if you still want it renamed. It will no longer be read-only after renaming. V The current file is displayed at the terminal. ^S will stop the display until any other key is typed. Otherwise, any keypress will abort. Beginning with version 4.1, the V and P commands will suppress all control characters except control-i,j,l, and m. This is for the convenience of users with terminals that act up on certain control characters when they type wordstar files. See the P command above. T Tag a file for later transfer. (See below.) After being tagged, the file will be marked with an asterisk,'*'. The total of all tagged files is displayed both in units they occupy on the current disk and in units they would occupy on a single-density disk with a 1k block size. U Undo the effect of T (and take away the '*' or '#'). Commands that act on many files. -------------------------------- A Retags all the files currently marked with '#'. This allows you to repeat the transfers on another disk. Useful when the same batch of files must be sent to several disks. E The E command erases all untagged files% or all tagged files. You will be asked whether you want to erase the tagged files or the untagged files. You must specify either T (or t) or U (or u) or the operation will be aborted. You will then be asked whether you want to be prompted or not. If you ask to be prompted, you will be asked for a Y or N on each file. Otherwise, the files will be deleted. Be very careful with this one. You can wipe out an entire directory very quickly. You can abort this operation by responding A to the prompt, or typing any key in the unprompted mode (if you are quick enough). The TAGGED option is useful after a mass transfer. Use the A command to retag all the transferred files, then use the E command to erase them. The UNTAGGED option is useful if you want to clean up a disk or user area, but retain a few key files. Just tag the files you want to retain and use the E command to erase the others. M Mass transfer of all tagged files to a selected drive and user area. This is the main reason for the program. If the target drive fills, the operation is aborted, with the untransferred files remaining tagged. This function invokes the copy function used by C, so everything said above applies here. If any key is typed while files are being transferred, the transfer is aborted after the current file. The remaining files remain tagged. After transferring a tagged file, the tag is changed to '#' so you can tell what has been sent. This is for display only; the file is otherwise considered untagged (but see the A command). The '#' can be removed with the U command, if desired. If no user area is specified, or if "*" is specified, the current user area of the file is used. You may request verification on mass transfers just as in the single file copy. Just follow the drive and user specification with a space and a 'v' or 'V'. R * Batch rename. You will be prompted for an "Old name:" and a "New name:". In each case you may give any "ambiguous file name" in response. The logged-in directory, as currently displayed, is searched for matches with "Old name", and the files are renamed, if possible, by the formula specified in "New name". A '?' in "New name" means keep that character of the current file name, an * is equivalent to filling out the remainder of the field (filename or filetype) with "?"'s. Any other character replaces the corresponding character in the current file name. When the substitutions are done, embedded spaces are removed. You will be asked to approve each substitution before it is actually made. Old name: SWEEP???.* New name: TEST ???.* These responses would result in SWEEP.COM being renamed TEST.COM, and SWEEP30.PLI being renamed TEST30.PLI. W Wild card tag. You will be asked for a file specification. All files matching this specification will be tagged. Other commands. --------------- B Move to previous file. Moves to last file if you are currently on the first file. F Allows you to move quickly to a particular file in the directory. You will be asked for a file name, and the first file greater than or equal to the file name entered will become the current file. This works just like the starting file name at startup or in the L command, except that wild card specifications aren't given special treatment. L Login new drive and user area. If the user area is ommitted, the current user area is used. You can specify a starting place in the directory. Responding 'b3 foo' will put you in user area 3 of drive B:, beginning at the first file >= FOO in alphabetical order. Selecting "*" for user area, logs in all user areas at once. If the starting file is a wild card specification, it is instead used to select the files to be used. Thus: L New drive (and user area): B1:*.PLI will log you into drive b, user area 1, and select only PLI source files. S Calculates space remaining on a drive. This now works in MP/M (and CP/M 3.0 ???) systems. X Exit to CP/M. ? Redisplay menu of commands. Tags used in SWEEP. ------------------- * Marks a tagged file. See M and E commands. # Marks a previously tagged file that has been transferred by the M command. It is logically untagged, and the # can be removed with the U command if it bothers you. Files marked with '#' can be retagged with the A command. Unmarked files are untagged. Remarks. -------- Whenever a drive is asked for (and on start-up), the disk system is reset. This is to prevent a disk from being "read only" under CP/M, and to allow you to repeat operations on fresh disks (e.g., finish a mass transfer after a disk fills by inserting a second disk). It also means that you should be free to switch density and/or number of sides of a disk in% a particular drive. This, however, depends on how well your BIOS is written. It does mean, though, that a system disk must be present in drive A:. There is no logical upper limit to directory size, nor to the size of a file that may be transferred. The directory size is limited by available memory, though, as certain information must be kept on each entry. You should be able to use well over 1500 entries in a 64k system. Figure on 20 bytes per entry starting at 28k and running up to within 1k, or so,of the BDOS. Because of limitations on integer variables in PL/I (at present), available space on the drive will be rounded modulo 32768k. This should present few problems. If the total size of all files is larger than 32767k, then the program will probably crash. (This can only be a problem under CP/M 3.0.) The sort is done with quicksort, so it will not deteriorate too badly with large directories. (On the order of n*log(n).) The rest of the log-on stuff is either fixed - displaying the menu - or linear in the directory size - reading the directory and compressing it after sorting. On my system, a directory of about 99 entries takes 3.5 seconds to come up. Of this, about 1.1 seconds is used in the sort with the rest split about evenly between the operations before the sort and after the sort. (Disk access is not figured here, since my system uses the Intersystems CACHE BIOS with track buffering. Once the directory is read, it doesn't need to be read again. Using the standard system raises the total time to 4.9 seconds, the difference being the physical disk accesses.) File transfers make use of as much memory as possible to buffer data. The V command buffers only 4k (or what's available, if 4k is too much for either your file or your RAM). This allows large files to be sampled quickly, without reading in the full file. Invalid or empty answers to any prompt will result in no action being taken. Exceptions are specifying a drive you do not have (see patch points below) or an illegal file name under the R command. It is legal to include the colon when specifying a drive and user area. Thus responding "B3:" is equivalent to just "B3", and "B3:FOO.COM" is the same as "B3 FOO.COM". On the copy command, specifying a V in place of the user area results in a copy to the current user area with verification. That is, all the following responses are equivalent: "B V", "B:V", "B: V", and "BV" when verification is an option. Copy verification is done by computing a CRC checksum while writing the file. SWEEP then reads the copied file back computing it's checksum. The two checksum's are compared and you are told if they don't match. The algorithm used is based on the standard CRC-CCITT polynomial: x^16 + x^12 + x^5 + 1. The algorithm is similar to the one in D. Barker's corrections to CRCK and is table driven. It is coded in 8080 assembler for speed, and can be found in the file SWEEPIO.ASM. The second crc computation is done with a buffer that is offset 3 bytes from the original buffer. This is to help catch problems induced by memory errors. Any CRC errors which appear but are not flagged by CP/M as bad disk sectors are probably due to bad memory. The CRC verification takes approximately 2.5 times as long as the straight copy. Patch points. ------------- Several parameters should be set for your system. If you do not have a PL/I compiler, they can be set with DDT or by running the SWINIT41 program. See below. number_of_drives Should be set to the number of drives in your system. This will eliminate SELECT errors. Patch the byte at location 107H. It is currently set to 4. max_user Set this if you want less than the maximum number (0-15). Patch the byte at location 10CH. page_lines Number of lines printed between pauses in the P command. It is set to 20 now, which seems reasonable for a 24 line terminal. Patch at location 112H. clearstring SWEEP will clear the screen at sign-on and whenever it displays the menu. At present, the clear screen string is set to form-feed,space which should be harmless enough if you choose not to alter it. If you want to patch it for your terminal, patch the two bytes at location 60C2H (now set to 0C 20). Sample patching with DDT: ------------------------- (Underlined characters are typed by the user, the rest is from DDT.) A> DDT SWEEP41.COM invoke DDT ------------- DDT VERS 2.2 NEXT PC 6F00 0100 -S107 we'll patch number of drives ---- 0107 04 10 we type the 10 = 10H =16 -- 0108 32 . . means stop patching - -^C control-C to exit DDT __ A> SAVE 110 SWEEP.COM save 110 pages (11g01=6EH) Beginning with version 4.0, I am supplying a customization program to make these changes. Here is the header from that &program: /**************************************************************************** * SWINIT41.PLI - December 19, 1983 * * This is a crude program to setup the variable parameters of SWEEP 4.1 * * It is provided as a convenience to those who are not familier with DDT or * * who can otherwise not patch SWEEP in the usual way. To use it you must: * * 1. Have the current version of SWEEP41 (December 19, 1983) * * 2. Be prepared to answer the prompts very carefully. No checking is * * done for unreasonable answers. * * You will be asked to enter * * a. The largest user area you will be using (0-15). * * b. The number of drives you will be using (1-16). * * c. The number of lines on your terminal screen. * * d. The decimal values of 2 ascii characters to clear the * * screen of your terminal. * * Good default answers are: a. 15, b. 4, c. 24, d. 32,32 (spaces) * * Since this program alters the SWEEP.COM file itself, you should have * * a backup version available in case you blow it. * ****************************************************************************/ ÀCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH251082654321!9"k1G \!m!w# š!v6H#6E#6X!e6C#6O#6M<<&:g.".g"?S:2n!`w #4o"c*e{ozg"hj:]@*c"\y!5C*^N{zb+"^*^*`*h"!j4&"h"y:b<5*kG!gwxS0  *cN,*cN{zҽ{,*c*e{ozg ~*c#"c> :[ >  X N*c>:> !:q#G*eDM*h ERROR: $DISK READ$LOAD ADDRESS LESS THAN 100$DISK WRITE$LOAD ADDRESS $ERROR ADDRESS $INVALID HEX DIGIT$CHECKSUM ERROR $FIRST ADDRESS $LAST ADDRESS $BYTES READ $RECORDS WRITTEN $CANNOT OPEN SOURCE FILE$DIRECTORY FULL$CANNOT CLOSE FILE$HEXCOM VERS: 3.00 $1CP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321TEMPORARY~ORDER~PAGE~DISPLAY~NO~COM~SUB~NOPAGE~NODISPLAY~ON~OFF  $(/9!6#6#6#6#6!"+~2*& "*& ~[”*#" â' :¢ V v!q*&!p+q*  !q:2!61!s+q:2!6&*&"1!q!6*& ->*& :A:!4!r+s+p+q+p+q!6*~ʯ*~2*M2!6:¦:ڙé*M2Äùe:2#:22*~2!6*~2*~?*N! ** =2!3!6!6:!0:)!46*6#*:w:+s#r:i*#"n!6:2O* ~2*&*:ʿ!4*:w*&*:®*&*~2À*6*~2o:2!6*#~2!4N* :!6*&*:!6!4N* ~2*&*~2*M2:> !Hl!4N* ~2*M2;:2#+s#r*N2!š*#" ͯ ͯ!q!6*""2:(!6(*&*&!s*&!s::H*+":++s#r͛!6:!D*"*M!4&*M:[Ϳa2Ϳ:Al͛*M! ^#VIͿiͿ{ͿͿͿͿͿͿ Ϳ|͛!q!6:! *Nͯ*#"!4͛!6:!R *? !6^ͯD  ͯ*#"!4 ͛L2M2N2O2P2,22:2:2:W ͛Ϳ!6*& ~:HW :1Oͯ*M! ^#V1Ϳ 4Ϳ 7Ϳ :Ϳ =Ϳ*& ~8 RͿM *& >@Oͯ:ͯ͛!4ø :Ҙ ͛ZͿ*M! ^#VrͿØ vͿØ ͿØ w : ͛Ϳ>!Ҷ !6: Ϳ :@Oͯ:ͯ: ͛Ϳ: Ϳ Ϳ:# ͛Ϳ: Ϳ# Ϳ͛!6!6!6!6>!V *& 6!4; !6:: H I>!Ҏ ͦ:› ͦ!6>! *& :=¿ ͦ!4  :=*& w!4[ !6>! :L*& ^O!4 :: Hұ!6!6I*M! ^#Vͦî!6:] ͦI:w ͦ:=_Pî!6!6#6:ʞ ͦ*~ ~ Hҿ *#"Þ *~( !6*#"I::H ͦ: !6:2: :/H!0 ͦ: !҇ I::Hj ͦ:2:!҇ ͦ2:¢ :2ê :2:½ :2 :2*: : ͦ *#" : ͦ*~]~H!6 î!6!6:WI: W: R!6Wͦ*,*-î!6!6:¨I: ʨ: £!6èͦ2::2:2*îI::Hͦ:!6,-<!62:2*îͦîͦî!6,-î!62:2*îͦîͦîC K l?GOe !p+q*~ ~ H*#"ø*~>>_ogDM!>))덑o|g =o&og~1}CP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321 Copyright (c) 1982, Digital Research 10/27/82Show 3.1ERROR: INPUT: OPTION: DRIVE: Unrecognized Option.Unrecognized drive.Requires CP/M 3 or higher.No directory label exists on drive Unrecognized input.A:0B:0C:0D:0E:0F:0G:0H:0I:0J:0K:0L:0M:0N:0O:0P:SPACE0DIRECTORY0DRIVES0LABEL0USERS0PAGE0NOPAGE !$'*-/#(.[]=, :;<>%\|"()/#!@&+-*?;Zx0NSun$Mon$Tue$Wed$Thu$Fri$Sat$?????????????Directory Passwds Stamp StampLabel Reqd Update Label Created Label Updated------------ ------- ------ ------ -------------- --------------Press RETURN to continue.: Drive Characteristics128 Byte Record CapacityKilobyte Drive Capacity32 Byte Directory EntriesChecked Directory EntriesRecords / Directory EntryRecords / BlockSectors / TrackReserved TracksBytes / Physical Record, Space: Number of time/date directory entries: Number of free directory entries: Active User : Active Files: # of files : Label for drive AccessCreate on off on on off on off 1}1}{o&" >0 ͑*!& ~ :!<2!*!& " 2 h2 !!6>!!Y*!& 6:!<2!;6f!$ 6(2! 6D~!% 6ͱ!!6>!!*!& ~2 ʺ*!& N*!Mz:!<2!†v! q* & ! p+q* ~* N* #"     :$ e! 4~<<+~He  MC]! 6  ! p+q * DM }! q* &:~ҝ:}¦:}`O! : ½2}Õ! p+q* ~?2~* 2}͕2}͕! p+q* !Z 6Z 1!Z 6,Z 1!Z 6]Z 1|"  ! q* &.! q* &e! p+qi* DM! q: <2 O* : w! p+q* ~$* : <2 O* w* #" ! q: 0Oͦ! q:' O: O! q* M:ͦ! q* &! ͆K* &! ͆M! q* M& /ͦ: e : s ! 6: <2 O* ~2 : ” \ Æ : 0 ! s+q! 6͆ ͕ ڶ ͕  : : : H2  : 0! w \ ö ! : #~! H : ! s+q+q͆ ! : 4 \ * M* ͞ ! s+q: 2 : * &) >;H{ : =: ! q* &! ͆))))* &͈ } ͞ =2 : 2! !!6 * & ~2!/*! 2 /cN 2 : !!: H * &) : N_!mͥq* & NC * M* C _* #q#p͞ O * w:; O * w* ~¬ : :  :; 2!* 6 :; O * w!!s+q:!!!! 6N!m"!:  !n"!!  ! +s#r! 4 ! 6 >! P : =2 2 ! !6* &) : !m! M  * ~2!*  ~2!*  ~2!* #^#V" +!͆! !s ! !6: >;! HҮ ! !6 * &) : !m ! s+4* ~ : !O! DMͽ ͦ* MK * MK * M&  ͦ*!M *!M * ~& *!M! !p+q!" !* !"  " * ~~He Q ! 6 Þ * ~~Hқ ! 6* ~2 ͢ * &* " !Þ !-!p+q!!6.*,!DM! -¶ !' !.!6> !.! *.!& ! N:.!<2.! \* ##N!ͥ"/!!1!q:1!2 Oͅ !3!p+q!2!* >2!y#M͹!7!s+q+p+q:7!=27!f*4!:6!w*4!#"4!I!!s+p+q+p+q>!*!*!͆!!s*!*!͆"!*!! ͆"!>!º:!:!!!6:!0Ov!!p+q!'"!!!6>!8*!*!͆:!=2!O!8! s*!*!͆"!*!! ͆"!!!6#6:!=2!}*!&8! ~0O~:!:!Hz,~A!!q*!&8! ~¤:!Ҥ:!ʤ*!M!!6!!r+s+p+q!!6#6>!!0*!&*!*!&*!~!!#N*! w*!&*!^! ͆!!s#N*! ^! ͆*!&*!q:!<2!!!p+q8!<?!<*!N#F*!##~2!!!6>!!ڙ:!҇*!&w!) N#F?!ͱ:!2!:!<2!d8!?!ͱ9!!p+q*!##~2!*!##~*!##w*!*!q#p*!#:!*!#w!!p+q*!#* ##N͹* *!##* ##NH*!##w*!* ##N*!q#p: AO !!r+s+p+q*!/!a*!q#p*!ڒ*!*!q#p*!N#F*!q#pc!!q!"!"!!!6!"!* !:!*!DM2!:!/!!H*!"!ҫ*!!"! i8*!##6* N#F*!q#p,ͦE* N#F^ * ^#V))DMy* ~* N!!+s#r*!DM  1:!!p+q*!##6*!*!s#r!!p+q!'"!!!6>!ʚ*!*!͆{2!*!*!͆"!*!! ͆"!>!!!+~Hҗ!!6:!0O5>0 ҹ" ͓DM$* Mqͦ1k!!p+q 8R*!}OW͛: : 2!"!S"!!!6>!ʈ*!}g: /X!!:!U*!DMg*!M*!DM!!+s#r!!+s#r#~!X *X g 8)*V g !!6>!! *!&& 6*!&6 ) >w#6:!<2!!"X 5!"!:}:}2!*!& ~2!:!!*!& "!*!##"!*!#"!:!2!:!2!O!& 6>!!Ґ*!* ~Ҥ*!~*!&6 ) N#F*!&6 ) q#p*X #"X %* & 6>!X * N#F`i"X * N#FPY*X *!"V 8QhOg 8`* & ~/\!!6>!!ڐ*!&& ~҆*!&g:!<2!a 8o!!6>!!*!&& ~*!&6 ) N#Fg:!<2!¡͘* & ~/͘!!qD>!! :}0:}`O! ~ * * Ḿ2!>!!/:}o&"!~i8 Eiji:!@@†Ìi B:% /:!րHҽ:!@@:!:! *! DM͟ *! DM͟ >͑: AO !!6> !!x:! ].*!&*!>O:!<2!G!!q!!6*!& :•>*!& :!©:!:!<2!Â!!r+s+p+q)!!6?:!:!2!*!My2 !!6: ]:!/ *!My2 ?:!2 ͩ:!:!2 : 2!:!2!!!6:!2!?:!Jñ*!& *!*!&*!=2!!!:!£!!6!!6:!!!ڠ]:!/Җ6:!<2!~æ6!!6ͩ>:!2!:  l+s#r): * #" :2 :!:!2!*!&*!~2!*!&*!:9:!<2!:!2!*!&*!:!(*!&*!~2!!!6* ~2!:!2!!!6* #~2!:!<2!*!&*!:}!!6Ó*!&*!:!ʓ!!6:!<2!*!&* ~2!*!&* ~2!*!My2 : : H: H: H:!<2!*!&* ~2!*!My2 :!2 :  l#+s#r* Ny2 !D* #" ):  +"!!!6: !!y*!N*!#"!:!<2!W!!q*!&ͥ^ *V& ~ʞ*!&ͥ^ *U& ~ʾ1*!&ͥ^ *T& ~*!&ͥ^ *W& ~#*!&ͥ^ *S& ~: :: 2 * & : w* #" * Ny2 : ZÔ!: q!: qÔ* &ͥ^ *V& 6* #" >* &ͥ^ *V& ~* &ͥ^ *V& 6ʹ2 !X: !$ 6!Y: !$ 6'* &ͥ^ : =O 6-͑iE!: :>!: G>Zʹ2!_Þ:!=2 * & : w* &ͥ^ *V& 6!: ʝ* +" ͑iE! 6* Ny2 !* &ͥ^ *V& 6! 6!: ;2 -: K-!: !!: !L! 6* #" !: K* Ny2 !K?͑iEi`N#Fog_og_ogDM!>))덑o|gҟ =DM!>))Ҵ =¬~ º~ ^#V) ^#V|g}o _{ozgO{ozgi`N#Fogo&og_{_z#W  F!M!T![!b!i!p!ASUB 1xCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321Invalid file name $Error On Line $Enter Password: $ERROR: No 'SUB' File Found$CP/M 3 SUBMIT Version 3.0 $Enter File to SUBMIT: $SUBDisk Write Error$Random Read $.$Invalid ASCII Character$Parameter Error$ERROR: Directory Full$Requires CP/M 3.0 $11G"*}0|HҤbP2IK 1">d*++"~"!\. v!q*&!p+q* !s+p+q*:w#6* *#"N#Fy !p+q*!p+q*2 !p+q*!p+q*!p+q*!p+q*!!p+q*2 !p+q*!q*-!q:2!61!s+q:2!6*&"1!p+q*<!s+p+q+p+q:=2d** w*#"*#"=  !s+q+p+q:=2ʩ*:w*#"Ì!p+qe*DM!\.\s!q:a:{: :O2:eel !6>!ڜ2 K*&l :w: T:_:…:r:=2O!l 6 3:•!4**& ~ ~ H!4Ýl :S*Q*Sl.l\P"*}=*|&el\P"=*|5.*& 6!6͝*& ~( 2*& 6e!"!\" "\p.e.:\2O>:2\*& ~ ~H~ H.!4͝*& ~2!6>!`\̓[>!6:<2=O! ~2 ½:<2O>9ҽ!60+~9ҽ!60+~9ҽ!60+~9ҽ!60+4:͓ͪ!"!6:= !6!6#6D2:( H% : " :#$ͪ:;!6+~<;!6:$¨D2$X*M å:02O> p<ͪå!6͝:ʔ!5K ҎÄ͝xK ҥ*M Ô" :^D2:^^ :@: O :`:@O :`O " :!:/H     " *M : 2    *++" *& ~2 :Ht !4>>!""\ !6>!ڷ :+ ~° !4‘ * DM*"À * DM!" }2 ͣ2 :  ͪõ!q!r- "w * :w:C w *#" "*#~22_! 8!0!s*&:0!s!6ͳ:  sͳ:  L!`i^#V#~#fo yo w G: xAo o a{ _o     `i~< #~2#~2#~2*| W \!\~R 2 .n~ >2 6!.t~: +  >2 6!N#F#*" ^q#Vp" N#F##"^q#Vp" 4! 7o |  ! 6   \\ ? >_ 1m :~# yo ɍWARNING: Cannot redirect from BIOS $ERROR: Auxiliary device redirection not implemented $ERROR: Insufficient Memory $""SYSIN SUB_ogDM!>))덑o|gQ =?i`N#Fogo&og_{_z#W00001 : $SYSIN $$$FGET :<***.n6.t6 LL!p:~y !6 <ʊ~"x!=F#fh!:~!«!>w~:!5*.~w:; :~!9"1A#u.t.~@w :&/3͖!~6 :~wucy! ʎB d{<ʑ  '*2.2+6.w 22*2$*.6#6*.~w#~=~#4Ʌo$͖O̓!54  !F6#ȷxO҃>^̓@_: N#͖§>  *.>wÔ#wt~xڔp> ̓ 8>""SYSIN SUB hhhhhhhhhhhhhhWARNING: PROGRAM INPUT IGNORED $ 151282 COPYR '82 DRI gggggggggggggggggggggggggggggg"D! BH!H@ $!!$"A! D$DHH$B!"  @A  1 ÊCP/M Version 3.0COPYRIGHT 1982, DIGITAL RESEARCH151282654321 Press RETURN to Continue $ ERROR: Not typed: $Password: $No File$ BDOS Bad Sector$ Invalid Drive$Currently Opened$Password Error$ERROR: $Invalid or missing delimiter(s) $Try 'PAGE' or 'NO PAGE' $Requires CP/M 3.0$Enter file: $ $ERROR: Invalid file name. $1 1 u" * }0* |HҴJ>O/4\>(N2 i>!6 * & 6! 6: ,v! 6> W ʹ * ~‘ù* ~[ʟ* #" * ~N* #" * ~O* ~ H* #" ! 6 * ~P! 6* #" * ~]* ~H$ù* ~A0×* #" * ~]* ~HTù* ~G`×* #" * ~]* ~H҄ù* ~Eʐ×* #" * ~]* ~Hҹ: : /2 : ==2 : ! 6! 6\O2 : ( . \ - v! q* &! p+q*  ! s+p+q* : w#6*  * #" N#Fy  ! p+q* ! p+q* ! p+q* ! p+q* ! q* &-! p+q* ! q: 2 ! 6 1! q: 2 ! 6 1! r+s+q: 2 ! 6* #s#r 1m % %!% s+q+p+q:% =2% ʍ*" :$ w*" #"" p52& aڧ:& {ҧ:& :& XX>l c!' 6>!' 6͎2( *' &l :( w:( 6:( ÷:( $:' ÷:' =2' O!l 6 :( /!' 4~2( !) q:) R>:) c>:) t>:) ‚>:) >!+ p+q** ~ʯ** >@O%:%!, 6> !, :, .%*, &** >2- *- M%!, 4´!. q>:. >:. 1>!0 p+q*/ ~ ~ H?*/ #"/ */ ~K>>!2 p+q!3 6#6:3 ҁ*1 ~?s!4 6!3 4*1 #"1 ]:4 : : <2 ! >52  %: ·: ! 6! 6lͷ: 2 ! 6 ͇" * }= * |2 % ͫXlͷ: 2  ͇" = > ͑ %* M=* } ͷ! 6! 6: / ͧH ! 6>! * & ~2 — ! 6:  ~Ү 52 : : ͅ* M%! 4w [ =ͷ\26 =:6 :6 o&"7 E"9 G"; I"= "? "A "C .*7 DM -J :\2 ͅX ͑:%ͅXͷ*9 E)*; G)*= I)*? )*A )*C )!; \e .*; \ - 26 * ~ * ~ H * #" !`i^#V#~#fo:  y  wO G:L xAڠ Ҡ a{3 _à  F F : i`N#Fogo&og_{_z#Wi!v"/!Q/+>c!K-6*/K>XG!+>yC!Q/+>c!+Q/>r–!}o|g}ʖ!#"/!/–!/ʖ!/+>c!/ͷ~g"B,U"G-!,,> c!o0ͷX:F-!,,> c!q0ͷ~*G-w#w:F-X!s0͡!F-6*G-*G-^#V#)))"I-*B,*G-^#V))W+"B,*B,>og"@,:F-f!,,> c!y0ͷ~!{0!+Q/>r2K-*I-w#w2P/>2O/2N/!/(,>t!"N-:F-X!D,LG!),>y :#!#6!Q/D,>_:O/!N/:N/2O/2N/!P/4!}0!0*L-#"L-!0A !/*!/>X!/>Xt!D,KLG!.,>y:O/!N/f:N/2O/2N/!/>X!.,!,@!D,KL(,tî!N/4!,/>c!0!0!0n !N-~#!0̓ ã!0ͬ!D,/,>c!0~U!9"0:#Z!#6!#"/r*/>$Gt!##>Gt!#0,>Gt!#6!#6!#"0!0T!F-6!"#!D,6!06:0}͐3>!D,ͧd*0!F-6!#6*##"#*# |.!"0}20!0>!#*0"0!0U!#"0!0+!#*06*0 "0!04í!"#:+.!+6:# :# :#.~!#*#~20:0 20:0Q~:0Þ:K-z"/!0Ur"/*/ 3,>Gt!0#!D,6,> c!0ͷ~Ͳ"0~# ¦*0^#V"0*0^#V"0͕!1"1!216>261251:!12:1::1!51!!1:51og~271:21!216{:71!61281*0:61o:81OLG!1>c:81og>og}281*0:81ogW"0*0:81og####"0*0*0W*00>c*0";1!;1ͷ~>291!1n&}2=1:=1!91*1:91og"1*1~og |*1>ߦw*1~?*16_*1~@*16`!914å*0++*0)"1*11>_*0^#V"31*0^#V#r+s*1*0*0^#V)))s#r*0:61_L*0*0^#V)))>t*0*0^#V)))w#w!31#`*0*31)))^#V1j`*0*0^#V)))"1*1!1>Gt*0*31)))"1*1*1>Gt*31+"31*0*31)))^#V1j!31#T*1"1*0*31)))"1*1*1>Gt*31+"31*11>Gt:71%^}2C1:C1!A1$ *0:A1_LG!>1>t!0>1xy!0>1xy !B14:A1!!1:B1o)gw!0>1xy :B12!1!A14ì*00>c*0"D1!D1ͷ~^#V"F1*F1^#V> ͍!H1 *!H1> XÓ1~# s !9"2!1"1!16*1w#w*1ng | *1KLG!1>yº !1**1~ogQ1~og)1^#V*1^#V#r+sH !11>c !1*>22*1~ogQ1~Y !11xyK !24H :2K !1!1> !1* *1*1^#Vͯ1>_ *1~ogQ1~ !1*{ !1*!11xy !1*é !1**1~ogQ1~ !1* *2:1 !16!"1*1n&"1*1"1' *1#"1*1*1W7 *1*1>Ó*1~og |c !1>ߦw !1~?t !16_ !1~@‚ !16`Y2 ~# ˆ *_2^#V"e2*c2^#V"g2!"2*[2^#V"2*2*2W *]2*2ͯ"2!2 :2 *e2*2)))~# *g2^#V#*e2*2)))s#rc *e2*2)))^#V"2*g2*2))~#K *g2*2))^#V"2% *g2^#V#*g2*2))s#r*g2^#V#r+s*a2^#V*g2^#VW !i272>!c!2ͷ~*2+|´ *Y2^#VO"2þ *Y2^#V"2*2*g2++*g2^#V))s#r*g2*g2^#V))w#w*2#"2ô 2~#  *26*2LG!X2>yC *2"3*3#~>!3w:3og2~C :2 !26*e2^#V#"3!3"323!3> *3++| !"3Ñ *3>og"3*3:3og)2s#r!34d !" 3*e2^#V" 323*2"3!3"3* 3* 3W_!34:3og)2^#V" 3*e2*3)))^#V"3*2*3j/*3+" 3* 3* 3"3!36\*3*2jY*3#" 3* 3* 3W"3!36\Û :3o* 3"3u* 3"3*e2*3)))^#V"3*2*3jʛ*26*3*2s#r3 ~# ±*3^#V"#3*!3^#V"%3! ÷>2.3*3~ʟ*34*3~og"3!3A !/3*!/3>XG!3>y.!/3>X3t!/3>XG!3>y[!/3>X3t*3!3>}23:3ʐ!/3>S*3:3<_Lt*3"3!3ö*33>_*3"3!3!;3"93!3*3>!t!<3"53!L33>Gt!Q33>Gt!"'32.3*'3*#3^#VW*'3#"'3*#3*'3)))^#V!<3>p!")3*)3 |*53+*)3"73*73~ ]Æ*73~_n*736?|*73~`|*736@*)3#")38*#3*'3)))!M3>Gt*#3*'3)))^#V")32-3!)3~#ʖ:-3 ͟!<33>t!M33>t2-3!-34*%3++*)3))^#V"+3:,31!Q3:-3ogͯ3>Gt*+3O"+3M!Q3:-3ogͯ3>Gt!3A !/3*!/3>S!L3:-3ogͯ>t*%3*)3))^#V")3ø͟!.34*3~!.3!t:-3ogͯ}!;3w!;3~w*93:;3=_L3t*93!3>_!3^#V"<:F4!F46*<KLG!H<>y+!E46ð!E46!4"$Gt!'4I<>Gt!*46!>46z"!4*<@*<"r2<:E4:<>2<>2<*Gt!^<<xy;!<8!<5!<͛#E!<͛!<5:22%^}2<:!4*<@*<"!4*<@*<"2<*t!<͆!<4!<͆^#V^#V  $ "/  Later CP/M or MP/M Version Required$*#=**#={ozgY|g}o!\!l!ÍÝ3>Ý!*3>K* !*   >    !"#$%(^#V^#VF3O3*# 72gl*<"?'w#-!9~sG~#s4! 9~.Y+60e0e6 #M+r>o&9y>o&90w+Š6./G! >0 >-3T]))iO>`G>0 <  DM0 > Ew#E~#X~#W #Ý!9Oo>gy~#o>gxGGtwF#"WObk++~+ y~#/~!>)< D=M)6ɯo>g{ozg!dÄlmnpr Conversion2!Ä*%=|^#V"%=###^#V#N#Fxʿ #~ò*%=|^#V#N#F!9yx"%=:L# !9!#{z#  !!9:]#O!^# {#z!]#5#}OD*#=~r##~#fo9!NÄVWXZ\ Free Space Exhausted##^#V#{_zW;{_zW>4z˜{##^#V# ##s#rs#r#s#r+++~sw#r####}*#=}|5*{z5+F+N+V+5^{;{z;}|;{)i`~sw#r##q#p i`N#F#^#V~;q4#p+i`##s#rA"]" FREE Request Out-of-Range$ Free Space Overwrite$GKҜMbkÜiFhNhN#Fh^#V"#y2#xүi&ͩ x>!J#{#z*#*# xyxM_!^#VͤG>(Iỳ>)I|*<|6<ͤͶò">,IG> _O! O! O!0:IIWWG|e}e ڐdԒ ͒ڝÔxWN #~Iæ!wͤ*=!9{_z{ G>#I*=>=^#V#q>: >?I!oͤͤ>=I^#V|A}8.))ä#F>A> #\~ >.~ =M^#V# File: Traceback: ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADG!]#~8  " Condition Stack Overflow$4Ox!< w#s#r#s#r!9!^# s#r!]#N!< +++++q #{Š #zʏ ++~q ++!]#5!~# ž Ú !]#N!< +++++¹ #~# +{ #z ++~ù #^#V=!L#~9!5:L#_!M#^#V"J#~#.~# !*#)))))# )| !*~#|}*#"#:L#*J#~#w# F!*#{ `! d!!#"#Ö!Copyright (c) 1980 Digital Research, v1.3 !"!="="%=2]#2L#*'= !"=q#p##}o"#=*}o|!""+w+w+r+s4w#w#s#r<2)=++*!=s#r"!=*=#"=*=DM!!=x~¨"#~+¨"+F+Nq#p*=+"=ʣ"Ҧ"=Y"!+~O~#~G!>w!/x"yʞ" >O6# x" h"=ɯ ~#fo++"!=~#"*!="²""""  Insufficient Memory$ Invalid I/O List End of Execution$#dd(Copyright (c) 1980 Digital Research V1.3MXList SYMd$PlPRINTER busy XREF 1.3 no SYM file no PRN file CP/M PRNXRFABORTED. V́ + 1@+>  FG1"z*QS cE5T @///,,D,B,G-,Q/D,D,L-,D,D,N-P-L-N-P-G-@,I-P/O/Q/G-I-D,000//D,symbol table overflow ' invalid SYM file format * { *$'symbol table reference overflow 22i2 0# +333lXRF.XRF make error  '.XRF close error .XRF write error <<<_<<b *|($ o&!~6 *|($ o&:}!*|($ :!~4l|͌}(2*|$ &*|$*|($ o&*"x2y( >28!"9*|$!n! og22"">~2lÌö öÌCo&Ͷͳ}~#(͒ͯ  [ (!eR}A8Q0G: x@!\w# (Y ?(*( .( N5. 5!h6# (?( *( Y( w#>?> w#} 8 !oɿ .,;:=?*[]<>{}a{ |͋}͔Ɛ'@'Ò*|($(!B:U({ZW:V!K!P!WN ʒ! A+/ 0y͒ dF#~͒7||}>"2*Bں "og"2>2!""*B"[R*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#Ew}86RB0 > 6RRR!+  R!+  ͮ!+  ͮ!+  ͮ!#  ͮ!+  T]KB!z> S>))0 = |ͼͼDMgo>jB0 7?= J<Nz5͝)͝<z {0Gɯgo||}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'd } 8 W _}8(8J`9{T]=o`9y 8I >6ͽ  }>61 x }} ˸T}ٕ(0D=Ͷ ,= (  0%ͷ , 7  ?(8 x - ͮ 8˸xP P ,-xG}ʮ }م͉ 9ͮ .>#n0 ͷ = - nx  ,-(-˸G,-̮ }ٕ?͉ 9.> 8 ?= u+-(> 0  8 ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨% xx(/ ?}ٽ }ցڮ <(ͮ 7ͷ = |٤g{٣_z٢Wy١Ox٠G÷ 9 ͽ }x>6}ƀ/ƀo1 I -ͽ }0-ͽ ,}l˸ 8 1 p x(I - 8ͽ - 8,ͽ }l8;*! !C >p ---I ͽ ,,,-xGg?+2n*8t z~,->6x6}.1 ͽ ,I 1 ! >p,-I o&0%D, I }gڮ }؉}颋.:}8c~I$I~L*ٷx˸1 }0G, <}D,-(-ͽ !L>ͅ0  o8 1 >6m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸ 81 !~J 0jO! >ͯ 8 =  ͪI ͯ I 1 jͪI 0 -ͽ OT0 j oD,:j !I}袋.}8c~I$I~L!F> ͅ ͪͪI = I nf^VNF!DLT\I!!53!r1!!> x #-= o˸x(-I }(x>8(Ͷ ,Ͷ `iÿ!>6|ʮ |ͼ>)=|(DMbo˸ 88 x(0 8> ͼx(>-!{(ay( z(>.! ( {>E!>+|(|Dg>+-!|/ 0:p# ~# +>0w#,-  60#ù˸}րogM4| .(Ͷ = ~> x0w#xG% % ZJDM% = _~65+~hìx-Sx9?+{Η@}|Ͷ Ͷ gZJDM0ͷ ,7}o˸̀ #yO!@9i&̀  #̀w#̀/w#̀w#!9! E9!!9~(+F!"9!(#>2*!"| >2:(  *w*6 !\$!'[ (}( #:~CONTRMKBDLSTCAUXUSR>2ͪ:*ˮ~q:*:(@q##p͛* :( <~* < >26"!"""~>2""v>2>"!"ˮ)(ͼ!~8>~O6~*"ͤw(%(!(((% (' 8y(~#͒>+ͯ (( 6ͼ6 #6 #"*: y~o p .##~(.6w4._~ =*##55= *[R8+*~#"= ͳ}== Ϳ}}*#w+#~+>*~('͛!0(ˮ]͛!8ˮ!]~-#8~> 27͛ˮw>O T3f̿s #r Tf ͛ ( (ˮ q͛(ˮ ( ͛ ˮ*O:~ ##~._q4((=ʶ==ʹ=ʼ*:4^q*##~6>2}*|(Ϳ|( Ϳ6-# [RM8( G> A~#*c C! !TRUEFALSE !9N#͉~#( G~#> >    "~(͛ѻ(( !0 (ˮ!!>2Sͪ:q:*6##ww#w$w#w: 9##N#F*B>2w#w#[s#r>9"~*-w#ww##>9""~>2:͊R09*4#4> 2:͊R> *4 #4(>9> 22*f(/˦:G(##~++ :O x ys! Q*:G(##~._.<=<*##w  +4 #4x=> > 2:G(""*nˮ*0 S͊ѷR8@* N#F#s#r\ 0})jS\*##w+ N#FB r+s>2!T]>)j)0 0= ͍R!#͍*^#V#N#F#^#V>2:q:*6 #-Nw#Fwq#p#6#w#w#w"~>">!2"w#w"~x(9* :O *-4 #4!*4 #4 *-N#Fq#pV+^Bq#pS͊ѷRV* s#r$ s#rF <?*!F!\  <( !\$>2>2F:>(* \$\<(!-: [1ð\!(7"~>2"S"Ns#FrB(Z#\: \<(?*"}K\! !*}#"}! x \* *> 8 2*"[R0s#r> 6[^#VS!9[R8[R>O"w2x2*"!"" Vͩ*"*>2"*"!"""!\!*: ~͢!~6go(\R*s#r_2x( s x(T]DMx(R0  G _Pß*!~6o&l|:2͌2}*:__Cѯ2*|KB " z ͯ^C USER INTERRUPT(= ͯI/O ͯEXECUTIONͯ ERROR {͋ͯ AT PC=*͆ͯINSUFFICIENT MEMORYͯ Program terminated *|$:ʏ(1!%! N> ! HP LaserJet**+ Konfigureret til AY4-database*!!y!*!!ER*!!y!*!&l0O*!!y!*!(0D*!!y!*!(s0p16.66h8.5v0s0b0t*!!y!*!&l73P*!!y!*!&l3E*!!y!*!&l66F*!!y!*!&a5L*!!y!*!AMPEX 230 (emulering: D150E)P= YTEWjklmnoa:> *|($ o&!~6 *|($ o&:}!*|($ :!~4l|͌}(2*|$ &*|$*|($ o&*"x2y( >28!"9*|$!n! og22"">~2lÌö öÌCo&Ͷͳ}~#(͒ͯ  [ (!eR}A8Q0G: x@!\w# (Y ?(*( .( N5. 5!h6# (?( *( Y( w#>?> w#} 8 !oɿ .,;:=?*[]<>{}a{ |͋}͔Ɛ'@'Ò*|($(!B:U({ZW:V!K!P!WN ʒ! A+/ 0y͒ dF+#~͒7||}>"2*Bں "og"2>2!""*B"[R*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#Ew}86RB0 > 6RRR!+  R!+  ͮ!+  ͮ!+  ͮ!#  ͮ!+  T]KB!z> S>))0 = |ͼͼDMgo>jB0 7?= J<Nz5͝)͝<z {0Gɯgo||}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'd } 8 W _}8(8J`9{T]=o`9y 8I >6ͽ  }>61 x }} ˸T}ٕ(0D=Ͷ ,= (  0%ͷ , 7  ?(8 x - ͮ 8˸xP P ,-xG}ʮ }م͉ 9ͮ .>#n0 ͷ = - nx  ,-(-˸G,-̮ }ٕ?͉ 9.> 8 ?= u+-(> 0  8 ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨% xx(/ ?}ٽ }ցڮ <(ͮ 7ͷ = |٤g{٣_z٢Wy١Ox٠G÷ 9 ͽ }x>6}ƀ/ƀo1 I -ͽ }0-ͽ ,}l˸ 8 1 p x(I - 8ͽ - 8,ͽ }l8;*! !C >p ---I ͽ ,,,-xGg?+2n*8t z~,->6x6}.1 ͽ ,I 1 ! >p,-I o&0%D, I }gڮ }؉}颋.:}8c~I$I~L*ٷx˸1 }0G, <}D,-(-ͽ !L>ͅ0  o8 1 >6m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸ 81 !~J 0jO! >ͯ 8 =  ͪI ͯ I 1 jͪI 0 -ͽ OT0 j oD,:j !I}袋.}8c~I$I~L!F> ͅ ͪͪI = I nf^VNF!DLT\I!!53!r1!!> x #-= o˸x(-I }(x>8(Ͷ ,Ͷ `iÿ!>6|ʮ |ͼ>)=|(DMbo˸ 88 x(0 8> ͼx(>-!{(ay( z(>.! ( {>E!>+|(|Dg>-!|/ 0:p# ~# +>0w#,-  60#ù˸}րogM4| .(Ͷ = ~> x0w#xG% % ZJDM% = _~65+~hìx-Sx9?+{Η@}|Ͷ Ͷ gZJDM0ͷ ,7}o˸̀ #yO!@9i&̀  #̀w#̀/w#̀w#!9! E9!!9~(+F!"9!(#>2*!"| >2:(  *w*6 !\$!'[ (}( #:~CONTRMKBDLSTCAUXUSR>2ͪ:*ˮ~q:*:(@q##p͛* :( <~* < >26"!"""~>2""v>2>"!"ˮ)(ͼ!~8>~O6~*"ͤw(%(!(((% (' 8y(~#͒>+ͯ (( 6ͼ6 #6 #"*: y~o p .##~(.6w4._~ =*##55= *[R8+*~#"= ͳ}== Ϳ}}*#w+#~+>*~('͛!0(ˮ]͛!8ˮ!]~-#8~> 27͛ˮw>O T3f̿s #r Tf ͛ ( (ˮ q͛(ˮ ( ͛ ˮ*O:~ ##~._q4((=ʶ==ʹ=ʼ*:4^q*##~6>2}*|(Ϳ|( Ϳ6-# [RM8( G> A~#*c C! !TRUEFALSE !9N#͉~#( G~#> >    "~(͛ѻ(( !0 (ˮ!!>2Sͪ:q:*6##ww#w$w#w: 9##N#F*B>2w#w#[s#r>9"~*-w#ww##>9""~>2:͊R09*,4#4> 2:͊R> *4 #4(>9> 22*f(/˦:G(##~++ :O x ys! Q*:G(##~._.<=<*##w  +4 #4x=> > 2:G(""*nˮ*0 S͊ѷR8@* N#F#s#r\ 0})jS\*##w+ N#FB r+s>2!T]>)j)0 0= ͍R!#͍*^#V#N#F#^#V>2:q:*6 #-Nw#Fwq#p#6#w#w#w"~>">!2"w#w"~x(9* :O *-4 #4!*4 #4 *-N#Fq#pV+^Bq#pS͊ѷRV* s#r$ s#rF <?*!F!\  <( !\$>2>2F:>(* \$\<(!-: [1ð\!(7"~>2"S"Ns#FrB(Z#\: \<(?*"}K\! !*}#"}! x \* *> 8 2*"[R0s#r> 6[^#VS!9[R8[R>O"w2x2*"!"" Vͩ*"*>2"*"!"""!\!*: ~͢!~6go(\R*s#r_2x( s x(T]DMx(R0  G _Pß*!~6o&l|:2͌2}*:__Cѯ2*|KB " z ͯ^C USER INTERRUPT(= ͯI/O ͯEXECUTIONͯ ERROR {͋ͯ AT PC=*͆ͯINSUFFICIENT MEMORYͯ Program terminated *|$:ʏ(1!%! N> ! HP LaserJet**( Konfigureret til SuperCalc*!!y!*!!ER*!!y!*!&l1O*!!y!*!(0D*!!y!*!&l49P*!!y!*!&l4E*!!y!*!&l42F*!!y!*!&a18L*!!y!*!&l4E*!!y!*!&l42F*1d B6H1D3S0P0| INITIATION OF PRINTER/MODEMPORT - ͦ| BAUDRATE ::/G!||..... HANDSHAKING : :/G!%|... DATABITS : :/G!3|. STOPBITS : :/G!:|... PARITY ::/G!F@|..... Commandstring : !r |.......... Baudrate Handshaking Databits Stopbits Parity 0: 110 0: NO 0: 5 0: 1 0: NONE 1: 300 1: YES 1: 6 1: 1.5 1: EVEN 2: 600 2: 7 2: 2 2: ODD 3: 1200 3: 8 4: 2400 5: 4800 6: 9600 7: 19200 8: 38400 9: 76800 I=Init port, N=New default saved, =no change, commandstring. |Your choice ? :]I |IA͈!~E()sM!U~2#~2#~2#~2#~2| L#~˯IH:/G!##~2h#~2m:/G!##~2o:/G!+##~2q#~!ow:/G!7#~!mw:/G!C#~!mw!eZ| ..............Printer/Modem port initialized. N|7!U:w#:w#:w#:w#:w8O #~˯#B(:H(DD($S(P ~08302Y~08302X~08402W~08:02U~082V2V@ @ 110 300 600 1200 2400 4800 9600192003840076800 NOYESʁA5678 11.5 2 NONE EVEN ODD61300~G#N#E | ~#O͐ ! [PRIMO COM( | Cannot open PRIMO.COM !( | Cannot read PRIMO.COM  !"(!| Cannot write PRIMO.COM | ..............New default values saved, but not sent to port.!~O#~U~檩˿#|kxxmt!90$`tkeuggz euggz 1z111111111Ͳ DISKETTE- and WINCHESTER-FORMAT-UTILITY for the JET Computer. Rev. D d }004ͲRequires CP/M Plus Version 3.0 to execute. !w&R(4Ͳ Requires the BIOS revision D to execute. >Ͳ Enter drive to format? ;!~ #~˯A8Q8<Ͳ Please, give a letter (A-P) followed by a colon. #2~: 1:A_288ͲRequested drive does not exist on this system. ~(F®ͲSorry. This logical unit is the second winchester-unit. ~2~G>_SNFN|(n fF(<"}2~N_P`hS{2Q<:02y"Ͳ ********** DRIVE CHARACTERISTICS ********** Ͳ Logical unit.....: :O:1Ͳ Physical size....: :82 5"1Ͳ Physical select..: :0O1Ͳ Number of sides..: :1( 1Ͳ Number of tracks.:*{1Ͳ Number of sectors:*{1Ͳ Sector,size.......:*{1Ͳ Density..........: D:o(S1Ͳ Step-rate (ms)...: F:! !##~O#~O11>2Ͳ Confirm formatting of this diskette with YES ! ;!~#~˯Y#~˯E#~˯S:ͽ   >G (0Ͳ DRIVE NOT READY OPERATION ABORTED Þw(2Ͳ CANNOT FORMAT WRITEPROTECTED DRIVE! Þ>W(O(O !'+O(| 1Ͳ CANNOT FORMAT HARD SECTORED DISKETT Þ11>22!G@~X€2͍!4!< :G=2:~€ů2!5: )Ͳ DISKETTE SUCESSFULLY FORMATTED ÒͲ SEEK ERROR, OPERATION ABORTED >2Ͳ ********** DRIVE CHARACTERISTICS ********** Ͳ Physical winchester select.: :?????0OͲ Formatted capacity (KBytes):~/W~/_S~/O2G:O:O{Ͳ Number of cylinders........:*{Ͳ Number of heads............:g:o{Ͳ Physical sectorsize........:o:g{Ͳ Reduce Write Cylinder......:~/g~/o{Ͳ Write Precomp Cylinder.....:~/g~/o{Ͳ Sector Interleav Factor....:~/&o{112Ͳ Confirm formatting of this winchester drive with YES ! ;!~#~˯Y#~˯E#~˯SͲ FORMATTING....(BE PATIENT).........:/!/2v>wf; vf– ͲCOMPLETED. 222!">2l *[| } ~2Ͳ WINCHESTER VERIFIED WITH:og{Ͳ BAD TRACK(S). : Ͳ FORMATTING ALTERNATE TRACKS. >22!:O ~2#~2#~2K:_:G+:O{/2|/2}/2:<2; v^:^:^:f :!ʫ <2' Ͳ SECOND WINCHESTER UNIT MUST BE REDUCED WITH AT LEAST:=OGW:_:O{Ͳ kBytes. v>wf!>wv!f– ~2~2Ͳ VERIFYING: CYLINDER*{Ͳ HEAD :8Ϳ :!<(2 2*#"ɯ2K:_W:OG :OG:OG 0}/2|/2{!/2v/ !fP :y^!p^Ͳ WRITINGY:O:G:[*qwG:!N@>(2Ͳ WRITE TRACK ERROR F!4FͲ VERIFYINGY:2:  22!4~*+"^!Z@>!(U2:(Ͳ Ͳ *** READ ERROR AT SECTOR >2:81:! F!4F:og!&"*r"!>NP, ,>,>w#2>N,>2 ,>,>w###:w#:w#>w#>N, ,>,>w#:O:G  >, >w#6>N,!~4!8>N!":*"!(>,,>w#>,>2,>w###:w#:w#>w# >,,>w#:O:G  >, >w#>,!~4!8>wT]w(  8>N w#Ͳ  8  y0 0(O0OͲ TRACK :8Ͳ SIDE :8|() ^#V#>2ʹ W Function complete PW CP/M 3.0 IOSETUP - for the Jet Computer. Version 1.0 Rev D. Physical Devices I=Input, O=Output, S=Serial ͟ P+ W =============================================================================== SIO channel A SIO channel B Baudrate=~ W Baudrate=~ W Handshak= ~! (###W Handshak= ~-! (###W Databits= ~O! ~2W Databits= ~/O! ~2%W Stopbits= ~ OO! QW Stopbits= ~+ OO! W Parity =~G!(O W Parity =~+G!(O W 1=Device assignments 2=SIO port setup 3=Save default on disk Q=Quit W Your choice ? (.Q W New default NOT stored W + W Enter new assigment or hit RETURN !#~_#6M!$͚ A(3CxLb ͚ Sb ͚ Tb ͚ :(=b > b M2͚ Ub ͚ Xb ͚ O >2 I >2͚ :(=( b : > b > Mb >2͚ Ob ͚ Nb ͚ O >2 I >2͚ :(=( b : > b > b M2W Which channel A or. B (A=printer/modem,B=terminal) ? MwA(B(W Type A or B>2!6W INITIATION OF SIO CHANNEL : WA PRINTER/MODEM PORTWB TERMINAL PORTW Baudrate =: ~ ~ W Handshaking = >~! (###W Databits = >~O! ~2-W Stopbits = >~ OO! `W Parity =>~G!(O W Baudrate Handshaking Databits Stopbits Parity 0: 75 0: NO 0: 5  0: 1 0: NONE 1: 110 1: YES 1: 6 1: 1.5 1: EVEN 2: 134,5 2: 7 2: 2 2: ODD 3: 150 3: 8 4: 300 5: 600 6: 1200 7: 2400 8: 4800 9: 9600 A: 19200 B: 38400 C: 76800 no change or commandstring. !#~M;@!~(!0O :~ w w #~(!0(> >ˮw#~(&!0'_>~w>~?#~(!0_>~#~M!0_>~M"O ~6#~6+:G [˯( Q V #˯(,( ( S7!}w|w ww7W ERROR: unknown command strike a keyM~#˯Ϳ"2 ~##!  6 ! 06I#06O#06S#~(6,W!4~ PG!S W*RW Current assignments CONIN :=!nfʹ W CONOUT:=nfʹ W AUXIN :=nfʹ W AUXOUT:=nf ʹ W LST :=nf)0 |   WW Source drive name (or return for default)  (BA8 A2 A_c~(B >W ERROR: You cannot boot from second winchester unit. BW Source on then type return  BPͧͭqͳ2:8TW ERROR: Possible incompatible disk format. Type return to ignore. BP<2:(ͻͷ8qO #~˯#B(:H(ND($S(P Q~08L30H2!~08>30:2 ~08040,2~08"D0:8=02~08 2ү2W Incorrect command format; (Correct format: "B9D2H0S0P0") strike a key7˿˯ "_W ERROR: Invalid drive name (Must be A through P)W ~#_͟_W ERROR: Selected disk not on system.2 O> > > >  > >>2 C 2 !W[|}0:8!!O 2 NONE 50 75 110134.5 150 300 600 1200 1800 2400 3600 4800 7200 9600192003840076800  NOYES@ @`5768 11.5 2 NONE EVEN ODD@_@ @@E  E 1  ͍ %͍͍ʢ͏͕!~# 4͕ ͍:g:s:_g:s!]~$o#~B̩1ɷW|g ͏͕%z͍͍ ͍vCPM3 SYS CPMLDR error: failed to open CPM3.SYS $ CPMLDR error: failed to read CPM3.SYS $ CP/M V3.0 Loader Copyright (C) 1982, Digital Research $021182" yڥ2 2 : 2 {2 !" " 9"@1!N y2K!dڛ_^#V*    ; A G :ž y! 4 5~yµ5 6y ’ ͒: ! OͻMD2 > BDOS ERR: $Select$Perm.$ v{_zW{_zW )8# ? w#JJ |^#V###" ##" ######" !  I* !- I* |! 6ʕ67 * w#w* w#w#w! ^#V#Fͪ' O* &! s#r#p* N#F* ^#V#F* : O}|y* %+* .}|y#* %* DM"  * s#r* s#r#pyoxgkDM* 0 MD" ! * MD$ : O&! N:  yG>O: ʐÇ* ͒ : ʨn` ~#for2 O͚" }: O* 7" 2 " : O: G2 ! w*  * !~2 ~2 : 2 : w: w |g}o' )4: O!3yoxg: O&}* : o$~w{ozg ^#V: ʏ> Û͡" ͳ* ç* r" ! ~#O&E: N/* " y2 ʹ͗ͻͫʛ* X: O~Jyʔx ʍ ʂJÍNJ# h2 G>G:~X*  IOw!x>Fwx2 2 ~: : 6: w2 ~O !>w:ͨ2 4O.5Ϳ: ! S: ͮ: ͛ͳ: < =! wW* M_S -* MD:" : 2 ɯ2 >G=O* ~~w#~2 ~wc~~p2 !" >2 * ~=2 ~2 ͛o>* w!" 2 =2 !" Û͛o͢͢' ͫ~<7 w@ͩ7: " Û: ~ : 2 : ~ * 6: p w#: w: w*@* }D> $* * T : _2 {2 " r" [  ?, d >l [ I6: <!=6 * J " * K : G/O*  * =d ## Ih c c c c c c Í ß Ð Õ Ú í c c é c c c c c c c c u É k c c c  !K!K!!6 6 >"2C?o(!d |G}2 <<2 >2! !#O: :(y: ( ( 2>2Mx: ɯ2S" Cx> >2*|o&~!!x( >>2C2!> (>w2CCC!y*`i#:ts(1j͍( ~ ͢p  S[!R0x̓y{([ ' ~w NJ F6#ͱ 666 :rͪͱ >!p > >NF(90>2~6 :p> y~4(>4Wy> ~݆ݾ8(>6w4~ ݖw ~~ F8 C"!>!x((:4>> w( D6#~:=_Gn f s(1j͍( ~ ͢p͙ >ͪ~w NF 6#ͱ 66>"l/ > !!> \l!j\>կNF:!0 ) 0 ~=O 0yT!jpT"S!! >}ϋ}ϋ y(ϋ y(ϋ~G#N#Kvv-<v@_@:w:w:www?: : ɯɯwwwO FA˯A8Q82 Please, give a letter (A-P) or return. 2 A_ 28: Requested drive does not exist on this system.  Source on : O then type return J ~(' Sorry. It must be a floppy.  Destination drive name (or return for : AB(A :) y˯A8Q82 Please, give a letter (A-P) or return. !   Not same drive 2A_ 28: Requested drive does not exist on this system.  k# Destination on :O then type return J ~(U Sorry. It must be a floppy.  It must be same format on the drives ~2~G>_SNF N3 |(n fF(<"}2 ~N_P`h3 S{2Q<:02!y "J J If you wish to copy the entire disk in drive : O : to drive :O : and delete all information on destination drive, then type YES ! 2 !~ #~˯Y #~˯E #~˯S : 9  >G (0 DRIVE NOT READY OPERATION ABORTED  w(4 CANNOT WRITE ON WRITEPROTECTED DRIVE!  > W(:> W(:O(O !'+O(| 3  CANNOT WRITE ON HARD SECTORED DISKETT éJ J >22!s l *~X ¬:~X ¬:2 2 :`2 :K !4! < :9 : G=22:~ ¬ů2 # !5: 4 DISKETTE SUCESSFULLY FORMATTED AND COPYED   SEEK ERROR, OPERATION ABORTED >2 FORMATr :O:G: ["*$qwG!^"| !z l > (+2 WRITE TRACK ERROR NR :Q F! 4F>2  READINGr : '2&[!(!6" >2 : ! l >!& (y2 READ ERR NR :Q AT SECTORQ J : =2 e>2  (A=Abort,R=Retry,I=ignore)  A I(R`* [" ! :<4”F! 4F` WRITINGr : '2&[!(!6"| >2 : !z l >!& (k2 WRITE ERR NR :Q AT SECTORQ J (A=Abort,R=Retry,I=ignore)  A I(RK *| ["| ! :<4z F! 4FK VERIFYINGr : 2&2 2! 4~*+" ! l >!& (U2:( *** READ ERROR AT SECTOR >2: Q J : ! F! 4F# :o} !S_"$*r""!^P>NE  E >E >w#2>NE >2  E >E >w###: w#:!w#>w#>NE  E >E >w#:O:G  >E >w#6>NE ! ~4!8>N !_"$:*""!^(>E E >w#>E >2 E >w###: w#:!w#>w# >E E >w#:O:G  >E >w#>E ! ~4!8>wT]9    8>N w#  8  y0 0(O 0O TRACK :Q SIDE : Q |()  ^#V#>{ | W_0e. !0 ) }|x/Gy/OB zS)80# 8 _733< _7ɏ0#  _7F#( y^χ y^χ!  ~O#~U~檩˿# kxxmt!90$`tkeuggzp|oj 'd  3 61015 6122030/1!@6 }0>8>2z&R( :] (8\< 22h2|!\ 2tS:( >~2 ~2:(  !6tS e  ((A8A2A_  A2~2 ~2    A8A2A_   !">2!4:NA>2!4:(R^!FNGy*DMM2:8_  <2:(UQ(:*"o&)))))))˿˯ 9_92O> > >  > > >2: C2*:͇!W[__  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH $ CP/M 3 COPYSYS - Version 3.0 Rev D. Modified for the JET Computer. $ ERROR: No source file on disk.$Function complete$ Source drive name (or return for default) $ Source on then type return $ Destination drive name (or return to reboot) $ Destination on then type return $ ERROR: Invalid drive name (Must be A through P)$ ERROR: Selected disk not on system.$ ERROR: Possible incompatible disk format. Type return to ignore.$ ERROR: Not compatible BIOS revision. $ ERROR: You cannot boot from second winchester unit. $ ERROR: Not compatible LOADER revision. $ Type space to continue. Name Ext Bytes UN At ! File(s), occupying K of K total capacity directory entries and K bytes remain on 1 !9" ! J> # ->! . *ͪe> # < * v K  K  K !B r+s+p+qA ?  p*A *? :]$Ž l]Q !]6 !E 6!C 6 :C *C &l ~2D U¼:E 2 :D S:E 2:D F:E 2:D V:E 2:D P:E 2 :D N2E !C 4Ø:!4:!5(  ! I3= : [= t:\a:\=_: :] t ?]\ : ҃! 6?Î : 2   ]Q  ?\\ : DM, Q ! "= *3 ##)*= "; */ &# "! *3 #"#  !! "% >!1 . 2' \: 2 : ʩ: ƀo&"* ~ʛ*# +"# ** DMY қ** DM  *; q#p* " . ** #DM*; -e**  *; w* #" )*= *; s#r*; "; : 2 !S 6!"V * "n >!S d*S &T ) ^#V"K O!l ^#V"M :S =2S M K  a*K "G *M "I *K  )*= ^#V"O I G  *G )*= N#F*O ? J*G #"G (*I )*= ^#V*O DM? m*I +"I JI G  *G )*= ^#V"Q *I )*= *G )*= N#Fq#p*I )*= *Q s#r*G #"G *I +"I K I  G M   !M G  :S <2S O!T *G s#r*S &l ) *M s#r*I "M ^I K  X:S <2S O!T *K s#r*S &l ) *I s#r*G "K û!" "    #* #" )*= * #" )*= N#Fq#p   * )*= * ) *= ^#VN#F? H * #" )*= ^#V";  *; ^#V" * )*= ^#V"; *;  ͪ  *; q#pÝn* " ! p+q* )*= ^#V"; ! 6> ! i* &*; >OK : <2 E:/ *; ^#V*% DMf KK : *; Nf E*; ~ڻWK þE *; ~SK E = ! 6:! '= :/ = : = !: = : <2 * " !" >! .  * *&͵ "( * *&͵ > j*( #"( *DM*( V"( !" (   K!" }2 : <2 O:* * * "    >! = * DM** +" *( * " Ø* #" *&*( * " 3*1 #" " " *5 " > # R : B * +" ! +s#r( ! 6: " * ~2 * #" * +" > ʶ : 2 Ғ * +" : <2 O>ҳ ! 6* #" * ~2 p K* DMf = * *% DMf = * *% DMf = *( #"( K*# DMf = * *% DMf = : AOK :K . g S -A >>!  ~?l W >#^ : /!:' —  ʑ #‹  W ʢ #™ i`N#FogDM!>))덑o|g =¼ DM!>)) = ^#V) ^#V|g}o _{ozgO{ozgi`N#Fogo&og_{_z#W OK = Y -S {-_ ! s+p+q*  ͼ 2 <2 : ! ڗ  K ! 4Á ! 6: =! ڻ * & NK ! 4œ >3  03} Z; { ) # /* TERM 1met, HH MPS-3000 (F3 ROM)O= YTER:> *|(UQo&!~6 *|(UQo&:}Ë*|(U Q:ͥ|}(2*|U &*|U*|(UQo&*"x2y( >28!n"9!!22>2å+;o&ͦͣ}~#(  [ (!èͩA8Q0G: x@!\w# (͇ ?(*( .( |c. c!h6# (?( *( ͇( w#>?> w#ͩ 8 ! ɿ .,;:=?*[]<>a{ |ͷ}Ɛ'@'*|(U(!B*:U({ZW:V!K*!P*!WN !' A+/ 0y dF#~7||}>"C ""*B"[RY*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E w}8RB0 > RRR!+)  R!+)  ͼ!+)  ͼ!+)  ͼ!#)  ͼ!+)  T]KB!z> S>))0 = |DMgo>jB0 7?= H<^z5ͫ)ͫ<z {0Gɯgo||}||/g}/o#}o&K[xAJSJDM!b"!6J"DM', , d,  , } 5W' _}8(8J`9{T]=o`9y W >  }>? x }} ˸T}ٕ(0D= ,= (  0% , 7  ?(8 x - ͼ 8˸x^ ^ ,-xG}ʼ }م͗ 9ͼ .>#n0 = - nx  ,-(-˸G,-̼ }ٕ?͗ 9.> 8 ?= u+-(> 0  8 ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨3 xx(= ?}ٽ }ցڼ <(ͼ 7 = |٤g{٣_z٢Wy١Ox٠G G }x>}ƀ/ƀo? W - }0- ,}l˸) 8 ? ~ x(W -) 8 -) 8, }l8;*! !Q>~ ---W ,,,-xGg?+2n*8t z~,->x}.?  ,W ? !>~,-W o&0%R, W }gڼ }؉}颋.:}8c~I$I~L*ٷx˸? }0G,<}R,-(- !Z>͓0  o8 ? >m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸) 8? !~J) 0xO!>ͽ) 8 =  ͸W ͽ W ? x͸W 0 - OT0 j oD,:j !I}袋.}8c~I$I~L!T> ͓ ͸͸W = W nf^VNF!DLT\I!!53!r1!0!> x #-= o˸x(-W }(x>8( , `i!>|ʼ |>)=|(DMbo˸5885x(0 8> x(>-/{(ay(-# z(>./ (- #{>E/>+|(|Dg>-/|/ 0:p# ~# +>0w#,-  60#˸}րogMD| .( = ~> x0w#xG% % ZJDM% = _~65+~hìx-Sx9?+{Η@}| gZJDM0 ,7}o˸͎ #yO!@9i&͎  #͎w#͎/w#͎w#!9! E9! 9F !"9!(#>2*1"| >2:(  *6#w*6#6 !\$!3[ (ͩ( #:~CONTRMKBDLSTAUXUSR>2w:*#~ >:*:> >w###6[  #6++p>2SͶ:>:*6###ww#w$w#w: ̀##N#F*B>2w#w#[s#r>2:>:*6 #-Nw#Fwq#p#6#w#w#wh* :( : *^ F* < >26"~.*-w#ww#."~͠ <?*1͠!\  <( !\$>2>2͠*|> * \$\<(!: [1Á\!(f"G>2"!""F( #~#6>2"!""N>2!~8>O6*"w (0((( 8y(~# + (6*#~G*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/< !*###~-_~(46*>2>*##w:>*##~*#~(EQ ( ( ( [!] ( ( ((w#([G[6!]~-#8~> 27G [[>OAA Ss #rAS Q [ (( #w([G[q*#~ ([G [ [*##~6"O:*#~(09ʦ=ʦ==ʩ=ʬò+###~-_q460>2*:4^q}*|(|( 6-# 5[R8 (G> C~#*q5C! !TRUEFALSE5!9^#ͱ~#(G~#> >  "F!(#R0̀*4#4> 2R *4 #4(> 2>2:*V(/˖:(#~+ x y!D( =( X:(R*:(###~-_-<=<*###w . *4 #4xŠ> > 2:("."*^˞*V˖0 SѷR8A* N#F#s#rʹ 0})jS\*###w* N#FB .r+s>2!T]>)j)0 0= R!#*^#V#N#F#^#V>">!2DM"~ʎx(L* :O(o:" C}=( J*-N#Fp+qq#p! * F+N+++V+^Bq#p=((>  > > >2SѷRڮ* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *> *"[R0s#r> [^#VS!9[R8[R>O"w2x2*"! "" *"*>2"*"! """!\1*: t͘!~6go(\R*s#r_2x( s x(T]DMR0 5!AG5!@_P*!~6o&ͥ|:22}*! ^C USER INTERRUPT::!  I/O!  EXECUTION ERROR ͷ AT PC=[R"Ͳ Program terminated *Y1!V!>"NAJ  ! HP LaserJetͪͪ ' Konfigureret til WordStarͪ!!H ͉!ͪ!!E{ͪ!!H ͉!ͪ! &l0Oͪ!!H ͉!ͪ! (0Dͪ!!H ͉!ͪ! (s0p10h12v0s0b3Tͪ!!H ͉!ͪ! &l0O!H ͉! )0D!H ͉! )s0p10h12v0s3b3Tͪ!!H ͉!ͪ! &l73Pͪ!!H ͉!ͪ! &l3Eͪ!!H ͉!ͪ! &l66Fͪ !!H ͉!ͪ! &l73Pͪ!!H ͉!ͪ!0&>|ÕÙãçñ JET-80 BAUDRATE STILLES MED PRIMO. $CONFIG FIRST.  $:G!N#~2#y…>>&>|ÕÙãçñ YOU ARE TRYING TO RUN AN UNCONFIGURED MOVE-IT! RUN MCONFIG FIRST.  $:G!N#~2#y…>>&> ALL CODE IN THIS PROGRAM IS COPYRIGHT WOOLF SOFTWARE SYSTEMS (C) 1981 REPRODUCTION BY ANY MEANS PROHIBITED BY LAW. ALL RIGHTS RESERVED.  1%=:02'%:02)%*"{$!"`$2i$2h$2d$F$2$!~5##~͸N5#~͸O5#~͸C5>2h$$#!~0_ͷ##@!!*#!~~2$!:~=O##~#sN$>2$*ͷ#"~#Î#¶:d$ʙ<2d$Î:Ž2d$æG:h$x >2$xd"!y~!:~͸SʞGʞN<BVA]RʟLMEʙT{C Hʎ?0%!!%#~*O*#~C*>2h$~2i$~#~͸*SsNʖ*>2i$~#~͸*AʑRʠ *#~ ʦ,ʦÑ~# ʦ,ʦ͸H>2j$ÒF2j$ÒN2k$ÒE>2k$ÒO>2k$Ò6#+~ _ͷ##!6#K6#p6:j$2b6#~6:k$K6K6#9#*|/g}/o#*ͼ!89#!!>N2s$"h G:c$xW 2c$xe ͸EStA!PgGT9XC?*#w!!*#w:p$ |9#g!͸Y <$2p$2n$!!~.#:l$2l$636#w:n$O:p$O=7a:n$2n$7a!7#w:m$2m$6y6#w8#:g$!!!<8#:f$!!!I8#s"yʴ!:"2g$!n8#s"y!:"2f$!8#!!w:o$2o$88#w!1#s"y0 !:<'<ͱ$:,#g!͸Y0 <ͱ&$<ͱ#QX.#" >2p$2n$!!<:#7#*"q$w!1#s"y" !:\'\ͱ$<¤%#wN$2#s"͸" ͸NCETX2#!ê2s$C5#͟#2t$!H5#\.$F !~F ͬ " # 5#>N2s$w/#2p$2n$!!wj5#!>N2s$wxe >2c$wͬ \ wi ͎ ͸ } w<$.#0 :f$ͬ ͍ ګ ͎ *q$w#"q$}•  :g$ͬ G:n$ x *q$w#"q$:==̌ *q$*|/g}/o#*q$6#"q$ 5# }l&)>o*|C N$<6$ѷ7ƒ +|% *q$+~l z/W{/_*q$DM*xʀ w# _ N$<6$ѷ7ƒ *"q$5#\ ¤ z“ 7i _:k$  { { {u ͂ _:j$ ͷ#{͸ :s$X T] C] E ' \ 3 i ͎ O:f$y3 5#\ I i ͎ O:g$yI 5#3 ͯ#) ͟#) " { t E :l${ > ï :l$E :s$Tʋ Cʺ E \ ʝ i ͎ ͯ#ʮ ͟#" z  E ͯ# ͟#" \ ʺ i ͎ G:t$º E \ ͯ# ͟#" i ͎ 3 7#͟# 3 "  7\ 3 i ͎ { E :l$E > ï ͯ#V ͟#" 7? _:o$ʝ ͷ#X1#*`$ͼ!n1#g!͸Y~!"`$~#~* , ~#* , +͸0 : ~jͱ$< %!&>j.$: w#/ 6!&>?ʺ ~͸w͸Y #G k ~ ~,k È ~# z ~ k F 9#~##~ʠ ʠ ,Š #(ڱ ~9#~:#~  E9# !~#  ~#  !!~~#,_ͷ#~#,% ͷ#~ 7{#(~͸G#~͸O#~/g/o#}{ |`Gog}~ }#,l(7ODEVNOHAFUALECPRXO>ñ>ñ2k$h>þ2j$hXJNJF>2l$hXJNJF>2o$hXJNJF>2m$h~͸N(F9J]J#"2g$h]J#"2f$h7h##~͸7]#~h=\7PHONE NUM~~2$#~* ¡#:$G#ø\':w$2b$<$<~ #͸A*#~* <'>2h|%#ÒY:*{$~ʒ2\$\~# 1N$ ͷ#.#:\V>$<@_ͷ#:ͷ#!]^ͷ##f.ͷ#!e^ͷ##y/#\ͱ$<›%:< ʰ:b$/# !]<~a{͸#¸!< ~w# 2_$6:z${4a67ʈ1Òc,#ʙg!͸Y>2_$:\$Wx $Ò1:\$Wx/#! 1xÙ͔!S-#g!ʙ \.$2_$}!!H:z$7ʈ{3ʵ6ҏÒ͔!,#"ھʙ ͔!2_$i:z$6ʒÒ͔!Y/#!Ò/#!> !< w#":\$<2\$>2\$2<2\<]\':w$2b$~ʋ U#G͸A`*#~* `<':< ʋ:b$ʋ/#> 2<2_$>2$Y>2$:z$"ʷ6ҏÒ%#Ò2_$>2\$>2$ͧ >2$:z$%ʒ$67Ò:!\a{͸w#:$<2\:< < $#_#:N$\ͱ$ʷ,#g!ʙ͸Yy\ͱ&$\ͱ#^2_$5x :z$6Ò͔!X.#"*2_$x :z$&67ʓÒ2_$4x :z$&U67ʓ.Ò /# 2_$}!ͧ :z$6ʓ#<e7ʓ͝hÒ\6$^\&$͔!2_$5x :z$67ʓҪÒ-#g! 2_$x :z$&67ʓÒ2_$3x :z$&367ʓÒ?/#͔!\$/#!2_$x :z$&67ʓRÒ͔!1:\$Wx/#!͔!\&$#~͸*D*Uʵ*#~> µ#6"|*}2$>2\$>G2$2$2_$!$Rx :z$S6 Ò8#!Ò1#::ͪ!!!Ò>G2$>2$2\>2\$#~V <#\':] ^] >2_$A!\x :z$ʈ6cÒ2$*{$>2\$2$>2_$ͧ :z$"ʷCB6ҝÒ:$>2$0#!:~@_ͷ#:ͷ#!!!::$<2$2$!ØE9#Ø#~*͸DXU'*#~? '#6"|*]F$F$1#ͪ!!!Ò2\#~v \#\':] ~] \ͱN$|ʷ0#:\¦>$<@_ͷ#:ͷ#!!*{$~E9#ü!ú!!Ò#^ͷ##.ͷ#^ͷ######>G2$>2$#~* #~)#~#;z,A͋#)2_$>2\$Px :z$ʒPt6FÒ>2$8z€ѯ2_$2$F:$~:$_F$ ͗#>2$2$ :z$!AkP(R`6xÎ2\$>2$>G2$:!\w#2|2h:\>$<2\N$|)"xÎ͓*{$ :z$’2\$~\~#K!] ~w# Y2_$!\:\$W$x :z$15ʒf\͓>2_$ :z$4ʽ1\7Қ\ /#Ò/#!.#:\@_ͷ#:ͷ#!]^ͷ##.ͷ#!e^ͷ##/#\ͱ$<\.$›2_$}!!H:z$5Z 1\74\͔!:\$Wx2_$ :z$3ʒ1\7o\?/#Ò2_$#:\$Wx :z$1\7ҟ\/͔!/#!> !< w# ͷ#&:\$Wx/%x ͷ#Ò2\$>S2$:!\w#'.#:\@>$<@_ͷ#:ͷ#!]^ͷ##P.ͷ#!e^ͷ##c/#\ͱ$ʶ>2_$x :z$ʭ1\7\ҏ\\ͱ&$>$#_#:N$\ͱ#͔! /#4xÒ͓2_$ :z$7\>͝\}!\6$͔!?/#3x\&$Ò\$͔!/#!xÒ͔!/#!Ò>2$>G2$2\$:!\w#\ͱN$͓ 1#:z$’|":\$Wx/#!~*{$~2_$~>$2$>G2$8Ò!::]$O 6$41#:#!!͓>2$>G2$!:~w^F$F$2$!$Sx ͷ#Òxxx 6#6#6#66*`$#"`$:^$W:_$<2_$*0#g!͸Y2_$7?7*`$#"`$:^$W:_$<2_$#7?7ɯ2w$"u$Fx# 0~:Mx͸@#Q+~ #*w:w$2w$~#.ʊ.ʊ͸V~.#*u$ ~ #*®:w$2w$͸–a{_x>? > *{$!"}$\$\$.!o:\#~#:==* *}$#"}$72>*}$:\$W!:Y#x/!"Z$yzxʨ~#Ÿ:Z$/o:[$/g#|}> Y#> Y#O*Z$ "Z$G:i$xY#Y#0: # : 2]$G / !"Z$ 2z$ 2y$:]$2]$X G!: w#L *Z$ G O## | :z$6:$ʍ :$GÕ :$S:\$W:y$¦ >2z$² :y$2\$7x>72z$# >2z$# G:i$x G# O*Z$ "Z$0: !0AG!77%#N! ͷ#(ͷ#;!)ͷ# I!^ͷ#@_ͷ#_ͷ#_ͷ#s"!yy!> :::x$2x$ʡ!J9#:x$ʑ!2x$\9#Ñ!!!""&o!!!""/*"^#V !z/W{/_*"##""Yͷ#!!2"02"2"#"2" O))))  "}~ B"#8"0a" ?a"))) O F"2e$!:Ã"ů2e$!:"}"ʰ"ʰ" " }":e$P"<2e$w_ͷ##}":e$}"=2e$+ͷ# ͷ#ͷ#}"6:e$O::#|"}0"ͧ# #ͧ#ͧ# #7:$&#:$G1#6#:$S1#6#8#~#P#z;#8#7͋#7?e#Z#r# S$S$S$ S$:h$V$:m$#S$:h$V$ S$S$  S$S$S$S$S$S$S$S$S$S$S$ S$A * * MOVE-IT (tm) * * Inter-computer communications utility 1 Version 0.0 Copyright (c) 1982 Woolf Software Systems Serial number $ $ **** File Not Found $ **** Syntax Error! The proper commands are: Send FILNAME.TYP [AS DESTNAME.TYP] (Send file to remote computer) Get FILNAME.TYP [AS DESTNAME.TYP] (Get file from remote computer) LDir FILNAME.TYP (Get local directory) RDir FILNAME.TYP (Get remote directory) LUser [USER NUMBER] (Get/Set local user number) RUser [USER NUMBER] (Get/Set remote user number) Call [NUMBER] [NAME] (Call number or name) Hangup (Hang up the phone) ANswer (Answer the phone) NOConsole (Inhibit console output) Binary (Set 8 bit transmission mode) AScii (Set 7 bit transmission mode) Message [MESSAGE TO SEND] (Send message to remote console) TRies (Display retries) TAlk [FULL] [HALF] [EVEN] [ODD] [NOPARITY] (Enter smart terminal mode) Exit (Exit to Operating System) $ Escape sequence not found. Valid sequences are: Send 1 escape to remote computer S Send a file to the remote computer G Get a file from the remote computer A Toggle Auto Line Feed on/off C Toggle remote echo on/off T Toggle file trapping on/off P Toggle printer on/off X Change XON and XOFF characters. E Exit Talk Mode (Return to prompt). $ File name already exists on remote end. Replace?$ File name already exists on local end. Replace?$ Remote disk full. Insert new disk and  press return to continue, or press control-c to exit to Operating System. $ Remote directory full. Insert new disk and press return to continue, or press control-c to exit to Operating System. $ Disk full. Insert new disk and press return to continue, or press control-c to exit to Operating System. $ Directory full. Insert new disk and press return to continue, or press control-c to exit to Operating System. $ Disk full. $Sending $Receiving $...$ Complete.$ Aborted.$ Aborted. Directory full. $ Aborted. Disk full. $ Remote computer timed out. Command aborted. $ Warning - When an ambigious name is transferred, only the drive name is permitted in the "AS" field. File name ignored. $ Communications Line Failure. Either the comline is down or the remote computer is no longer running the utility. Try Again?$Directory for local disk $Directory for remote disk $Receiving filenames, please be patient... $Sending filenames...$ Message from remote computer: $ Number of retries: $ Do you want to clear the retry counter? $ Remote user number: $ Local user number: $ Filename to send to remote computer?$ Filename to get from remote computer?$ Please enter the letter that describes the protocol you wish to use (N,E,C,T,X,?), or press Return to abort. $ Valid protocols are: N - No protocol. Characters are send at full speed. E - Echo wait. 1 character is sent and then checked against the echo from the remote computer. If an error is found, the user can ignore it or abort the transfer. C - Character wait. One line is sent, then local computer waits for the specified character from the remote computer. T - Time wait. One line is sent, then the local computer waits for 1 second. X - XON/XOFF. Characters are sent until remote computer sends XOFF, and resumed when remote computer sends XON. Please consult the users manual for more information. $ Please enter the character to wait for: $ Transmission in progress... $ [Transmission complete.]$ [Transmission aborted.] $ [Transmission suspended] $ [Transmission resumed] $ [Saving data to disk...$ Done.] $ Invalid option: $Valid options are: HALF, FULL, NOPARITY, EVEN, ODD$Current settings are: $Half Duplex, $Full Duplex, $No Parity.$Even Parity.$Odd Parity.$ [Auto Line Feed is on.] $ [Auto Line Feed is off.] $ [Printer is on.] $ [Printer is off.] $ [File trapping is on.] $ [File trapping is off.] $ There is no file open to accept the trapped data. Use G to open a file. $ The remote computer echoed the wrong character. Press return to ignore and continue, or Control-C to abort. $ The current values for XON and XOFF are: XON: $ XOFF: $Please enter the new value for XON: $and for XOFF: $ New values accepted. $ [Remote echo is on.] $ [Remote echo is off.] $ Sorry, the remote computer doe2s not support this command.$ Size of trapping buffer: $ characters.$ $.... Working ....$                 $An error exists in the switches for the name called. Command aborted. $Name not found in PHONE.NUM! $ There is data in the trapping buffer. Do you wish to save it? $[Trapping file is now open.]$ Not enough memory for function. $ Valid names in phone number file are: $tches for the name called. Command aborted. $Name not found in PHONE.NUM! $ There is data in the trapping buffer. Do you wish to save it? $[Trapping file is now open.]$ Not enough memory for function. $ Valid names in phone number file are: $tches for the name called. Command aborted. $Name not found in PHONE.NUM! $ There is data in the trapping buffer. Do you wish to save it? $[Trapping file is now open.]$ Not enough memory for function. $ Valid names in phone number file are: $tches for the name called. Command aborted. $Name not found in PHONE.NUM! $ There is data in the trapping buffer. Do you wish to save it? $[Trapping file is now open.]$ Not enough memory for function. $ Valid names in phone number file are: $tches for the name called. Command aborted. $Name not found in PHONE.NUM! $ There is data in the trapping buffer. Do**"l#͋͋͋͋͋WINCHESTER BACKUP-UTILITY for the JET Computer. Rev. D  }004Requires CP/M Plus Version 3.0 to execute. ͇&R(4 Requires the BIOS revision D to execute. ͇ Which drive is floppy?͝!d#~ #~˯A8Q8< Please, give a letter (A-P) followed by a colon. #2t#~: ͋:t#A_͇2u#8: Requested drive does not exist on this system. ~(! Floppy not winchester!  Which drive is winchester?͝!d#~ #~˯A8Q8< Please, give a letter (A-P) followed by a colon. #2v#~: ͋:v#A_͇2w#8: Requested drive does not exist on this system. ~(G  Not the second part  Winchester not a floppy!  Todays date (YYMMDD)?͝!d#~ 0 Please, give it on the form "YYMMDD"!  #(( 0( 0!e#M:u#~2y#~G>_NF͔N|(n fF(<"z#}2#~N_P`hS|#{2#Q<:02#͔"~#[|#͔K~#͔!@ S#@͔"#F2#~/W~/_S#~/O2#͔^N!S#͔"#K#͔͔S#!K#S#F2#!vo!#ͫ(;(b!2$~> #~ #~ #~ {2'#͟!(>2n#>͋͋͋͋͋͋͋͋ WINCHESTER BACKUP-UTILITY for the Jet Computer. Todays date:@ Number of diskettes:#i:'#(!#ͫ(;( Bridos volume name :!$ s Created date:!$s Last backup date:!$s͋ 1 Winchester backup TO floppy 2 Winchester rebackup FROM floppy 3 Verify old backup 4 Read floppy number and date 5 EXIT (do nothing)  Your choice? ͖O͒b12 3Z45b͋͋͋͋͋͋͋͋͋A complete backup will be made of the winchester and all contents on the floppies will be destroied. Confirm with YES ! ͝!d#~#~˯Y#~˯E#~˯S You will need :# diskettes. Ready to start ?. Confirm with YES ! ͝!d#~#~˯Y#~˯E#~˯S2#2(#!M)#:'#=L !#ͫ(;(!$7#, 8#!7#6!""͋!(#4> Insert backup diskett no :(# in floppy drive :t#O͒: and press , ^C or F ͖ (3C˯F(" press , ^C or F ! i ͥi *(#&+K#͔"#"/#[#"3#!##6!'##<!#!"#:#2#͋ Reading from win *#!ͫ( (;(C Writing on floppy *#!(;(i  Verifying *#!(< Verify error Abort or Retry (A/R)͖˯ACRi !#5e *#@"#*#@"#[#RU !#(;(C[#K#!!@R[#"#!#:'#= T Updating the winchester !#ͫ(;(C$!M!#̀ (;(C The winchester is successfully backed up to the floppies. C͋͋͋͋͋Rebackup the winchester from the backup diskettes. If You want to continue? Type YES ͝!d#~#~˯Y#~˯E#~˯S You will need all the :# backup diskettes and everything on the winches2ter will be destroyed. If OK? Type YES ͝!d#~#~˯Y#~˯E#~˯S> Insert backup diskette no 1 in :t#O͒: and press ͖ (# press or ^C ! !#(;(:#=81 This is no BACKUP DISKETTE !! Try againP :#(. I wanted diskette no 1 !! Try againP !#)#!cc:#2(#O6!""͋> Insert backup diskette no !cK#>:# in drive :t#O͒: and press or ^C ͖ ($C press or ^C ! o!#(;(C:#=81 This is no BACKUP DISKETTE !! Try againoK#!c ~(2 This diskette has allready been read !! o!#)## p This does not contain the same BACKUP DATE. Anyway accepted? (Y/N) ͖˯Y(J(No type Y or N*#"#!"#*#"#͋ Reading from floppy page *#!(;(C Writing on win page *#!̀ ( (;(C Verifying on win page *#!ͫ(<(8Verify error. Abort or Retry (A/R)?͖˯R^A C*#@"#*#@"#!#5)K#!c 6>:(#=2(#o Rebackup is successfully done.C A byte compare will take place between the backup diskettes and the winchester.  Insert any backup diskette in drive :t#O͒: and press (any other key will terminate)͖ *#))"#!#(;(:#=81 This is no BACKUP DISKETTE !! Try againñ2#*#"#!"#͋ Reading floppy page *#!!#(;( Reading win page *#!!cͫ(;( Verifying !#c?U# x*#"#*#"#*#+"#|ˆ Verifying is OK. ñ:# Verify errors. Do You want to see the errors? ͖͋ ˯NY( Y or N>2#~XH on floppy =~XH on win.(^C to termiante.) ͖>2n#!#(;(>:#=8 No BACKUP DISKETTE )͋͋͋͋͋͋Disc number:*#&! Backup date:!#s First page:*#! Last page:*#!:#= [ Bridos volume name:!# s Created date:s Last backup date:s Press any key͖ Reboot the system!"> WINCHESTER NO OF CYLINDERS*#! NO OF HEADS *#&! SECTOR SIZE *#! NO OF SECTORS *#&! WIN SIZE *#! NO OF SECT/PAGE *#&! FLOPPY FLOPPY TRACK *z#&! NO OF HEADS :y#!(.! SECTOR SIZE *~#! NO OF SECT/TRACK*|#&! USED AREA *#! NO OF SECT/PAGE *#&!Ë!;;~O#~U~檩˿#kxxmt!90$`tkeuggzp|oj F#( y#χ y#χ yχ yχy y2#  TIME OUT :( DRIVE NOT READY C(!n#5 READ ):#W( LOST DATA  FATAL :#(ERROR NR*#&!>2n# (A=abort,R=retry)͖( ˯A(R ӯ7!W[l#{ͮ|ͮW_0e. !0 ) }|x/Gy/OzS)80# 8 _733< _7ɏ0#  _7~08 0O'''O#~08 0#ɯ7|() #^#V#>G (0 DRIVE NOT READY OPERATION ABORTED Lw(2 CANNOT FORMAT WRITEPROTECTED DRIVE! L>ͳ!W(O(O !'+O(| 1 CANNOT FORMAT HARD SECTORED DISKETT L͋͋>2#2o#~X!!2s#P!o#4!#< :#G=2o#:o#~ͳ!!ů2s#!o#5:#L DISKETTE SUCESSFULLY FORMATTED  SEEK ERROR, OPERATION ABORTED >2#> FORMAT:o#O:#G:s#[#*#qwG:u#!~o>!(2# WRITE TRACK ERROR F!s#4F VERIFYING:s#2#:u#;;2q#2#!q#4~*~#+"!o>!#!(U2#:#(  *** READ ERROR AT SECTOR >2#:q#͋:q#!# F!s#4F:u#o*!X$"#*~#r"#!#>NP >>w#2>N>2q# >>w###:q#w#:#w#>w#>N >>w#:#O:~#G  > >w#6>N!q#~4!#8>Nô!$"#:*~#"~#!#(>>w#>>2q#>w###:q#w#:#w#>w# >>w#:#O:~#G  > >w#>!q#~4!#8>wT]N w# 8  y0 0(O͒0O͒ TRACK :o# SIDE :s#:u#x2#"#:#=(!K|#So##"q#q!©.@:# .[#Sy&"#!o:#G[#!"#:s#'_:q#>ͳ!©!#5ʣ:q#!|#ʩ<2q#ÅFʹ!s#4F:o#2q#z:u#x2#"#:#=(!K|#So##"q#q!©.@:# .[#Sy&"#!o:#G[#!"#:s#'_:q#>ͳ!©!#5ʣ:q#!|#r<2q#NFʂ!s#4F›:o#2q#C>7x2#"#:#=(0 i&K#So#"q#O! .@:# .[#Sy&"#*#+"!o:#G[#!"##/ >>>"n !#5` :$#/>>"!f 6 >7x2#"#:#=(0 i&K#So#"q#O! .@:# .[#Sy&"#*#+"!o:#G[#!"##/ >>3>"=!!#57!:$#/"!f  !>7K#͔ 0}/2$#|/2##:w# /2"#*o#:y#(<0<2s#"o#:o#~ͳ! 7>>ͳ!> !(+D   8>!(+D#!#":#/! ERROR.........::#/O0O͒ ͒:#/X HIGH-ADDRESS..:g:#/o! MIDDLE-ADDRESS:g:#/o! LOW-ADDRESS...:g:#/o! Consult Your Xebec-manual. /("W"z/>y"!!#p"'d 1d B7H1D3S0P0| INITIATION OF PRINTER/MODEMPORT - ͦ| BAUDRATE ::/G!||..... HANDSHAKING : :/G!%|... DATABITS : :/G!3|. STOPBITS : :/G!:|... PARITY ::/G!F@|..... Commandstring : !r |.......... Baudrate Handshaking Databits Stopbits Parity 0: 110 0: NO 0: 5 0: 1 0: NONE 1: 300 1: YES 1: 6 1: 1.5 1: EVEN 2: 600 2: 7 2: 2 2: ODD 3: 1200 3: 8 4: 2400 5: 4800 6: 9600 7: 19200 8: 38400 9: 76800 I=Init port, N=New default saved, =no change, commandstring. |Your choice ? :]I |IA͈!~E()sM!U~2#~2#~2#~2#~2| L#~˯IH:/G!##~2h#~2m:/G!##~2o:/G!+##~2q#~!ow:/G!7#~!mw:/G!C#~!mw!eZ| ..............Printer/Modem port initialized. N|7!U:w#:w#:w#:w#:w8O #~˯#B(:H(DD($S(P ~08302Y~08302X~08402W~08:02U~082V2V@ @ 110 300 600 1200 2400 4800 9600192003840076800 NOYESʁA5678 11.5 2 NONE EVEN ODD61300~G#N#E | ~#O͐ ! [PRIMO COM( | Cannot open PRIMO.COM !( | Cannot read PRIMO.COM  !"(!| Cannot write PRIMO.COM | ..............New default values saved, but not sent to port.!~O#~U~檩˿#|kxxmt!90$`tkeuggz euggz 1P >3X>2a!"ac1!a2|;R8Y>!Y]>ͨO͉=qX00~RͿ1og#}0w0~og@ }3>!aͻO0#!t]x O0#!v]x O>2a!a~]>OC0#0#>ͨO!]> ͨO3+M>NG!a>O!]a>N!aͦOEL}2a*a:aogQS0#]>GP0#]>GP0#!]x OC12a!aD!aO0#!a>GPh1zB!a6:a<!a~#’RY>![ ͨOI3qXRY>![<*a> ͹MI3!]>ͨOI3qX!a +RY>![<0*a͞R^#V> ͹MI3!]>ͨOI30+*a͞R>ͨOI3qX0!aͻO!aͶ!aͻO!]ax O!a~#!]ax O!]ax ORY>>?!]>ͨO͉=qX9!]ax O!]ax O!a+9!]ax O͌*9!]ax O!a,9!]ax OGRY>![ͨOI3qX!b]>P!bͿ&2 b!b!2aRDY>>?qX9!]ax O\*9!]ax OqW9!]ax O†9!]ax O›)9!]ax O°9!]ax OT 9!]ax O! bJ,! b+9!]ax O!b!-9!]ax O .9!]ax O%z9!]ax O9!a6b0Y0#v]>GP0 ]>GP0 6?06?0~=2b!bm1:a2b:a2bß:a2b:a2b0"b!b1!"a:b2b:b2b:bog:bogQS=!b10"#b!!bͅ12b:b6*a#"a0#:bog)))))!'b>GO!%bͧ0*a͞RͻO0 :bog)))))!2b>O!0bͧ0*a͞RͻO0 :bog)))))~0*a͞Rw0:bog)))))~0*a͞Rw:b0*a͞Rw0:bog)))))~0*a͞Rw0+*a͞R]>GP͍12b!b4ý \e!"a"a!;b`"ab!a~#f!"=b#"?b*a"Ab*Ab*?bQS[0*=b͞R0*?b͞Rx O0*=b͞R0*?b͞Rx O0*=b͞R~0*?b͞R"*=b#"=b0*=b͞R0*?b͞RN*?b#"?bv*=b"aQ 0~og+"Sb!Qb "Mb!]FS*a##~og+++r2dM"Kb*Kb*Mb͞R"Mb!"Ob#"Cb*a"Ub*Ub*CbQS 0*Cb͞R~og"Gb0*Cb͞R~og)))))0*Cb͞R~og"Eb:Hb+ !"Gb*Eb#"Eb*Eb))))"Eb*Gb >ogS"Ib*Eb*Ib0+++*Cb͞Rs#r*Ib*Kb+*KbS*Kb͞R"Ib*Eb*Ib0*Cb͞Rs#r0*Cb͞R^#V*Ob"Ob*Cb#"CbôR Y>![<*a> ͹MI3!]>ͨOI3*Ob> ͹MI3!]>ͨOI3qXR? Y>![ͨOI3*Mb> ͹MI3!]> ͨOI3qXRP Y>>?qX Rq Y>![ͨOI3qX!\bͿ&2[b:[bƒ :[bog+"bb!`b "Wb!]FS*a##~og+++r2*WbUN;QdM"WbR Y>>?![ͨOI3*Wb> ͹MI3!]>ͨOI3!Zb>ͨOI3!]>ͨOI3qXR Y>>?qX ^#V"db*db~2rb!pbm11"a1"fb*a^#V>ogS#"hb*a^#V#"jb!"lb*hb"sb*sb*lbQS !"nb*nb | *fb~!nbFͶNր¬ *jb+"jb*nb#"nbÇ *fb#"fb*lb#"lbt *jb]!a~# 0*a#͞R"wb0*a##͞R"yb0*a###͞R"{b0"ub!"}b*{b*}b))6#6*a*{b++*}b))s#r!}b#\*{b*}b))^#V"b*{b++*}b))^#V"b*}b+"}b*b*bQSY*b"b*b"b*b*b>ogS"b*wb*ub*b͞RN*b*bQS *ub*b͞R*wbx O *b#"b *wb*ub*b͞Rx OA *b+"b *b*bQS *yb*ub*b͞RN*ub*b͞R*ub*b͞RN*ub*b͞R*ybN*b#"b*b+"b *}b#"}b*b*bQS*b*bQSQS$*b*{b*}b))s#r*b*{b++*}b))s#r*b"bV*b*{b*}b))s#r*b*{b++*}b))s#r*b"bÐ U ^#V"b*a"b!"b*b*bQS*b*b>ogS"b0*b͞R*bx O*b#"b*b+"bs*a*bQS!"b*bARY>![ͨOI3qX!bͿ&2b:b:b0w!ab>GP:a2a!aa>OzBä^#V"b*b~og>͹M!bͻO*b~og |!b{NG!b>OÛ!b>NG!b>O!bͦO$P^#V"b*b"b>2b*bn&}2b:bog:bogQS*b:bog>w!b4*bͦO$PO^#V"b*bͦO!]>ͨO3"b!b~#C*b*bNG!b> O!bR$PN!^>ͨO$Pó^#V"b!b6!"b*bn&"b*b*bQS*b*b]NG!b>P!bͶ!b 8O*b#"bm!bͦO$P^#V"b*bn&"b*b |/*b |*b }3>*bGͻO*b>ͨO$PwR4Y>![#ͨOI3qXR<Y>>?![ͨOI3qXRYY>![ͨOI3qXRvY>![ͨOI3qXRY>>?![ ͨOI3qXRY>!\"ͨOI3qXRY>>?!\ͨOI3qXRY>>?!\ͨOI3qXRY>>?!\ͨOI3qXRAY>>?!\ͨOI3qXRcY>>?!#\$ͨOI3qXRY>>?!*\ͨOI3qXRY>>?!1\ͨOI3qXRY>>?!8\ͨOI3qXRY>>?!?\ͨOI3qXR Y>>?!F\ͨOI3qXR/Y>>?!M\ͨOI3qXRQY>>?!T\ͨOI3qXRsY>>?![\ͨOI3qXRY>>?!b\ͨOI3qXRY>>?!i\ͨOI3!a>ͨOI3!aͦOI3!]>ͨOI3qXüRY>!n\ͨOI3qXU>!s\2"b!b*b#NG!b>O!b!bO!_b>NYû!~]b>2|!]b>2|xûRY>>?qX! c$!c ͻO! cͿRY>>?qXuc~# 0*a#͞R"c0~*cw0*c^#V͞R*c#>GP0*c^#V͞R*c >GP*c 6?*c]>GP*c> N*cG>P*c > N*cG>P*c6*c6?*c]>GP0*c^#V͞R"&c!&c1*c"*c!(cͅ1HRGY>>?!x\ͨOI3!a>ͨOI30*c^#V͞R",c!]>ͨO!,cD͂OI3*c> ͨOI3!_>ͨOI3qX!.cnRoY>!\ͨOI3qX*c"0c!0c +RY>!\ͨOI3qX0!4cͻO!2cͶ!!cͻO!`!cx O!5c1*c"9c!7cͲ1RY>!\ ͨOI3qX*c";c!;c +RY>!\ͨOI3qX*c0*c^#V͞R>GP*c0*c^#V͞R>GP*c"=c!=c +RY>>?!\ ͨOI3qXU>!\2#NG!pc>O!nc!?cO!0`?c>N!c$!Tc ͻORY>!\ ͨOI3qX;U>!\>?qX!?c!]?c>2#NG!c>O!c!?cO!:`?c>Nˆ!c$!`c ͻO!"lc*a"c*c*lcQS!cX!c!c ͻO!cͿ*lc#"lcâRY>>?qXUc~# 0*c^#V͞R>ͨO!:`>ͨO0*c^#V͞RpO͂O!c ͻO!"c*c |*c*c]> NG!c>P!]cx Oʚ!c*c]> NcP*c#"cM!"c"c*c | !c*c]> NG!c>P!]cx O!c*c]> NcP*c#"c*c#"cí*c"c*c |?!c*c]> N]P*c#"c!cc> O!c$$P!c~# ]0*c^#V͞R>ͨO!:`>ͨO0*c^#V͞RpO͂O!c ͻO!"c*c |*c*c]> N!c*c]> N O*c*c]> NG!]> O*c#"cù>k^#V"c*c!:`>2"c!c~#v*c*c+MNG!c>P*c*c#NG!d>PÎ*c!c>P!d;`>GP! d6!"c*c |: d/!c*c]>NG!~]> O! d6!c*c>Nv]P*c#"cÙ! d6!"c*c |: d/L!d*c]>NG!~]> OB! d6!d*c>N]P*c#"c!d>ͨO!:`>ͨO!cpO͂O$P^#V" d0"d!d1* d"d!dͅ12 d: dš>3>0 : dog)))))N>'d~# 0*a#͞R"d*d~*dw0*d^#V͞R*d#>GP0*d^#V͞R*d >GP*d 6?*d]>GP0*d^#V͞R"d!d1!dnRY>>?!\ͨOI3qX*d"d!d +RY>!\`>ͨOI3qX0!#dͻO!!dͶ!dͻO!`dx O!$d1!&d͒1R$Y>!\ ͨOI3qX>TRGY>!\ͨOI3qX0!,dͻO!*dͶ!`Nd0"/d!-du0+*a͞R!~]x O*a0*a͞R^#VQS"a*a0+++*a͞R^#VQS"a*a+"a*a"(d*a"1d*1d*(dQS/0*(d͞R0*(d#͞RN*(d#"(d*a*aQSSRMY>>?qX!"a!RyY>>?!\%ͨOI3qX0!:dͻO!8dͶ!`N24d:4dRY>>?!\ͨOI3qXRY>>?qX!5d6!"6d*a";d*;d*6dQS/:5d/ !0+*6d͞R!~]x O!:4d R> Y>>?!\ͨOI3qX!=d +Ra Y>!\ ͨOI3qX0!AdͻO!?dͶ!3dͻO!`3dx O› 0"Dd!Bd2aï !]3dx O¯ !5d6!R Y>>?!\ͨOI3qX!Fd +0"Jd!Hd2aY1!0!3dͻO!5d6*6d#"6dzBü&Ld~# !*Nd~,!*Nd~og@ }3>!ldͻO0*a#͞R"rd*rd#"td*Nd~*rdw0*Ld^#V͞R*rd#>GP0*Ld^#V͞R*rd >GP*rd 6*td*rd$N0~*tdw!aldx O!*rd {N`P:a!"0*Ld^#V͞R~2md'":a2md!vd1*rd"zd!xdn"R"Y>>?!\ͨOI3!]>ͨO!|dD͂OI3*rd#>ͨOI3!:`>ͨOI3*rd >ͨOI3!`>ͨOI3qX>*rd"d!~d͒1!aldx O0*Ld^#V͞R~!mdo#*td"d!dnc#R`#Y>>?!\ͨOI3!]>ͨO!dD͂OI3!:`>ͨOI3*td#>ͨOI3*td >ͨOI3!`>ͨOI3qX>*td"d!d͒1*rd 6*td6*rd"d!dͪ1®#R#Y>!\ͨOI3qX0*Ld^#V͞R"d!d1*td"d!du1͟M2a0*a ͞RQS >@ogS"jdR'$Y>>?!\ͨOI3qX*Ld"d!d +Ro$Y>!]ͨOI3!ld>ͨOI3!dDI3!]>ͨOI3qX*td#"pd!Rd6!Qd6:Rd%!"hd*td~=2d!dm10*Ld^#V͞R"d!d1!"fd*jd+"d*d*fdQS/:Rd/#%*pd*hd)"d!d1*hd@ "hd*td4"d!d͚1%!Rd6*fd"jd*fd#"fd$!"hd*rd~=2d!dm1!d1!"fd*jd+"d*d*fdQS/:Qd%*pd*hd)"d!d1*hd@ "hd*rd"d!d͢1ʖ%!Qd6!Rd6*fd#"fdJ%Ã$*rd"d!d}1͟M2a:Qd%R%Y>! ]ͨOI3qX*rd 6?*rd"d!d͒1ä&!aldx O¤&0*Ld^#V͞R~!md:aG&RG&Y>!])ͨOI3qX0*Ld^#V͞R~!mdʤ&*rd*tdN*rd"d!dͅ1ʞ&*rd"d!d͒1!dͲ1*td"d!d}1͟M2a:Qd)d~# &R&Y>!]ͨOI3qX*d~(R'Y>!] ͨOI3qX+'U>!]N<'>!]d>2}2d:df'!d:d_N]P!]d>2}2d!dKNG!d>P!dͶ*dͻO:d¿'!dNG!a>O!ata>P(!d:dog++MNG!a>O!d:dog#NG!d>O!d!aͻO!taa>N((!aa>O:a2ah(!~]a>N>(>2ah(!aͦO!ta> ͨO3|[(>h(!aͦOEL}2a*a:aogQS|(>(R(Y>!"]ͨOI3qX(U>!'] O(>*d"e!eͶ*dͻO*dn& "d:aog*dQS*d+| )>h1*d}É*R2)Y>!,]ͨOI3qX!eͿ&2 e: eD):aS)! e6X)! e6! e6!"e*a"e*e*eQS/: eS*0+*e͞R!~]x O2*: e)0*e͞R~2a!eD!aO!e!2 e: e2*0+*e͞Ra>GP*a0*e͞R^#VQS"a*a0+++*e͞R^#VQS"aY1I*0! eͻO! e6*e#"ei): ew*Rw*Y>!1] ͨOI3qXR*Y>>?qX+R*Y>>?qX!"e*a"e*e*eQS +0+*e͞R!ax O+R*Y>>?!8]ͨOI3qX!e +! eJ,*e#"eé*R+Y>>?qXý+^#V""eR+Y>!=]ͨOI30*"e^#V͞R"$e!]>ͨO!$eD͂OI30*"e^#V͞R>ͨOI3!:`>ͨOI30*"e^#V͞R>ͨOI3qX,^#V"&e*&e^#V*aQS|+R+Y>>?qX*&e6#6,*&e^#V#r+sG,^#V"(e*(e^#V+|:,*a*(es#rR7,Y>>?qXF,*(e^#V+r+s-^#V"*e0+**e^#V͞R!~]x O,0+**e^#V͞R~]>GP0**e^#V͞R^#V*a"a0+++**e^#V͞R^#V*a"aR-Y>!I]ͨOI3*a> ͹MI3!a>ͨOI3*a> ͹MI3!a>ͨOI3qX.^#V",e0+*,e^#V͞R!~]x O”-*a0*,e^#V͞R^#VQS"a*a0+++*,e^#V͞R^#VQS"a0+*,e^#V͞R]>GPR-Y>!Q]ͨOI3*a> ͹MI3!a>ͨOI3*a> ͹MI3!a>ͨOI3qX*,e".e!.e+m00*a#͞R">e0~*>ew0*a͞R*>e#>GP0*a͞R*>e >GP*>e 6*>e 6R.Y>>?qX0*a͞R"@e!@e1!Beu1͟M2a*>e#"@ogS"9e*9e> og\2"9e!3e6!4e6:4e:3e/M0!"7e"1e*9e+"De*De*1eQS/:3e/l/*oN!a>oN͖N5L"Ne*Ne*5eQS/:4e0*GP!a0ex O/!4e6/!Pe0*5e#"5eï/*7e "7eY1@00!0eͻO!a0ex O;00!0eͻO@0!4e6*1e#"1e|/.!Re}1͟M2aRl0Y>>?qX>Z^#V^p0#V |0Ó0|0"0  Later CP/M or MP/M Version Required$* h** h{ozg0|g}o!\!l!0 13> 1p0!1*3>p0K* !^1*p0v0 v0  >  p0v0v0v0v0v0v0v0v0v0̈́0̈́0̈́0v0̈́0̈́0 ̈́0p0 ̈́0v0!̈́0v0"̈́0v0#̈́0v0$͍0v0%͍0v0(|U2|{zK2|>SDMSogXSƒ2QY2QY!9@Q+|Œ233332!!@P/<|>SF22O22# 2222glA3~ 7303#$3#3H o&w9"Zƒ3\3BZ!9{3r3~#7:b3> 7:r3&9¥3x2Zy ’32Z"Tei4<͕5*Te(4x2Z=cSA 3A33G:Z=cSx2Z"Tei4!ZF6!Z~#3x=2Z͕5>E7::Z+4-/2ZA5K5ҷ4­4 ʱ4 T5A5Þ4.4A5K54T5A5ÿ4e4E5A5+4A54-4A5K5cSGA5K55xGGGA55GyO*5 cSA55:Z<5T5-5y2ZH5~#z0 0!Z_w!Z~q54_!ZscScS2ZG:Z<2Z=cS:ZcS5¯5:Zʯ5!Z5!Z4cS:ZG:Zʽ5!Zx5>2Z57:!Z55:Z!Z<_!Z>w w>+5!Z~5>.26G:Zx06:Z> !Z~,65!Z4!Z5-2Zx!Z^4{K6K6!Z~0>0"Ve*Z~2Ze:Zi68i6cS:Ze2[e>V8![e{65~/o :Z±6>98ʱ6>*8ʟ6 á6*:[e!9q#=¨6÷8>2\e<2]e2^e262Ye:]e_:Ze8*Z~2Xe:Xe97:\e7:\e2\e87:^e=O:\eG9?9:^eO:Ye?9;8ý6Z7*i7O:\e-7y2\e:\eQ7:Ye0Q7:^eO:Xe*K7> ?9c7:\e2\e:^eO:Ye?9;8ý6:Xe87:Xe9®7:Xe$9—7:^eO:XeG9?9;86:Xe2\e:^eO> ?9;86:\e7:Ye07:^eO> ?97:^e=O:XeG9?9:^eO:Ye?9:\e2\e7:^eO:Ye?9;8ý6:XeV;8:\e)8:\e2\e8)8:^e=O:\eG9?9:\e58<2\e86:^eO:Xe9p8:\e[8:XeBe8g8:\e*g8> ?9;86:^eO:XeC~8D:Z‘8> ?9 ?9î8:XeC¥8?9 >R?9î8?9 >B?9;8;86:[e*Ve!^e4!]e4S+-$G:ZeOx*Z## 8<>S8>+8>-8>C8>5D8:/,.B!]eN*Z# Ⱦ9G:]e_:ZeO x*Z# Ⱦ69!i#9w$G:Z`9x+-t9Sn9x+t9-Sq9>+>-> < 9x=9G9w9 ·9:Zʠ9ڱ9!Zxw9ڱ9.:w9c@w9 9w9> 7:ý9 9x9>.:w9 99w9x9>w9=c@9,:x!Z:,:9:Z:,::Z> 7::>2de!be?:ZS:!ZS:> [:> [:[:2ae!_eq@V<x:y<>:= : ;Oھew#.±:e¸:x:(<  :< >< =; =;w# cS%;H !9 P;+wE;xOo>g9x >g9##> < k<V2se!qe?!teU,=m=^x=^#V=<,=<#F<#N<#^#r+s#^#V++r+s~<5;>={=*Z|=j& *Z*ZQS#QS> C>> C>;>> C>{=>'C>!9*>=~#'#>{>'C>C>>{=>'C>{>bC>*Z++|27f!5fq@ɯ`>>`>>2Bf"Cf"Ef`i"Gf!9"If!8f|>f ~# >*f~>*f~>!f>ͨOG3!!![IA!["f!f C>!f>ͨOG3!R.!!?[IA!?["f!f C?*f"f!f C!fhA*f^#V!Zs#r*f^#V!Zs#r*f^#VͼN|*ZͼN|GG?!fͪ?*f^#V}*Z}Gj?!fͪ?:[?*f^#V}*Z}Gʎ?!fͪ?:[?*f^#V}?!fͪ?^#V"f!Z"f*f"f!fU2f!f?^#V"f:[?:[@*f@*f5!f6:f @5@??4@!fq@*f4@*f5!Z6!fq@:Z1@*f6@oC2f:fb@!Z"f!"f!fU!Z6#6!f6 :[p@!fq@^#V"f!Z"f*f"f!fSH@!Z"f!"f!fU@HA:[HA*f~ @*Z#"ZHA*f~ @!Z6#6HA:[HA*f~ @*Z#"Z!Z6#6HA*f~ HA*Z#"Z!Z#A!Z6#6*Z*Z#QS|HA!Z"f!"f!fUCAc@!Z6"f!9"g!fhA! 9^g~# mA*g^#V|ʂA*g* g N* g nbA* g ! g>PA!g>ͨO*gnO! gͻO*g~#A*g^#V)))|A*g6P#6*g~#7B*g^#V))|+B*g6#67B*g6<#6*g6#6*g6#6*g6#6*g 6*g^#V}L}2 g*g^#V}B! g44*g^#V}B>2 g*g^#V}B* g~#B* g6#6*g"%g* g"!g* g"#g!g0G*g^#V| C*g"/g!"1g!'gU^#V^#VX:Z*C!OCU2ZO! [9C6>C +~#w!Z s#r!Z4}XWCXCZYC[C I/O Stack Overflow:ZC!Z"8g!4g@HC!3g6ÚC:Z23g!Z6:3g کC*Z#"Z:3g ¹C!Z6#6:3g"&J"(J*&J^#V#"&J^#VCC",JC"0J|C|~CCyaDA =.:;<>[]y **JC $D0DC$$DC1RD o&))))\xH  oD#w oD$D*D*0J#ʞDAҞDG$DC:ʣD 6èDp4$D+ɯ*0J+E^#VE#{#zE6#6E r+s!:gF#~2F!:g6P  X X!;g^r+s6 #6 !;g4^N*0J|bF}=OFF^FZEZFO>~nFnF>ͰFN*0J|šFYZE=ʇFy“FXÖF>~ʦF=ʦF>ͰFq25J*0J/"2JEG{EE*2J*0J#:5JOFE#s#rFEEFEðFEr+s{G!/J4*2J+>|'G+}oͽCC~2.JC"*JC:.J6HcEiGG:.J6H*,JpcG4#6JC:.JڄG!G*&J++"&JÍG}+ʑG'G}|2!J"JC!G"$J1ͼS|6H##"0J6*,Js#r~D¢I{ ʢI*0J:.JwG6G*$J""J< H:.J¢IG<ʢI!""J*0J(Jw# H*0J~#J*0J̓Y>J*,Jw#wJͽCCJHJͽCCJ~E>HJ*0J~H>JHXKJ*0J!*~!/24J*0J|H(^#VCC{zIzeI2/Jz0I:4J$IͽCCJ|}J~> J<JͽCCJ|œI*,Jw=J*0J͚Y*,J^#V6+6++RTJͽCCJ>J"N#F#~Cq#p#w>JͽCCJ>J*~C!J=I>!*0J" s#r#w=J*(J }!g6 4>2g*g!4#4#4~#N#F#y#x#:g*g!!:gʐJeJOJ:g~G~#~O?J#~J! p! y! qO>G!$q#p#6ZK"g"g2gx2g6J2gFJ!g~5KuJʠK=K:gK*g< K͔gK*g:gO*g:g¼Ky OK:gOJ*gw# KVJ:gK*g!eJKJ*g"goK:g/g.>Gx|g}o L"g>L*g"gLEL*g"gLEL*gG!9!xʡL ʜL+nL$%cSgÜL-cL0cS:cS0T])cS)cScS)cSo|gcSSL{ʱL$%cS}òL|cSz->So&9}O!9 w#L60#60! 9~ M!97>?'w#5L-!9~JMM~#JM M! 9~.0M+60o&9y>o&90w+aM6.!9!R}!zMcS/Sog|>S>ʷM)cS=ëM|/G!N N>0N N>-3NT]))N寕iO>`G>0 ?N<7N DM0 > og|`N>S!ERNw#ÏN!9!7>?'w#¢NȇöN)üNyw# N~#N~#W #.O!9Oo>gyRO~#o>gxGgOGPwF#"gxͨO͂O*g!9G_>WObk++ʢO~+šOy~#/ÃS>S#"g"g`i"g!R*g"g!gw`i"g0Q3Q"g*g*gQ"g0Q"g*g͞R0Q>S*g*g|P>S*gQ>S*g|P)))PP*gQ*g))P)P:gO:gGzQzQ ))QQ:gER>SDM>!=))"Q (Q3Q|g}oREQQEQ!R2g"g!gr#q#p!R*g"g!gw!gr#q#p:gG:gR:gG:gR:gG:gR:gG:gR:gG:gR:gG:gR ҽQ Q Q|e. Qo&:g*gDMER"g!Q^#V!9*g3333!R^#V!9!33333333###~0RGOW_goހ_W+~G~+N+f.zURzfR ))URUR}{R${R{R{RxRʒRʒR>ßS>ÚSyƀGOS\{ERDRzERDR\e. R RS\e. R.HEg)R )R )R )R )R )R )R )R z|>SDM|>SS>Sx>ʃS!>)+S 3S=g^#V#N#F{ozg||/=!iSUqSrSsSuSwS Conversion2S!SUSSSSáS2Sx2S!SUSSSS#}OD* h~S##~#foS!SUSSSSS Free Space Exhausted##^#V#{_zWT{_zWS4z$T{MT##^#V# ##s#rs#r#s#r+++~sw#r####}* h}|T*{zT+F+N+V+5^{T{zT}|T{ʡTڡTi`~sw#r##q#p i`N#F#^#V~Tq4#p+i`##s#rTYZTYZ FREE Request Out-of-Range$ Free Space Overwrite$GK(UMbk(UVFVNVN#FV^#V"h[y2g[x;Ui&5XrUFUxRU>uU!Z{#z*Z*ZqXxyxUU_!W^#V0VU>(Uy V>)U|ʶUU͝V|UU0VBV>Z>,UU> _X X X0:UUUUU|U}U VdV V)V VxUN #~U2V!W0V*h!9{_zcV{cV wVuVU>#U*h>=^#V#UwV͎V>: ҘV>?U!V0V0V>=U^#V|V}V.))|W0V#F>AĉV> #V~ >.ĎV~ ĎV=V^#V# File: Traceback:!W(W8WBWMWZWgWwW ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADG!j[~WWYZ Condition Stack Overflow$4Ox!g w#s#r#s#r!9!k[ s#r!j[N!g +++++W#{X#zX++~W++!j[5!~# *X&X!j[N!g +++++EX#~#iX+{dX#ziX++~EX#^#V=!Z~X5:Z_!Z^#V"ZZ.~# —X*Z)))))[ )| ¬X*Z|}*["Z:Z*ZZw# X*[{ X X!#"["YCopyright (c) 1980 Digital Research, v1.3 !"h"h" h2j[2Z*h aY"hq#p##}o" h*}o|gYaZYZ+w+w+r+s4w#w#s#r<2h++*hs#r"h*h#"h*hDM!hx~4Z#~+4Z+F+Nq#p*h+"h/Z2Z=Y!+~O~#~G!>w!/x Zy*Z >O6# Z Y=ɯ ~#fo++ãY!h~#VZ*h͚Y>ZwZYZZ  Insufficient Memory$ Invalid I/O List End of Execution$Z 8 8 8SYSINSYSPRINT     $ ' '                   Sorry, CP/M2.2 is required.??????????*1234567890 No files. . k :LSX ABC ToDEMRTUV???? Files occupying k(k remaining) Which******k remaining on Drive : NewSWEEP version 3.0 - January 9, 1982by Robert FisherDePaul UniversityChicago, IllinoisCommands:A: Again. Retag files for re-use.B: Last file.C: Copy file.D: Delete file.E: Erase all untagged files.L: Login new disk and reset system.M: Mass copy of tagged files.R: Rename file(s).S: Space remaining on disk.T: Tag file for transfer.U: Untag a file.V: View a file at console.X: Exit to CP/M.?: Redisplay menu.space or cr: Next file.Drive New name or * : Cannot rename. already exists.File is R/O. Okay to rename?(Y/N)YRenaming ====> Old name: New name: . is R/O. Delete anyway?(Y/N) Deleted. Delete? (Y/N):Do you wish to be prompted? (Y/N) : NType A at prompt to abort.Erase ?(Y/N/A)Erasing $is R/O. File not copied. is R/O. File not copied. 6 Out of directory spaceCopying =====> Error. Disk full. Warning: source = target. Re-log drive. drive and user: 0123456789: #****Aborted.Tagging Total of tagged files = k (k) Total of tagged files = ( aaa aaa b]b aaa +Ԩbb b#b'b2b12 last;a if >  Sb   ]Zbbb  rb./0,-&')*+(%12]bbbbacb*cc4cc9cpc?cc?cTclclcc`clccdd#ddd,da:d6dAd6d6d6dmdzdmdddmddddmdddddmdddddddrdddd] eae eee>eHe>e0e>eaedemeneZoese|e}eZ~ee Invalid Format Item7fBfCfEfGfIf Stream/Record Sequen/Direct Input/Output Keyed Access P< $conffZfKfYfgfufffff fffff ffffffff.dat g g%ggg/g1g8g3ghPIP B:=A:SUBMIT.COM[V] pip B:=A:skboot.com pip b:=a:ccp.com[V] PIP B:=A:PROFILE.SUB[V] PIP B:=A:DEVICE.COM[V] PIP B:=A:SIOJET.COM[V] pip b:=a:cpm3.sys[V] pip b:=a:dir.com[V] PIP B:=A:D.COM[V] PIP B:=A:PIP.COM[V] STOP SUBMIT SYST.SUB pip b:=a:ccp.com[V] pip b:=a:cpm3.sys[V] PIP B:=A:D.COM[V] STOP SUBMIT SYST.SUB 6 $lines REM XAMN Disk track and sector editor. REM No warranty is made, expressed, or implied. var hl,de,bc,a_psw ; cpu registers dph ; location of disk parameter header block_size ; cp/m logical block size max_tracks ; number of tracks/disk seldsk ; bios select disk settrk ; bios set track routine setsec ; bios set sector routine setdma ; bios set dma address b_read ; bios read sector b_write ; bios write sector sectran ; bios sector skew disk_number ; disk number to examine = integer var crt ; logical device list ; logical device CR ; ASCII CR BS ; ASCII BS ascii_mask ; ASCII mask bit_0_mask ; mask used to look at bit 0 true, false ; true/false logical flags = integer var menu_selection ; prompt return = char var r1, r2, r3, r4 ; Real number for computations = real based spt ; sectors/track dsm ; max data block number drm ; number of dir blocks off ; number of reserved tracks wboot ; entry to bios dpb ; location of disk parameter block skew_table ; location of bios skew table (used by sectran) alv ; pointer to allocation table = integer based bsh ; block shift factor blm ; block mask exm ; extent mask alloc_byte ; used in searching allocation table = byte crt = 0 rem S-BASIC device # for con: list = 1 rem S-BASIC device # for lst: CR = 0DH BS = 8 ascii_mask = 007FH bit_0_mask = 1 true = -1 false = not true base wboot at 1 rem location of bios wboot entry seldsk = wboot + 0018H rem set up bios entry address settrk = wboot + 001BH setsec = wboot + 001EH setdma = wboot + 0021H b_read = wboot + 0024H b_write= wboot + 0027H sectran= wboot + 002DH rem dma buffer for read/write sector operations dim byte sector(128) var loc_sector = integer location array loc_sector = sector dim base char file_chars(11) fcb_name(11) byte_dm(15) dim base integer word_dm(7) based bios_return = byte rem high order byte of a_psw only location var hl = a_psw base bios_return at hl+1 0seldsk input "Disk number (0,1,...,15) ";disk_number bc = disk_number call ( seldsk, dph, de, bc, a_psw ) if dph=0 then 0seldsk base skew_table at dph base dpb at dph+10 base alv at dph+14 bc = loc_sector+1 call ( setdma, hl, de, bc, a_psw ) base spt at dpb base bsh at dpb+2 base blm at dpb+3 base exm at dpb+4 base dsm at dpb+5 base drm at dpb+7 base off at dpb+13 block_size = 1024*(2^(bsh-3)) r1 = ((dsm+1)*(block_size/128))/spt max_tracks = r1 + off function physical_sec ( sectr = integer ) = integer if skew_table=0 then sectr=sectr-1 end = sectr function skew ( sectr = integer ) = integer if skew_table<>0 then begin bc = sectr - 1 de = skew_table call (sectran, hl, de, bc, a_psw) end else hl = sectr - 1 end = hl procedure get_sector( track, sec = integer ) var x = integer for x=1 to 128 sector[x] = 0 next x bc = track call ( settrk, hl, de, bc, a_psw ) bc = sec call ( setsec, hl, de, bc, a_psw ) call ( b_read, hl, de, bc, a_psw ) sector[0] = bios_return end of get_sector procedure put_sector( track, sec = integer ) bc = track call ( settrk, hl, de, bc, a_psw ) bc = sec call ( setsec, hl, de, bc, a_psw ) call ( b_write, hl, de, bc, a_psw ) sector[0] = bios_return end of put_sector function ascii_character ( x = integer ) = char x = x and ascii_mask if x<32 then x = 46 end = x procedure display_sector ( device = integer ) var x, j = integer for x=1 to 128 step 16 print hex$(x-1);" "; for j=0 to 15 if j=8 then print ' '; print #device; right$(hex$(sector[x+j]),2);' '; next hex byte for j=0 to 15 if j=8 then print ' '; print #device; ascii_character(sector[x+j]); next ascii byte print #device next line of sector display end of display sector 0menu print print print "Drive number ...............";disk_number, "Current disk ";'7A'+disk_number;':' print "Sectors/track ..............";spt, '['; hex$(spt) ;']' print "Tracks/Disk ................";max_tracks, '['; hex$(max_tracks) ;']',\ "XAMN Disk editor" print "Number of reserved tracks ..";off, '['; hex$(off) ;']',\ "Version 1.1" print "# of logical blocks ........";dsm+1, '['; hex$(dsm+1) ;']' print "# of directory entries .....";drm+1, '['; hex$(drm) ;']' print "Block size .................";block_size, '['; hex$(block_size) ;']' print "128 byte sectors/block .....";block_size/128, '['; hex$(block_size/128) ;']' print "Disk size in K .............";(dsm+1)*(2^(bsh-3)), '['; hex$( (dsm+1)*(2^(bsh-3)) ) ;']' text 0,% Help Examin a sector (physical)......... 1 A Examin a sector (logical skew)..... 2 B Move Sectors ...................... 3 C Produce a map of a file ........... 4 D Produce a map of disk ............. 5 E Find bad sectors .................. 6 F Compute Block from Trk & Sec ...... 7 G Compute Trk & Sec from Block ...... 8 H Select disk ....................... 9 I % input2 "Please enter selection ==>"; menu_selection var track, sectr =integer var letter = char function group ( trk, sec = integer ) = integer var sectrs, grp = real sectrs = ((trk-off)*spt)+sec-1 grp = sectrs/(block_size/128) end = grp procedure trk_sec ( grp = integer ) = integer var sectrs, sec, trk = real sectrs = grp*(block_size/128) trk = sectrs/spt track = trk + off sec = sectrs-((track-off)*spt) sectr = sec + 1 end procedure bump ( amount = integer ) sectr = sectr + amount if sectr>spt then begin track = track +1 if track>=max_tracks then track=max_tracks-1 sectr = 1 end if sectr<1 then begin track = track -1 if track<0 then track=0 sectr = spt end end of bump procedure dump_physical ( device = integer ) get_sector track, physical_sec(sectr) print #device; "Track=";track; " Physical sector=";sectr, \ " Logical sector=";skew(sectr); if sector[0]=1 then print #device; " {BAD}" else print #device display_sector device print end of dump_physical procedure dump_logical ( device = integer ) get_sector track, skew(sectr) print #device; "Track=";track; " Logical sector=";sectr, \ " Physical sector=";skew(sectr); if sector[0]=1 then print #device; " {BAD}" else print #device display_sector device print end of dump_logical function hex_byte ( c = char ) = char c = c-'0' if c>9 then c=c-7 end = c procedure modify ( t, s = integer ) var c=char var x=integer repeat begin x=1 repeat begin print hex$(x-1) ;' '; right$(hex$(sector[x]),2) ;' ';\ ascii_character(sector[x]);' '; input3 c if c<>'.' and c<>CR and c<>BS then begin sector[x]=hex_byte(c) input3 c if c<>'.' and c<>CR and c<>BS then sector[x]=(sector[x]*16)+hex_byte(c) end if c='.' then x=128 if c=BS then begin x = x-2 if x<0 then x=0 end if c=CR and x=128 then x=127 print x=x+1 end until x>128 print print t,s display_sector crt repeat begin print input "(W)rite to disk, (C)hange more bytes, (A)bort ";c if c='W' then begin print "Writing sector to disk..." put_sector t, s if sector[0]=1 then begin input2 "Write fault. to continue";c print display_sector crt c=' ' end else c='A' end of write end until c='A' or c='C' end until c='A' end of procedure modify $page case menu_selection of '1': begin input "Track, sectr"; track, sectr print dump_physical crt repeat begin input "(F)oward, (B)ackward, (R)ange, (C)hange, (E)xit ";letter case letter of 'F': begin bump 1 dump_physical crt end 'B': begin bump -1 dump_physical crt end 'R': begin var s, c, device =integer input "Number of sectors to display";c device = crt for s=1 to c dump_physical device bump 1 next Sector end of 'R' 'C': modify track, physical_sec(sectr) end of case end until letter='E' end of option #1 '2': begin input "Track, sectr"; track, sectr print dump_logical crt repeat begin input "(F)oward, (B)ackward, (R)ange, (C)hange, (E)xit ";letter case letter of 'F': begin bump 1 dump_logical crt end 'B': begin bump -1 dump_logical crt end 'R': begin var s, c, device =integer input "Number of sectors to display";c device = crt for s=1 to c dump_logical device bump 1 next Sector end of 'R' 'C': modify track, skew(sectr) end of case end until letter='E' end of option #2 '3': begin var t = char repeat begin t = ' ' while t<>'L' and t<>'P' and t<>'E' do input "Move (L)logical sectors, (P)hysical sectors, (E)xit 7";t if t<>'E' then begin var ok = char var trk1, trk2, sec1, sec2, cnt, x = integer ok = ' ' while ok<>'Y' and ok<>'A' do begin input "Source Track, Sector ";trk1, sec1 input "Dest. Track, Sector ";trk2, sec2 input "Number of sectors to move";cnt print print "Source Track, Sector = ";trk1, sec1 print "Dest. Track, Sector = ";trk2, sec2 print "Number of sectors to move ";cnt print input "Is the above correct (Y/N/(A)bort) ";ok end if ok<>'A' then begin for x=1 to cnt print "Reading track";trk1;" Sector";sec1; if t='L' then print " Physical #";skew(sec1); if t='P' then get_sector trk1, physical_sec(sec1) else get_sector trk1, skew(sec1) if sector[0]<>0 then print " Fault" else print print "Writing track";trk2;" Sector";sec2; if t='L' then print " Physical #";skew(sec2); if t='P' then put_sector trk2, physical_sec(sec2) else put_sector trk2, skew(sec2) if sector[0]<>0 then print " Fault" else print track = trk1 sectr = sec1 bump 1 trk1 = track sec1 = sectr track = trk2 sectr = sec2 bump 1 trk2 = track sec2 = sectr next sector end end end until t='E' end of option #3 '4': begin var count ; number of sectors to search = integer var file_name ; file name to search for = string:12 location var count=file_name locate file_chars at count track = off rem starting track sectr = 1 rem starting sector input "File name ( only to skip) ";file_name if len(file_name)>0 then begin function match = integer var result, x = integer result = true if fcb_name[0]=0E5H then result=false else for x=1 to 11 if file_chars[x]<>(fcb_name[x]) and file_chars[x]<>'?' \ then result = false next x end = result procedure dump_fcb( device = integer ) var x = integer print #device; "Track";track; " Sector";sectr; ' ';  for x=1 to 11 print #device; fcb_name[x]; next x print #device; ' '; if dsm>255 then for x=0 to 7 print #device; hex$(word_dm[x]); ' '; next x else for x=0 to 15 print #device; right$( hex$(byte_dm[x]),2 ); ' '; next x print #device end file_name = fcb$( file_name ) print "Search for file:";file_name for count = 1 to (drm+1)/4 get_sector track, skew(sectr) print "Searching Track:";track; " Sector:";skew(sectr);" ";chr(0DH); locate fcb_name at loc_sector+1 locate byte_dm at loc_sector+17 locate word_dm at loc_sector+17 if match then dump_fcb crt locate fcb_name at loc_sector+33 locate byte_dm at loc_sector+49 locate word_dm at loc_sector+49 if match then dump_fcb crt locate fcb_name at loc_sector+65 locate byte_dm at loc_sector+81 locate word_dm at loc_sector+81 if match then dump_fcb crt locate fcb_name at loc_sector+97 locate byte_dm at loc_sector+113 locate word_dm at loc_sector+113 if match then dump_fcb crt bump 1 next directory sector var x=char print input2 "Press to continue";x end end of option #4 '5': begin function bin( x = integer ) = string var bits = string:8 var y = integer bits = "" for y=1 to 8 if x and bit_0_mask then bits="1"+bits else bits="0"+bits x=x/2 next y end = bits bc = 14 de = disk_number call(5,hl,de,bc,a_psw) rem bdos seldsk function var x, y = integer print for x = 0 to (dsm/8) step 8 print hex$(x*8);": "; for y = 0 to 7 if x+y<=(dsm/8) then begin base alloc_byte at alv+x+y print bin(alloc_byte);' '; end next y print next x print "Last block is";dsm+1,'[';hex$(dsm+1);']' input2 "Press return to cont.";x end of option #5 '6': begin var x = real var t1, t2 = integer input "Starting track, last track ";t1,t2 track = t1 sectr = 1 for x = 1 to (t2-t1+1)*spt print "Track:";track; " Sector:";sectr; " "; get_sector track, physical_sec(sectr) if sector[0]<>0 then print "{BAD}" else print chr(0DH); bump 1 next x print input2 "Read complete, press to cont.";x end of option #6 '7': begin input "Track, Sector ";track,sectr print "Group #";group(track,sectr), hex$(group(track,sectr)) input "Press to cont. ";track end of #7 '8': begin var x = integer input "Group number";x trk_sec x print "Track:";track,"Sector:";sectr input "Press to cont.";x end of #8 end of function number menu selection if menu_selection = '9' then 0seldsk case menu_selection of 'A': begin text 0,% To examine a physical sector use this command. Sectors are numbered from 1 to the end of the track. Tracks are numbered from 0 to the end of the disk. The physical sector number displayed is the sector number from 1 to end of track, the logical sect8or number is the number your BIOS uses to access this physical sector. When you type this command you will be asked for the track and sector you wish to examine. After you respond the sector will be displayed. You will then be asked if you want to move forward or backward from your current position on the disk. You may, at this time, specify a range of sectors to be displayed from the current position on the disk. You may also edit the sector making changes to it in an buffer internal to XAMN. And last but not least you can exit to the main menu. Each option is selected by one key press. The letters are F, B, R, C, and E. When changing a sector the sector address in hex will be displayed along with the hex contents of the byte and the ASCII character it represents (Period if none). To enter a new value type it in, to move forward push return, backward push back space, and to exit push period. Upon exit you may re-edit, write the sector to the disk, or abort leaving the sector on the disk un-changed. % input2 "Press to cont.";track end of 'A' 'B': begin text 0,% Use this command to examine and edit logical sectors. Logical sectors are the sectors that the BDOS refers to, the physical sector number may be different. It is the physical sectors that the BIOS access. For more info see 'A' above. % input2 "Press to cont.";track end of 'B' 'C': begin text 0,% This command is used to move sectors around on the disk. It can be used to move physical sectors or logical sectors around. The main purpose for moving sectors around is to allow re-formatting of a track on the disk. First, move the data on the track you wish to re-format to an unused area of the disk. This area can be found by  generating a map of the disk using another of XAMN's commands (Map disk, see also help 'E'). Second, exit XAMN and using your system format utility format ONLY the track with the bad sector. Re-enter XAMN. Third, move the data back onto the track. This command will start by asking you if this is a physical move or a logical move (use logical if you want to move CP/M groups around). You can exit at this point. Next, you will be asked for the starting track and sector number, the destination track and sector and the number of sectors to move. BEFORE each sector is read or written you will be told of it, if an error occurs you can see where it happens. AFTER the operation the program will move on to the next sector if all is well or print "Fault" to show a read or write error. % input2 "Press to cont.";track end of 'C' 'D': begin text 0,% This command generates a map of a file showing all the CP/M groups assigned to that file. It also reports on the directory sectors that contain that file's FCB. As each directory sector is searched a report of that operation is made sector by sector. % input2 "Press to cont.";track end of 'D' 'E': begin text 0,% This command generated a disk map showing allocated groups. A 0 is an empty group, un-used by any file. A 1 is a group in use by a file. WARNING: this command makes a BDOS disk select call. At the end of the map a few groups that do not exist may be displayed as empty. This is because the disk map is made up of bytes where each bit in the byte is a group, the last byte in the map may not be fully used up. At the end of the map the last group number is given, use this number. This command can be used to find unused disk space. % input2 "Press  to cont.";track end of 'E' 'F': begin text 0,% This command is used to find a bad sector. It will ask for a starting track and an ending track. As it reads each track and sector it will report its progress. Any bad sectors will be reported. % input2 "Press to cont.";track end of 'F' 'G': begin text 0,% Use this command to compute a group number from the LOGICAL track and sector. Remember that logical groups start in the directory, NOT in the reserved, or 'OFF' tracks. % input2 "Press to cont.";track end of 'G' 'H': begin text 0,% Use this command to compute the track and LOGICAL sector number for a given group. % input2 "Press to cont.";track end of 'H' 'I': begin text 0,% Use this command to select another disk. XAMN commands are in reference to the current disk number (see the display above the 8menu). % input2 "Press to cont.";track end of 'I' end of help case statement if menu_selection=03H then stop goto 0menu  1 |2*""""""""R""":["8p*."8"< DISK UTILITY ver 7.5+mods 10/23/81 Universal Version (DUU) Type ? for help Type X to exit % !~G3##> !3 YY2r>2~212>2!"zͪ~ ;#c2#+s -ʲ =<>I#!?'A Cʦ D EiF. G4 H LMʄN(PsQ<RZS4 T4 VʕWXZ~/B2<? 2<+++ Out of memory +++ (may be due to many "<<" stacked sectors) <Disk Information: Tracks: *#< Sec/trk: *$< Grpsize: :'>": *&Y%  :O2zW*~#|W"~*~!3z"~|:2{ˆ @:ʕ> x•ͪˆ~´͈̈O% ~ (;(c#AOy2: |^#V#"!~#fo*1*|2͙ *1"!"*+#DM*BK:=͊**͍ ! xL͊% ,:-:.͟{ʥBK>-͒́*)#}½|́ͪz{ʰ å Y* 2|:~> >(͒~2#e>.͒e2~~> 4>)͒R< ++FREE++ :2Y>:͒2~# s~y|͒e*+#"*~~ʷ_#~ʷ:*ʫW#¬ *+"|‹!:><*-!":<20=2"2<++ Can't save more than 255 sectors :=!>2:|>>*p:!4|!"2<++NO "<" SAVE COMMAND ISSUED OR RESTORING MORE THAN SAVED 22! ""~#ɾ#ɯ2ͪ!36 Ó % 2UG~{:h*z} 2**͍͙ !:Ž}2~#"z% : {©!ͪ ~~    ~͒,¬  **͍é< ++EOF++ YÓ : 2<++Can't dump, no sector read. 2<Use G command following F, or R or S following T ~;ʌ • è `BK ʨ ;ʨ #``i}22:#A ~}2}2{ #} ͪ:#H' 7~ ~ >.͒{ #} 7Yͪ{« Y{« % ~;C G E TZ Sv G *V>2Ó z*$͍2͙ E *1**$*+:'G}2:&G¾ "͟*)V"2 ͍2E bk:&)= :o*$ *$*1 #!"!~ ; \1 1 *1"!"*+#"͊ **͍!]# ?ʐ ʐ  #€ ͙ K }`2o"! 2>D2#2ë 2<++FILE NOT FOUND % >2*!| 2<++Can't continue F command *+"|ʽ } oz c ~#.` *e + ` ;` c#1 ~ ;#.> g >?g ~.#:`% ~ ʓ ;ʓ z z“ **͍Ó :`% ~ ; z*+| *| *#"2<Out of bounds  +"*$"z Ü *#*$? *#* "!"K *1*w <G=*DM>:͒:>,͒< T=*<, S=*<, PS=*Y~c#`#- `#BK ,HA~ ; ~  ͒"@#y * ~ ;#~ ;,"|͟{yH*|~ ;͍2<++Can't read or go +/-: not positioned Position by: Track then Sector, or Group or to file name via F ><͒>>͒:*xy 0Ò  |{0͒> Ò>*Òͪ~T͈W͒#~=#͟zu{uƀ_ɯ2<++BAD DISPLACEMENT (NOT 0-7F) ~#@>~c ;,->#Hʭ0:AG0))))oí#"ʟ~c ;,-#0:0bk)))o|gT]cH0:$AG$#~-T+T:_~#͟-j:_~z/W{/_>:͒!3͈OI ʹ1 w#͒|+>*͒|w͒> ͒!3ɯI+y~͒||w  $9|<^C Ignored - Use X command to exit to CP/M6 Y!3~ |͒#;>^͒>U͒Yr> ͒> Ò`_OlO «> ͒:› Һ ʺ :y >2 :<2:*V"BK*1"*`i2:L+L* :%Bg:L&i"DMɯ2<++not within tracks 0-*<++ >22<++READ failed, sector may be invalid++ :2<++CANNOT WRITE UNLESS READ ISSUED C %2<++WRITE failed++ <USE ^S to hold printing, ^C to abort it Operands in brackets [...] are optional; "xx" means hex; "nn" means decimal. Where hex is the default, enter #nn for decimal. Change decimal input to hex via xxH (or Hxx). +[nn] step in [nn] sectors; -[nn] step out [nn] sectors # print disk parameters for curr drive. & # of saved (via "<<") sectors =sss search for ASCII sss from curr sector. Caution: upper/lower case matters. Use for hex: <3b> for ";";  To find "IN 0" use: =<0> or for "(tab)H,0(CR)(LF)" use: =<9>H,0 NOTE: After using "=", you may use "@" to refer to the displacement of the match: =LIX;ca@,LXI;w would change LIX to LXI @+xx and @-xx are allowed, too. < save current sector into mem. buff. (Resets memory pointer used by "<<"). << save current sector, bump mem addr. NOTE: this buffer is at 2000H, so you can exit DUU and get at the sectors. ALSO NOTE: # reports # of saved sects. > restore saved sector >> restore oldest saved sector, setup for next ? give help A[ff,tt] ASCII dump (hex ff, tt, 7F max) C Change: CHaddr,byte,byte... (hex) or CAaddr,data... (Ascii) Allowed for imbedded hex. or CHfrom-thru,byte e.g. ch0-7f,e5 or CAfrom-thru,byte D[ff,tt] Dump (hex+ASCII) E Send erase-screen (string at 104H, FF ends) Fn.t Find file F Find next extent of file Gxx CP/M Allocation Group xx H[ff,tt] hex dump L Log in drive Lx Log in drive x M[xx] Map [from group xx] N New disk P Toggle printer switch Q Quiet mode (no msgs) R Read current sector Snn Sector nn Tnn Track nn V[nn] View [nn] ASCII sectors W Write current sector X Exit program Z[nn] Sleep [nn tenths] /[nn] Repeat [nn times] Cancel a function with C or Ctl-C. Suspend output with S or Ctl-S. Separate commands with ";". Example: g0 +;d;z20;/ would step in, dump, sleep 2 sec, and repeat until control-c typed. See DU.DOC for complete examples. y#x}/o|/g#ɷ|g}o }o|gBKx! T]x :($^*.:^#"$^#"+~#2&~#2'^#")^#"-^"1!~:'w*) ""w DEVICE LST:=LPT PRIMO I 9::;;<<==>>??@@AABBCCDDEEFFGGHHIIJJKKLLMMNNOO