IMD 1.16: 28/05/2007 16:46:33 -FOG/UTL022         RECOVER COMRECOVER DOCSUBGEN10DOCgSUBGEN12AQMd SUBGEN12COMWHODERE1AQM!WHODERE1COMWHODERE1DOCCRCKLISTCRC+ .=========================================. | | | SUBGEN - The .SUB file Generator | |  | | By Steve Pritchard | | Solutions Canada Inc. | | 83 Cummer Ave, | | Willowdale, Onta-FOG/UTL022DISK DOC)*LCAT COME$%&'(OSBMDM76COMM !"#PASSWORDAQM,PASSWORDCOMPASSWORDDOCRECOVER AQM.  establis a operational environment. Finally th Mississaug SYSO Ju Newel onc remarke tha ther i n wa t 'Delet everythin bu .... unde CP/M SUBGE solve thi proble b allowin NO | '=========================================' Version 1.0 February 13, 1982  optio tha invert th fil selectio criteri a th las moment Thu t delet al bu .CO file o th defaul disk on ca us SUBGE i th followin way:- SUBGEN *.COM - ;generat SUBGENv1.0 - User Documentation Page 1 HISTORY ------- SUBGEΠ v1. wa writte th weeken o Februar 1 afte realizin tha ther wa n convenien wa t perfor se SUBGEN.SUB SUBMIT SUBGEN ;submit this to CP/M OPERATION --------- The command with which to invoke SUBGEN is:- SUBGEN [[d:]afn.ft] [options] SUBGE genom simila operatio (whethe trivia o complex upo grou o file unde CP/M Sure FMA ca generat lis o name bu i stil need t b attacke b a edito befor an usefu wor ca b don wierate fil cal SUBGEN.SUB I use th comman lin t obtai th filename.filetyp searc mas (afn.f portion an als som optiona ru tim parameter suc a th "NOԠ file inver option Thes parameter art th NAMES.SU fil generate b FMAP. The again WORDSTA i no tha goo a changin everythin i positio t $1 And eve i i could ther ofte need t b heade an traile record writte o th fil t  use t selec th fil name of o th specifie disk Thes selecte fil name ar the sorte int ascendin sequenc an th use i notifie o ho man file ar selected A thi poin promprio | | M2M 2E6 | | | | Copyright(1982) Steve Pritchard | |   recompilin SUBGEN. Specia processin i don b SUBGE i th characte i precede o followe b period Thi i t allo fo th possibilit o doin globa operation o filetype o o  nul lin terminate th skeleto lin inpu phas o th program operation. Obviously par o th skeleto ca b command tha operat o th fil names Alternatively SUBMI parameter ca b i systems Th algorith i mos easil explaine b us o examples Assum tha th curren fil nam i ABC.COM Thus:- era @ => era ABC.COM ;simple case first era b:@ => era b:ABC.COM nclude a variou point withi th skeleto i i i necessar t generat multi-us .SU file. SUBGENv1.0 - User Documentation Page 2 SUBSTITUTION FORM ;another simple case re@.old= = re ABC.old=ABC.CO ; suffi cause f substitution only di *. = di *.CO ; preficause f ULA -------------------- Durin th generatio o th .SU fil fro th selecte fil name SUBGE copie th skeleto line(s t th outpu fil onc fo ever selecte name Durin thi copyin proces SUBGE ; substitution only whatfo .@ = whatfo .ABC ;suffi ha priority OPTIONAL EXTRAS --------------- Ther ar currentl fiv optiona parameter specifie i look fo occurrence o th substitutio character Whe found SUBGE replace thi characte wit th curren filename.filetype Th standar characte i th '@ characte (whic ca b easil change b  th FCB positio o th comman line The ar specifie i an orde bu mus no b separate b blanks Whe specifie the inver th defaul establishe a compil time Th standar defaul i a 'Skeleton? i displaye askin fo skeleto line(s int whic th selecte fil name wil b inserted Mor tha on skeleto lin ca b give i whic cas multipl line ar generate fo eac fil name    th matc result ar reversed Thu i i possibl t creat fil o everythin bu .CO͠ file b searchin fo *.CO file wit thi '- optio specified A mentione previously th 'P optiona occur afte selectio an th possibl inversio (Se '- below) ie Yo hav th las say C o ٠ respons select th fil whil a respons reject th file H Thi cause Header  promp occur afte thi inversion (To har o th hea otherwise). L Thi optio i use t contro th loggin proces t th CP/ consol durin fil generation Th standar SUBGE ha tpromp t b written I i use t writ on o mor record t th outpu fil befor th bod o th fil i writte usin th skeleto definitions N fil nam substitutio take plac o thes headehi turne on Specifyin thi wil fli th loggin mode Th SUBGEN.SU fil bein create i writte t th consol afte substitutio i thi optio i active. EXAMPLES -------- Note:I  records nul repl terminate th heade recor writin process. T Simila t th Heade option th traile optio allow on o mor record t b writte afte th bod o th file. thes example th UPPE CASŠ represent use inpu excep wher obviousl no use input S i m abbreviatio fo SUBGE an S i m abbreviatio fo SUPERSUB. 1. Rename all .BAK files on the default driv SUBGENv1.0 - User Documentation Page 3 - Thi optio invert th selectio process ie afte doin th norma CP/ fil matchin algorithm i thi optio i specifiede to .ASM. A>SG *.BAK Invoke SUBGEN SUBGEN-...... Normal identifier from SUBGEN There are 10 selected files SUBGENs msg Skeleton?REN @.ASM=@ Refer to substitution rl of excep fo th 'L option Thi ma b differen fo th SUBGE yo ar using P Thi cause th selecte filename t b writte followe b questio mar (? durin th selectio process Thi   iste befor ever program Yo als hav slo dis drive an wan t avoi reloadin PI ever time. A>SG B:*.PLI H Invoke SUBGEN with H option SUBGEN-...... Normal identifier from  SUBGE v project Renam al existin SUBGEN10. component (DOC REL COM SU  an whateve yo hav forgotton abou t thi ne nam o th drive. A>SG B:SUBGEN10.* Invoke SSUBGEN There are 22 selected files SUBGENs msg Header?XSUB Invoke XSUB for PIP Header?PIP then invoke PIP Header? Null reply Skeleton?LST:=B:PUBGEN SUBGEN-...... Normal identifier from SUBGEN There are 7 selected files SUBGENs msg Skeleton?REΠB:SUBGEN20.*= Mak us o substitutio rule Skeleton? Null reply AGESEP[P60] Generate page separator command Skeleton?LST:=B:@[T4P60U] Generate PIP commands Skeleton? Null reply .... SUBGEN would log at this point. ....  .... SUBGEN would log at this point. .... A>SS SUBGEN Now do the rename SUBGENv1.0 - User Documentation Page 4  A>SS SUBGEN Now do the lists 4. Compil al PL program o driv B ru PGMLINK.SU  an hav suppe whil thi i happening. A>S B:*.PL Invok SUBGE wit option  3. Lis al PL program o driv i uppe cas o you lis devic wit ta expansio ever columns Ever progra i t star o ne page Yo hav fil calle PAGESE tha yo wan l SUBGEN-...... Normal identifier from SUBGEN There are 33 selected files SUBGENs msg Skeleton?PLI b:@ Generate compile command Skeleton? Null reply Trailer?Sules. Skeleton? Null reply ..... SUBGEN would log at this point. ..... A>SS SUBGEN Now do the renames. 2. Yo ar abou t undertak th  atio wher thi woul b useful. SUBGENv1.0 - User Documentation Page 5 HELP ---- SUBGE weigh i unde th desirabl 2 mar an s wa abl t imbe  drive Yo wis t confir eac deletion. A>S *.COM -P Invok SUBGE wit P and - option SUBGEN-...... Normal identifier from SUBGEN mast.cat?N SUBGEN prompt - ters bu remindin HEL function I i invoke b typing:- SG ? ɠ hop tha thi i obviou enoug fo somebod t tr wh doe not have this documentation package to tell them how to get HELP. reject reply mast.bak? CR means Y too. .... etc There are 2 selected files SUBGENs msg Skeleton?ERA @ Generate the command Skeleton?  DISTRIBUTION ------------ A mentione i th progra listing thi packag i place int th publi domai wit th usua conditions - Fee fre t distribute but it is not to be sold for prof Null reply .... SUBGEN would log at this point. .... A>SS SUBGEN Invoke the command. 6. Sinc SUBGE use th Rea Comman Buffe CP/ functio i it. O m par i represent anothe smal installmen t th deb fee hav amasse i pickin u s muc goo qualit softwar in the public domain.  ca b drive b XSUB Therefore i th righ situatio cam along .SU fil coul b use t generat .SU fil b mean o SUBGEN wil leav i t th use t fin th righ situ  muc goo qualit softwar in the public domain. Ӡ PGMLIN SUPERSU allows SUB withi SUBs. Trailer? Null reply A>SS SUBGEN Now go have supper. 5. Yo hav t ER al bu you .CO file o th defaul   EFoGHIJKLNMOPRQTSVUWX[YZ^\_]a`QEC]]Wz:~F\ +?M{9^N{8Wu#Ԥ+ޣ>V-8>':lq 6HV*==Y[۞zMJlԺU(B_`Wbҳ='@Jl)R_Iw,sҤIh$Eq(W"ܠC=fKrګuNQ?aψqu۳ڦKEY׵=g[퓃۳q|rp[pG+' O}puX+z'k@Cċ8&#K לzd5g?k@*G %4jNEj=P%OzJR91[]V8PJ땸);DDġq@Z Vs(>TzTePNoqp%{BM^=*6ԤLJCE(^N9S޴%BL"Q׹[89q =Ȳ= #c&gā8rj)+Q);P=5TYcj ml*Tl3ڣ7f>*Sez*=*umJ5q ZsM{j>ޣPNMr4ԴWh@l٘ gu (YIOYg6?hSqhx@9z4>VO`'g5'1q .a9Ks^X%:LO庍]A|a|0gy&CKYiPٔJ2Q'v]SUBGEN12.ASMb ! #"$%&'()*+,-/.0214357689:;<=>?A@BCD`5q ^q9D0Vz;`%:lhg/؉WA9G\o 4vG]vp@+ӎ>~jNHJ,"9K_NOc  Bx>?QG`(ľ/!<kv'=*9G鿝%{dc3b,۠Kߢ&C Q@*]=<|-O_HwWT";x/ !qh0C%"9%:F 8{[6]bkāx[6h!ۼ~gq <`@q$]rm\5'Iq v>hԶlp,āωc$&vһ gq%Ν}Rs*G`/zvy{>"oDSޡ~Xʗ^NQ?a^?ϯ~,Bn6(j*u4Pj_=lYͩ Tv]>&M,WzcT:T?x[6(,ľ/!]jY> 4B9F'c;$juE4K7Xђ^+T&>(ެ|/i$i{[dާ?_|P.x G1P^?ϯv~W:UzTr%}8Q}5JN,+}8^?ϯa)={8Z"/zjuedrBZ>?*'}~ED값ӟiu;űByF%?ӟibo@}68qH8Y;( jAxv{t]b+7;^RM|Xb4Gq/`mK Ll!ۼ~4^=7_|^&} tWA) LŸ鈽-/b7rl)YO^~zDBslTv+9GMY؉}bHx9} +z{V?6GN+Q5j{6uX=* ڿ(}ʉ~|_}q5գG;+٫u4uf9׏+V[=J+٫&rbWD_jTӎ>~]x7țRrbWD_F55VyyӞW'ˉ~|_}Rȉ;xB9J^],Vw_[6w8[A;/"bߗޖa|6h49j?~,\*ޣ{>"ʥ`w ƸK <79ẝX}?a']pg/\;CrzJծ 6uز;F# $vsCL=*1kj:BUsރz%v Ah}Hnޣj1lG`b  aG{y8Gm퐵ޠ a'=)AvZf?Rv 5PG%vͱPJWrzbߗ=7hhUH3bX:PG$P3b+7&s^o0mЪ4ppN;d5p'! ~T55T}_Bx>׊O;HޣG;+٫5%spm?Yeg?$QWW}_?v6-2VjEu8gf?Eز;Fsbۣv6k+^;4ҠT ш-pb]Wt:@9&}}cb?ea=2]jĖX8q8jSJt:@>jׯ##vzv/U2ݦHV vMl[P],Vw[}T_{e7kGDlQ~˂ ς^5v#qt.;@|w|'ֺ|{&?4>s St-`Rڡ?,#p}rQD|ޟ\d|0cN|u?K\\~wu?KW qx1>q:;H(n<'-8!vH0` C%6F@u/s>~ F1>XJ;,O8:9MbIŷ  mKX$Db?Ge5-bZt/xgf#٪޺4H*Tib+7Z"/-2Vԛ}ڡgvz"sLlEY"sL.E ;}w/H'NlUn@ssM`@<m[bh]:d]J'=Ŏ-bbCЕ]{eb5JOlQ~˂;6w Eoq ς焵> &X/wc;;2鶙 %b?KvH8Yhu;Їfeā{N> &!q 6Dq-9z7bxX}?[yԾ1E0ޠ$ʣľo0bo1\;C֢>(Q?-c4'6;Xav<^lңƮwl3D%_@2yx^X/?=vƨ)Yjdz̈/b NlU^;?)NPMMOlh"* GM{SKJNAC@[<'h87x,!%i7ޠrL,X}?7ޠ"} ~bx oPI#m[QoV;_ JT~,TҼ~,5eu,'7H)=f#T}~EK!'?7+׊:kW[T'>_+>-Oc;dcԔU52=f~'6Ъhb ۟&0z !oJ'AI OzBbߗ6q'Kϟ҇c/}8*) ~b G7F% |[<vHNŸ}bHCĹ[`5VYs:Fs#.5۳tu-kmKmr)8w?=m^I(>*9G-j-T.Hl!%z!l}_B~MDiotiP=}bH-}V Ķ8w/X^ B;dƻ>t> vQ ;̦Ʈidi$vբ{qclف}_BxByO.ô7UzOP{ރ؊z=O.2K֧#} a$X/O.JÑ:PI׬-Ew/H'CQ7/!Z ~=؊z!97ʤ-IIZ]ܿΈ}%'va؊zϽ՜4;x9?qz/wO$%j:Pf#ľacVigӞwOJaZ:+WI{[d-2^b/ jӛJaTGm{!:BQmځG Ae--l\^ô7Ufn-bZt/PJZ={Tzɼڡ9YG=jWbo1KXHA]3b+>fIbo1f+"bo1X ,@?JzTb+XKDy$Xu/C6FMjwD]Ȉ}_B8xYP5ӞWYFm9&ȼ{O4{z&jӛ{zʣj_O`'s^7R7c;jT&MwO$vH8Y`# Qdb ݟ:ءRJ,سFJO`'x[d^z[̫Th uЃwY^r;J>#v~ ء^#Ffbf$úT&5==L؊zCx}𜧇@ls}zF[Ԭ 8w -;/_vJo>*tp̈-b7tj^oc;QYF.!Vz;d-($. *Pb퐵ÑVoL,9,a tMA?-bzӮKlۣ sB[QoXJTKߏҟvHTG?طnI͚]^  GM"sl} ^;v=4~;MBlEާIOރ%MIlE%MI|hVOK)wl{{6u'ā8,S:ޢ E]Hr-kOm\ۢ',wL-Tm՝OgQTp[6hrAT b;*GVT ?%+lh@QOkih<%q$ZvhNlfTGoS"E b+},Tʆ&7,N|0x%ġ ]5Ea>}A@5^m9Z6K=0 f ZW_v@zjZW_vxQRhZU6}/;~=aͦ׺c?ZW_vxW!lNh(>*nhVe$+P%j} uУ?@}+o;hP鯱AGKJpTbfKr;LK_-LPbԜB:uX;5jAo̱$kHu! ȼ{O&vhౄ88Iž~թo!qD0Az@;L;u^wG>y;d-@5?2[gGVo[6ߗc;4ҠTgukGJk]-ӮKVC֢z9:OOůNC֢jl؉}_B8Z"VKt1vʤkǯ}. NlU^][vPe/vץz Q}l734Ka52Pm*5]{,v*>'6l5#nw]&R~˗QM;5-L'teޣE5MibOロCuԦ?2[;ipD0tvnJ2PI@|l#D=FC'6>hqD0t/;HY- BFM}bơg- zݼvPӎ>~]d'NlU^{vQ!FF}?KJu⃹k=g-$E|?KE,Vwj?e0D!%G]Ҡt{XݩqtvAe- ќ8]ҠVLl Ah} եۣQT,7X{5v#=<}H G-KyCaZ6'4YVt##|/;dt{Wbo1(4* C֢R5g{T;X}?!ojR@kbo1X}bH}?=r|}ľ/! {LlEJˇ؊z$'} acb+\?YFg}:b.EiKڇ{E|vxpvψ4~XBlEʑvFȸ#%:97K$PQo =J o#vhGzB>8C#k>~|tډ4~h;;@WJji'sn>C6tWO =|jݺmWkg6O@|?s]Y>TSZ=~XAPMM>^}_BxByO.?YF[QoEľ/!Y%!rb ?(c;Ǟ $7y!|?-vV{>-d/v+%Oz( *9G"NXyԾKGq ORۂV:>`nBL<x"NC֢jl؉b.J>ŎJyE,VG ,쐜LWdN<x,}};4YV@+uľA|a9RS.T%_:2=io<^`՜҇&} hw|a5Ga)=Ҡ{aHu! vbvZQn*OztR}+;N KgE;9D&{O4{zN*;x{zths}_B aI{>""|.smGoӬ@SO`oTN==T:4˥wOӥzEᤉ~]# Cdz{U+Cdyc'|/;2 QGmtaB$>1tbjM==  {%vĐ8".!꓃׍;`3Beya{yU@ {|o1K!rO q!r>ED!r}}[QoI {LlE%!r?/b`ϟu Qn|*&+9s)TOYǞ_%&\>Vb)o٦KGlE!7x/0-wlA;K`'vbVmLw9 * T[bu[Qo|_&} hw|.ңTvPGv?JXyԾ2ji's^쐍QS1ff_<(5j7__k9KGG5?<^tVml1hyAbcb7x/0Av@lEJl՝FF,/9ms,!} hw|GK-2>!vhw|.b`Gϩ\u-kuVYε#s*\>Ŏls,fȲ:R%'v՟\tvZQ&|}^&>XbEYs$ JblҠ{[dާ/b/ >XB}z>1$N\瓃ۂ+z۬vhu#+ *POGl!ۼ~_&z^}_B8Ax J?c; YT?v]MWB|<^q:;C4(T;ixRJa 4J!q!r뎯.@ {>uWb.vLlQ/b+w%?zz}bH=nB,u?KLW9sAey%ūāxŊzmWz֧#=.Q}!kG=~b+ YEʣU'bo1G{[dT|u%c@L {A+W!} acbo1K!r7HC@l|YXA@O?W4 KЈ7HŸ鈝Ʋ `ϟuYRWM``]j%DmEn^%6qǧ\1E,Vrѵ!:R%v[yVE],Vrѵ[yԾ1jJVR~ב*?Ego; F)z[Qon~wlHW[t,6+T;VBm9&vbvZQ=zjg?cb+ڟBm9&򨍿 Gm{{[d1$vXԴl&T.I{iϫdv@?>pG{iϫ*nˢ!hwV(ң'v-OŃf=2]S R ;EG_a2P3P;ХAws]쾛CЕ:ljYiDs0D1qewaĐ8{ :|$go.}[6_9?Vԛo4BLŸ/b7x|^0>e$}~EDc\Rq|N)%T>hR5HLα$uK˳My&} uC ls,kbߗ^7 [69bߗ^7 [QorhCױ<ٔ7ib_jA|7D1mpnVԛ?_DnN.L}uxD?7.vlERuNl^ի:Ց۔&vr{аU.@ ?nJ-?vP͚My&v{Do@uCòz#} He $+;0C;CM6vb/ Ŏ퐵裤?JzTb+WbhTGLuIE~Q|+Q-2vƨ)Y;R]G=j5+-'V4x/0-؊z=äk*7f2Q'҃Jytxii^ocḇ?'ʈ}+b/ L  ~r :oO亟?ZeIl'k]O⧇Y ;<=ܞ=BvlGJ+;4jJ)=H`o+<;فJG;?CG+r6;PI=~⧇~hyW>G0וH '=%~z(48W.oWTo{ރ!>`R^`cyw`K%?<l/r8~,;RI!'OH\h^?!zyAe@{h}̈^-CIO`/g]HBbѽ%vw:B1K.AKUȿb$~r׏p?K\`}rQObJ-T.PNw[iv@Ou ;5k4;d-&&=z^;9W|>׵':bk4RZOdn~wn~w\sVk%u"u9͡ԸVEl|0g)N|xnmxY}, ];$.L}u4RZOdn~wn~w\sVk%u"u9͡ԸVEl|0g)N|xnmxY}, ];$.L}uv8G? ]ʣ7%r;4lʛK_nhK-h4zY4Dbiϫ^"s^7__DNvi5&MC'6;hgӞWYM/IFnhKˢ!hv膮hgӞWTUjHu?~PuF|7D}VuͦIHyXB%V_v}etZ`G%āx2^`,x}.  ~O?#:%#ɯ*0>.0>?? O>Y yn'"* ~@z#}e#>.‰Ñ++‘yʡ*Ly«>.yʽ*Ln_ ~# **w#"|=: it finds the character @ (Try a . suffix and prefix too) Options are:- P = prompt on each file for n, y or CR H = generate header(s) before body T = generate trailer(s) after body - = invert select logic L = invert default logging option $!9"* >> WRITE ERROR$[~ 9#0> > ~ U#L!">6#=e^#V#N#F_ #…y>2N#F#^q#Vpr+sɗ2ͷͷͷ>00ùx0:>02 PHT-LSkeleton? $Header? $T 1 5dv*|*ͦ[co* :]?Q:^ QF*!] 6?#\\<͆f<ʎ2 >> File MAKE error $**""  s#r# +|¾*"+|2*+""|*> o##*+"railer? $SUBGEN SUB>> WRITE ERROR$[y>2N#F#^q#Vpr+sɗ2ͷͷͷ>00ùx0:>02 PHT-LSkeleton? $Header? $T|:*|}1<*͛QG!_6 -There are $There is 1 selected files $:!*" " / ?:0ʫG1* w#—6 #6 #" x* }* 6@#6 #6 #" *MD*^#V#\ x:!: >v.VPASSWORD.ASM[  "!$#%&'(*),+.-/10243657o89;:=<>?A@BCD]!:] >*2]2e**6?#1w#yl ||!t##N2r >> Invalid option=x$+~w=* {z=!o":¦'** w#¯"*#"/ ?:0!1G~#> > * EFHGJIKMLNOPSRUQTXWYZV{߱2dE2Ǭc1+kG9^;heY񎖼#y%$t{+ҹc1k?q˾mS:O9Y)I j^ژMq˾wrocSUBGEN - February 24/82 Version Copyright(1982) Steve Pritchard $ Command format:SUBGEN [d:afn.ft] [options] It will generate SUBGEN.SUB from d:afn.ft file match under control of skeleton obtained from prompt and will substitute fn.ft where ever  (Eĝh@/niLpGR/NS*qoߏiL9$I<1[)s./mLtm!$ZN?ўJ3tsh)wok|:& ZT~N5/cYErƬc pGRY(:aD|7%q˾ߕ8c! T=aިLOIniLH@=;mL9$;W\ԋ@%wٽD}[IY8DdKD~ —|G7(onok}NVJR>)}8mپM{vmhYǬcV&,]Yq;ƀ|:ן/QΘQi c ƀ1) "C,"CG1[0 2ttw{3 2ttWd:&- i>o_ {3 2t,Ǭc"wpr4&UKԎL5)OwKcn&9@MT7))N9n0&v@eaick$-r%vBQh_RsRҘUU4s*r jRD ~理<&4tuݾEwJ%y߾Әz!@-}K1IZJ0&4tu踦{vi/h)G NxN9cdn>@%7{JI9ۍ1dБ ̿.靘;WK]=3ӹBmwb\&9 (v̋ (cXBd`EGuL#uc. 2tc1!Ņ=u:]\㱪@=;lӅ'Ei'Tt})wlr]' |156]@uþEm0fM|?[t/azioNN̟nc͢~vbZc1E 2>'+%1rƬca9$aS*qwwރw c7gϨݱ.7j^ژsIPIۘXB%⛽ɧY;UEj;1w<]w9c (1&U}ҀڑI+niL9$IۘUMqJ7{\[x$sRJ7{?&e1&xHq=:&v@=a1˗cO]^E;^ژc_5u77䵜+$gKH J ۘ`p_RGsm}vŘ%V@%=1oEnc7Pݰ.c |1+P}%hD|(c7 P;4&-`hck덛pT}QD}[} =]w;6.8tj(}'GcE.6.tQ1q=*$P339x*[\ԋ@%⛽wpr4&lT!-*Ԑ3f3ZqT7wJ%ysc{P#2wL;vsօr߻1A7`}"8g1f͟| Sئ NW7셧?˜8dXt\n}{Eǵ饽;1w4fIΖ2PFlu77ı=;Wwcı=c{luYiyL۸(0fӟwc@ElL\Ԗ;[dq˾.6fD?+Ҙ! B}?%1A"ޞtMĝ KFed~JOwKcn&9@;W\ԋ@%⛽wpr4&U[׎ݴIǧr߻1A7`&yoc T7))N9ئ ck"ϊDئ c<Vޟ7y7YY}wt\]ryc1k~Ɠ"7z[xJIolY}7y[Ia:f}}NVJzfQsRүQb:fnG>[}sߕ8 շ5q˾?96|7ς֘]9ۍI"n4+ߟ'Hc7y[㝜Ƭc^]d{Vk_"Oec'Eܲoo7^/zkok<)}Yx  %{G멤xOvmOqmۘYhϟph㼭񛚾"n'ɶ7y[cc15rwD|7y*)x$5WOo&"Dyic{j9 GsmyK>:r=r]'lLܒVoa.Ƕ g㽍 4H@%⛽ɷJgL N/./*ӘHj Zfϣ7nPM쓴P1&Hq jRƬc{Pr9TuyoZyck IdƓ}NVJz7*5m'Eܲ1kva)8gLztʦ픾y*7Y꘸%V]Jt{͵}{GNc<ʁ~q)~u4&#F6Pfock'+%=H,BΘuL"2tzNؘ BN9/qvcLyqD7Tݜi?vnκT{4&lTR|6&#-~"DValӅlӅ1qʱئ 327 Ԣ'Eܲ1-wx4D\\ SrwGsm}{G1uLJI sREX""CGG넡.D9Y!95S]^'+% Hj,_=D|7yDY>mLܒ@uÞGsmIs 2tzNؘik=]w&Km?7X_.6&|`*MƞljQΘMNN~QD,PSw4{͵uLtmAs_>I m\YǬLJo[Ҙhѹ. mOqmۘYhϟph㼭񛚾"n'ɶ7y[cc15rwD|7y*)x$5WOo&"Dyic{j9o[Ҙhѹ. mOqmۘYhϟph㼭񛚾"n'ɶ7y[cc15rwD|7y*)x$5WOo&"Dyic{j9/rw4Xt\Rs]Z|s-y$ux~T✿ok[*wJ%nzw}vŘƢ^l.IZ[uuLA3~TnrN9c| Rqu0T7%)8gLʨV6lݗSR-yluwgX 6PyoߡwaKn'/3&q-w[  l$##6*j$||#++ No File Accessed Permitted until ASM Closed ++ ç |#++ Unexpected EOF ++ ç !$~ Fͽ! A (, #~͙ç '+8###Ѿ2$':$I(W(B(S( E(K( ##w!~#+<( ç :$K E(B( W( I(S !|$ !eE$#±!T$ͥ|# Reading DOC file... !Q$ͥ|#Reading SYM file... !N$ͥ|#Reading CTL file... !K$ͥ|#Reading COM file... e2h7!eQ$# !eK$#`ç !*`$|2ڄ\ &~###< T]###+~} | s#r#:$w!&~#+<7#z+ {###'!&#^#V#z< #ç ͦ 8#~##>:#͸!͸!Ͱ!>=#> #~#͸!͸!#ͤç i"!&^#V#z<(ͮ>,"~"> "> "#>"͊"!!&!"($,(:80))))o!9"1:e WC':fO':gMfL Must be a command (.COM) file $ *>C2e>O2f>M2g>2|\<L Cannot open file $\ѧ­!Ò"ͿPassword: $ > !:ʱ;#F#~###~#<+T]##~͌#~#O2v$*d$ͦ H~+(-(# >:#K#2v$͸!͸!*d$Ͱ!>xY§ !H$ͥ>2|$2v$i"|#++ Writing ASM Enabled Use Z Command or E Control to Close File ++ ç !eQ$#yç !,i"^#V#~#Gʥͮ> "~"#> "> ">"͊"z͓!"z͗!"{͓!"{͗!"!eN$#ʞ!eT$#(!eH$# ç *2v$!$6L#z͆!{͆!!$a 8s#r*b$T]xo|g"b$##6++DM*${ z( s#r#p#w!,##~#(,8 O#( 8~#͌++ѷO#0H#(0++"$7!,~# ~( #~7#o0$#~#G7!$ͽ!~ (, #~. ͦ 8# |# was Killed ++|#CTLTBL = !&Ͱ!~###< +++Ͱ!#|#Symbol Comments are O:{$>N >F###!$~ (+ͽ!"p$*`$"n$ ( (, #ͽ! *`$"n$*p$#*n$~#"n$ ~ ͩ+Ͱ!͸!:`$/_:a$/W͹>2v$̓#END 2v$:|$ʧ >"͊"2|$|#++ ASM File Closed ++ ç :  ter password here If everything goes well, the program will be saved to disk. If not, a message is printed and control is passed to the CCP. The good part of this is, when you type in the program program name next time, instead of running the program right away, the program asks you for the password. If you reply with something other than the original password, the program doesn't run, and it returns to the ccp.  (-(#ç |# Abort (Y/N)? xYç ?ALLASMCOMCTLSYMDOC.vRECOVER.ASMQ  !"#$%'&()+*,/-.o0213456798;:<=>?@ABCDFEHGILJKMNOP%L7ӭ3(]|YqIgv YNa]>̋i n]^-c%K0bueA%U묥^M#T7?6CW7c:nA߾:ͼCGQ)4s踦i L ¡~6™c6^۫k{i PASSWORD.ASM Version 1.0 By Bo McCormick 8/6/81 This is a program that adds password protection to programs. Format: PASSWORD name_of_file Then answer the prompt with the password to be applied to the program: Password : en  h^ӻ> \kDAFxuDc$1 VLMT~!Lm־0=@˺{L]}ڟ,>3=j5Q` Әn.qML7ӗE㚦0=+T/m}5L9h^~Lv3ҁ@5Mc]WUSXaT{ͼ2}R1pXoگˣ@1p0ngd_Axc Srh&MnV;tjf-ڒt NU.FD;enХphǸX)艭Y_.nYKNk=H^84TL t)1p5CwnmL._cեpht ץXRp7%=5˵Mva4so2Wp`uvyL^3XT?G0:X?eF[\Ax];.'\fe=̡n`l㚦1tZ;v_[V; MT'1pXo:BP%d1]WޙX\Jj*XKoS|o9jNAS (u1Z;T%DX]W[꧎P 56ʱ`$>aar,.tvjo\^g5Zڡ+Bff-F{m1 943L?3[PAz%4Q2(GqL?c Ns`o4:(o;nphLjv*AdZO9 4Q^CQBmͼ'-{B#Nr:^<-Շ0̡+艭Y_jꬻd5s踦iU3ӭ?Ɖ\c SJSI-EGiLNj)2Wp̡?U m/+)tR8cz%=5e|i텩 h{(-fEGhۻ}m)o{L=bzuM2{[!fGqy˟N.L=L?cQӏ[~ۡԇ˕C(LG+ׄqoUG zk (!L h^V?hԇS8r%PAz%\W3=@;dDT:!4hV&4Qeq͍?oxj_WoPCCOlr1|Eu:zڦf̌~jfM)\ǪKЎZvpV7?6ێ:fYAJ͊Twӥph. V7p V.^Ma4{ ZrYm4s8hLNj):BW fSA2LoueA%1d9%+nL7ӱ}|$>t4l;4q9 gLALϱ2ʡ\.ҾnL7=sxՄNj)hiQrBGATL7ӗE}.=^sG,5Lh3ϥpq.LcK1ϥ} ?g0 $Lv>-<=ӗ\u8]ڭ^hۚ0}ɥ[y-fϊcLֻ0}ɥ=^sGNSkgnwy\#r=Ùd4Ht}G-3#᝙|]|$]||$>45>]T8Jz nV4f:?o?]?COlr1t3۟?]?RruJO/`1۟|$[JΠ\酅fp~5L7t/9[t3}YvKn~L(h[ҁ@5Mc0L_:kV35Qئ鸦i t0S0}ǚwka;}f`QYзx`L`z[>$ӏ(.߫cz[>)~DAiDAw-[7L:4K>3ymL֗5RAWrcY0}1}MߘvݪvL/4} ?;OƩ&jDAt3}s }fQAj L_riP7?6`u\4F]W5sy*] v U/%Ոnjڦ ^[].=1B(~W'9FhePMZLzʡhp۳Q]h^Čv UE;z!_0̡ݞ]Kz1;ßJS] v UEM섩'f}##nMT7pp$Qݪ+y艭Y_~tR8cff-2Q+ :&}6  ݏNqMJCO/3}VSk-pK.eC߲c6MO/,LՔfgvNUL_~iv A2}5 R(RM0=oT 3=@[`z=Y3{mLC>GtP>3=@[WzWgh `$QAe L_rin7q߭l d}h ~h>3=@[W9}cz@QAe Bd1P`z ӻ>I&./\߹(!Fx/L1}Y? ot3ݺ~AOlr+1<5c0\;g/3ӷ`zK{xDz3\;LsiaZMn۟0ϥ=Ef=3}ZfzK{8gjt3}MfzK{xif=3}dK>aZM~dLnh^ ;eL_3w}O~dF&~LpgnOU.C;%vwW?3}L_ril'{Svˢ~[-Q+ :}`7/mMmoLv;47q0}w3?V,>3=@ ,աrOrId:[O84۳az5gh?XvߘҾj> tnɹZJ4UW# =q0La@#r(L943k )no'C# =+abx.v0pq.Lv0S ?v0S ?υiN~nGt{V4(no,Œ K^/.zyM .A^a5ۙ!ع®nyԼmn.p\ycӋ)Լ+4Q!hT0sj&/\3=@wwS5QY|fz1LL7ӗE7hz2k2ۥ3}fb /m1[z2k2ۥ3}fn{fDA>J(2L] bt3.nM5+9Ɣ{l7c(x,!w]}Z>˒ L?L[Ujg3KЎ! f K.e-+y@˫%z- ;hy]n 7h!y[hy# no-0nGc|4ߎwc-j3KЎ!;,Y=Yn%]Y1c߷|;ލ /C;VkIג2};^gucR.EAgEĭjuc-)ӷuvy+A&SG(PZO%ՍLߎtcAWbt)1gVkIWsVL~ .OƩ&jDAg0>{ C_kczIN?44c_@S9jxMFs%ˢ:Q15QB ;9lu̹G?2vk#@RVtL.[K }1P:h;-:ԙ%-$}f2}R2vVM7F%]nmb`j RG0M}LO2.[VMeppKeb15QBa  ecover ver 1.0 Invalid Relocation Address Must be four hex digits. Example: Recover CFFF $|} "  " " " !"*12:&.6> Recover ver 1.0 Activated $ R1!~G~o|g#6!#~G 0G =_G#OzW{_W{_"!R"!"*"O"*T]*DM*DM wx™yʟ+ Íbk"*+#*{zî#î*T]*DM#{#zڮ+~#~ڮ+*~w#~wî|/g}/o#**^#V! s#r*s#r  ͞*##>w#>w> #wj#~p#}|^#V|} "  " " " !"*12:&.6>î#î*T]*DM#{#zڮ+~#~ڮ+*~w#~wî|/g}/o#**^#V! s#r*s#r  ͞*##>w#>w> #wj#~p#}|^#V|} "  " " " !"*12:&.6> Recover ver 1.0 Activated $ R=گIϖ'~1UVWC={L0'd_ f+ūiSKjЄLuzWBs)LuaJ5~ŷSըCݞ0O=گIϖ'~1UVWC={L0'd_ f+ūiSKjЄLuzWBs)LuaJ5~ŷSըCݞ0O  haracters of the first line will be lost, and Recover will number the first line as '1'. Recover is MBASIC version specific and as of now assembly time options are available for MBASIC versions 5.10, 5.20, and 5.21. Although not intended for thremains intact. Recover is self relocating and may placed anywhere in high memory where there is no conflict. The desired memory location is specified as parameter when recover is loaded. The size of the relocated module is 80 bytes. If Recoveris purpose, Recover will also unprotect programs saved with the 'P' option. Load Recover as usual, load the protected program, type NEW, and then type CTL-F and the protected program will be unprotected.  is loaded on top of BASIC, be sure to protect memory when loading MBASIC. Recover patches into the CP/M bios jump vector table and becomes part of the conin routine and remains active until a cold boot is performed. To use Recover; Exit BASIC via SYSTEM or cold boot. Load Recover specifying the load address ie, Recover B000 Re-load MBASIC and open the same number of files that existed before program loss. When BASIC comes up type CTL-Fv{WHODERE1.ASMQ ! #"$%&')(+*-,/.0123457689:;<=>?@BACE If the program buffer was not destroyed the program will have recovered. LIST the program to assess any possible damage that may have occured when the program was lost. Because of the way BASIC initializes the program buffer, the first few cDFoGHIJKLMONP\bAʩ=*glj/O3^Fǣ'sVpl^vWH:4Xc4Yfyo3վ*^bs 099=E3"(YDSYd_f3̥ۧ$2'lUGOO3F*sf5ק RECOVER ver 1.0 05/28/1982 by Darrell Flenniken RECOVER is a utility to resurrect programs under Microsoft Basic that have been erased from the program buffer by NEW or lost by any other means as long as the program buffer   z1^p"|s ]rqܣWA:9ʅs,B8/{c3\KszWkw7H,YI()vrsikԻOء@#p@? wN5$~o}!5ǛHYwu\ Rse!0A|QCջ*enN1ׯ/O~5Z_)=7`0zV}Oz*s27jgsO/O3^6gW?{Y#ˬE랽v>UA1{bС#վΚ;9\3":īd..M*K \EPiWťnnf$si~j4EλR~TC$4ტ ~Hr'J~"uHU׭^J>\O(a>}@S9Fs@M(4؁#5i!2Z2FsZߝfs7)V~7E˽,~݇8Ls20e'wq<!w;' 渒:+@^o}/S=8׾p9 ;Cը˺)rC}~ e֪9䤸 W[˔)6G+(r[s_G]Q J,q~uQ+׾p9 ;QVƺ)rC*eFs\Iq ䷾)SC+~s?g@{}aQr+9}:+svMUhz*gtw9S9VFK>]tNlzMcN~#si޿EoSYu$s=b.1eDi6I\-wB.=}Z[l.%ľ JwYiM#Yo#i5}̑4 JmQrF:Ks /yiNݿL̑<*g#ix1Mc5(9#̥/ˡ S$>>$渒:+@^o}/S>W.+%~^=ܣK s3]q YXo.e}W(}4;]W@'ɿ5;i= sqW(uS4W7Ǖ9渒b2G~H?a#ix4(9CT(|si"o#9DBKs747G~!!J \#iu1G~oZMzedU9o"e#i<Mc5(9#̥9ƈf6G]qu }!JΘ>cdTKsi*gǁ4?u{cs=(rU9u?cLx *Ul1QxGջ*ݡ*}csVO:^=wUyEzcs{@e.UПNt=r}%΋99DBKs74.jes7U!J \#i/,s3Â9}a2ǵ/ s\Bj@\KsQנhz/ˡozWPx,!s 0GRBOSJӔ7(99/o00Q J\CHKh};QnǒCQ7 sPo=M̥4b Kͥy9B5(r蛣 w9ĥ\\K44%fRC} 1=1z|ٜOfsrUc4w9>(2y s"u~EԳ~}E;qhz/ˡo1#~uS4W7ǘ?X7Ep{Y}s#~R2C>W2C!}!}!}!}!}!͙~͑~͑0:Nͷ~ª#~Ù ͷ ͷyO DSK- TRK- SEC- DMA- OPCD-   his program will list all disk reads and writes to the CRT: (if CRT is TRUE) or to the LST: (if CRT is FALSE). N O T E : This program runs in HI memory. CP/M must be moved below HI memory to allow room for this program. Set LOAD above CP/M. MODIFICATIONS: ------------ 03/30/82 Added routine to locate the address of BIOS. Added conditional for output to CRT: or LST: . Removed LDIR macro and added subroutine LDIR to move memory. Program will now assemble with ASM.COM .  Made other minor changes to program. Bill Wood , Mississauga, Ontario, Canada.  to CRT: or LST: . Removed LDIR macro and added subroutine LDIR to move memory. Program will now assemble with ASM.COM . !'+`}:*2*:*2*2f'A=Amrad 703-734-1387B=Ben Bronson 312-955-4493C= D=C.Cliff C.C. 312-234-9257E=Ron Fowler 313-729-1905RF=  G=Gasnet NASA 301-344-9156H=Dave Hardy 313-846-6127I=Wayne Hammerly 301-953-3753J=RBBS Pasadena 213-356-1034K=David Kozinn 216-334-4604L=Program Store 202-337-4694M=Kelly Smith 805-527-9321N= O=SYSOP S WHODERE.ASM by R.H.JOHNSON Modifications by BILL WOOD (New name WHODERE1.ASM) What you say in secret, shall be shouted from the house tops. An SAU to display sneaky Bios reads and writes. A DEBUG PROGRAM FOR DISK READS AND WRITES T  | |k ++File does not exist++ kType "R" to return to modem Type "A" to re-enter name: ͮ͸͖͉AR &ͅ ʡ͎ ʡÄk ++File transfer completed++  k ++File transfer unsuccessful++  k ++ Tran X= Y= Z= !9"'1' MODEM 7.65 as of 05/29/82 Originally Written by Ward Christensen Configured for the Osborne I by OZYMANDIAS II $ >2g&/2}':e'>2sfer cancelled ++ 6# 6 # 6#( k Enter file name to be transferred - C/R TO QUIT: &#͉&! V$  !~ͭ ͣʧ ͮ#“ ® ͖  k ++File transfer unsucc  ͣ ͮXG:f' >2f':h&X>2X:h&G:x+Cʶ XM~#A>2g&:h&E TeS' Rʗ D1"X:g&ʢ:] >2g&/2}â͞''!("Y'>2g&:e'2c'>2f'¶>2f'ͣ ͮG:&>2&xX1"ʢG:xʽ x  ͖  ͖ :s&P >2\':& _ X >B2s&>4y:] NcPgډ ͓2&A:&̞ęͫp c >4ͫډ y2&:s&¸ >2\' >B2s&y:]  Y͞:s& :l& kFile open, ready to receive ::g& :}/2} >2&   ¢ʢ͖:}yw#"Y'G:xU/_ _>:͖:n:q:=̀ââ> [2~[2͇͙!(ʷ:~w#͖ʷ:w#͖> :d'&:h͖:}w#"Y'W:z&> >C4:&) kCRC in effect A kChecksum in effect BS c͓;A {;y:l&} kAwaiting name NAK P͏>4!a'5 *]'\ ͭ"]'ͨ >47 !]~4:l&~Ė ¾ #° >4:l&ĉQ >u4:l& kChecksum / >:͖:d'&*Y':0:3:=¢k Memory save buffer full â:h  { xh6#}l&)>o('+|œ'!' !\' ͭ!  !l 0 :& &r error P͏>4é >4!\ :l&A kAwaiting file name A S Q 7!]Ҍ :l&ʉ kTime out receiving filename  ʰ w:l&~Ė>4#} Y :l&ĉy4 !\ :l& kChecksum error T >4>ys 313-885-0506P=CBBS Pasadena 213-799-1632Q=R.Plouffe 703-524-2549R=Bruce Ratoff 201-272-1874S=K.Peterson 313-759-6569RT=Tech. CBBS 313-846-6127U=PMMI 703-379-0303V= W=   +CRC error++Ð:o&:l&k++Cksum error++ Ð;B>4:l&lk Send # *&k (kH)>4:&4:&/4>2& !~4,Œ2&y4:z4{4G:l&x͉kH Recv'd, not ACK :&<2& :o&:l& 7 Ca~ #~+] ͭ!e~w#~w\!\l ͭ!u6B#6A#6Kl!l6\:\<-2h:¸>2!\ 7:\2+!\ 7\!+\ 7\!\ 7\<72=Ɓon't send sector -- Aborting $:l&k Timeout on ACK :o&J:l&ͣͮ1'W>4d> 4k Routine cancelled >B2s&p*&#"&}:s&\C2&>4Bm͜ک,z7G:o&:l&x͉kH recpecified X\<Error - Can't make file Directory must be full $#\*}"&!"}ɯ2h\<†Can't open file$:s&’:l&kFile open, size: *&k (kH) sectors \<Can't close file$:&=2&*&ͫ"&:&v'd, not SOH >4:&<2& F:o&6:l&< B ++Unable to receive block - Aborting++ $:o&{:l&k ++ Timeout ++ :&͉:&ʧ7:o&ʷ:l&k :&k++Framing error++ ":& k++Overrun error++ ":7'\:=I++ File read error ++$! yO>2&y2&!'"&*&!ͫ"&:&<2&:&O'\¯! „2&!'"&4Error writing file $:xG:> 7:&@k++Parity error++ ":&͉m͜کWm͜ک/~:o&\:l&k ++ Bad sector # in Hdr z2&>2& !m͜کw,:&Q2&m͜ک:&G:&5CʦTÏkCRC request received 2&::r&:f':q&:f'::f'*"7>2&2a'^ !g"]'͵ !\'V$kE :f *]'\ ͭ"]'!a'4 !b'5 !g"]':a'A>@2a'!b'6!&N!& 6 !&F#ʱ ~ v #ʱ ~ ʁ "_'+#ʱ ~ ‘ :b'<2b'#ʱ ~ ʣ Ñ 6 *_''~ #ý #~ "_'!'p \ȇ!o    ~  &pͭ:&_!&~7' z̀ͣĮz#` F&`>%$e$meQX͖0R“{:> O:%$¤$ʬ>$¹>$ ´>`:&2&F`$ell transfers completed :j&pk ++Press RETURN to disconnect++  !k ++Disconnected++ Q×>C2&>2&:p&X͉â::i&œä:k&%4>_ڰ>&2d':k&>:i&>!-%:e >4:e>4e! 0&:&0DM;2`e͉`$ͣĮ6 71">?&>͉>&`>]Q:R¿k No answer after time-out. Redial? (Y/N/C): ͖ͮ͸͉NXYʿCe/2R2`ek Connection established - Select options: ͣ)) )o ${h|/W}/_! =xy++ Invalid baud rate ++$!l\ͭ2|2h | | | m|>(|>)|_> ͖> ͖Oa{_  |{0||} “!>͖  &!\V$':]EMG:x8CTʪShRO:s&hk ++Bad Option++ n:m k Re-enter PRIMARY option and file name only: &#:m ¾>2}>2g&/>2g&:k Enter New Baudrate: !e6ͮ ͉Ê0:0Ö:s&<ɯ2&kMultiple errors encountered. Type Q to quit, R to retry: ͉ͮ͸RQ ~x|#l zk:s&p>Q2l&T*':~#­:ȯ2Re!&~-!&Qk Waiting for dial tone >dwO͖#!"VO*VyO}o|g/|g}!o"V*VT]*V|>!&&ͭ!t&i& ͭ>2/2&:a!k WRT - Write file to disk (from terminal mode) DEL - Erase present file (from terminal mode) RET - Return to terminak ++No dial tone after 10 seconds++ 7 !S'QͭZͭQ c:> > > >$ '͉kEnter number or library letter - Type C/R when finished, CTRL-X cancels while dialing: &#:&z!&A~ !S{l mode with no loss of data :q kDSC - Disconnect BYE - Disconnect and reboot CAL - Dial number kXPR - Toggle expert mode (Menu on/off) DIR - List directory (may specify drive) CPM - Exit to CP/M S - Send CP/M file R - "":#:2<2 2<2%2&<2']2h& a!i& YOJ2e'TAT>2e'6.#:Û&:&p:h&R›&:o&2l&:s&:l&ʹ!]ͭͭk transferred :\2['!\ :['2\!&&ͭ:\'' Û >2&2g&/2}:o&:l&k A  %!mF& ͭ_!:E&+&@2&A2@&k DRIVE 6?#F%&!\V$!E& :l2E&:mADOQRSVT01ADOQRSVT01BC''kInvalid option X | :f&<2f&̉E&%Ì%kNOT FOUND͉>? !F&w#":""CAL"> 2&)":&!""w:XQk ++Disconnected++ X:Xk Goodbye, happy up/down loading *N%a!:' w'>2g&/2}!' w:g&w:' w*Y'͙̀ͺ>2g&/2}!' w:/2wF#""7SRTEM%!mF& ͭ_!:E&+&@2&A2@&k ++Bad library number called++ $& :l2E&:''kInvalid option X | :f&<2f&̉E&%Ì%kNOT FOUND͉>? !F&w#~####>##7##կ $ #g#g#ʝ#ʯ## *#G#4+~##pxA$#*##G~wچ#+xF6 ʍ#ʋ#*#4*#>A$> A$>A$*#>#A$> A$> A$ #G>#A$> A$> A$x*#A$#*#>A$5*#> A$> A$*#> A$> A$F##> w#$/$ $'$a#${#$_*9$*M$* O$#^#6 $ % ʼ$ ʎ$  % ʼ$ ž$Î$ ʼ$ $ % ʼ$  %#!% !%6# > $>$ > $>$w#$:*K͞+""&'+FÎr ͖ 8{ Ăw#w#w^#V#*~#fo^#*~#fo^#V#*n^#*n^#V# ~#fo^#& ~#fo!+!#!+!#!+!+}|z{|}|z %_@w# . %w# %~*1%##%4%F%~*B%#6%F%6?#F%&!\V$!E& :l2E&:m %&&2f&E&%&~%~%#%ͭͭk | :f&<2f&̉E&%Ì%kNOT FOUND͉>? !F&w#7||7zZZ)|/g}/o#|͉k|/g}/o#ɯ2qZZk:q|/g}/o#|/g}/o#:q<2qqDM!xxGyO҃)v|͔`i|)Öxڷz/W{/_ѯzW{_=yOxGæ2qZZ͉M|}ȯ|g}o)|/g}/oReceive CP/M file T - Terminal mode (optional file name) E - Terminal mode with echo k DEFAULT DRIVE: A͖k Command: &#͉&"CPMҗ"DIRҍ""RET!:c'2k&*Y'â:!"DSC1""BYEW""WRTҵ""XPR""DEL  |! ͡!ͤ!~ ~#fo##~#foͪ|C! ͡!ͤ!~ ~#fo##~#fo! ͭ! ! Ͱ! ͳ!~ ~#fo~#fo! ͭ! !x !8 !@! Ͷ!4 s#rz! !" ͡!ͤ! !.͹|!E ! Ͱ!6 w#w!6 +w# +6#!6#2w2x*s!>r<o&F=-` r'~h6!+`W?_!~7z?` :>ª@w#G.¶ww#?*>?w#> w#.7:77w#w͐6͐4D ͐6 k!8 ! ͼ|6 D !6 ^#Vr+s ͐6͐4j ! !G ͡!ͤ! Ϳ>q >ʚ >a‹ >6 >— >x x ͐6)! ~#fo͐6)!x ~#fo! ! > > >a > 3 !g ͡3 ͐6)! ~#fo!a{   `OE!y6$ -7rBo&))T])))!y':7?h#D/6:?>$:?$:)?$l,:>#)Ÿ#>67:+?7#*+?|°#2ͩ7#>67:+?7>#7>67:,?7#*+?"?)͐6)!x ~#fo! ! #|0 ! ͡3 Ë ͐6)! ~#fo͐6)!x ~#fo! ! #|u ! ͡Ë ! ͡! ͡Ë !x9Usage: lcat lib-filename(excl type) filename.typ File name too long ! No drive spec's, file types, o#>7:+?7>s7>@2?#2ͩ7#)$:"?=2"?))$>s7#͎)5$2:>/$2ͩ7#3ͩ7#* ?"?*+?"?:)?ʟ$:>€$)s$>>7:+?72ͩ7#2ͩ72?#)s$>7:+?7>{72ͩ7#)¸$:)?‘$>}72v$:)?1.͎)$>&773v$:)r ambig filenames allowed. .lbrTrouble getting directory from %s .Can't find file %s in library. ..file error, I'd check my spelling... ..file error, I'd check my spelling... ..file error, I'd check my spelling... can't cat ... <!9DM?$l,Ä#:?$u-l,$:)?>%>7l,>7>@2)?$* ?"?R3ͩ7:?2?"?|O%}@%3ͩ7V%C%4ͩ7>G>)7[%#͔+:*ͅ- < Pf[ × Ã !9DM̓|+++|! ͡!ͤ!~ ~#fo~#foͧ | !͐n}T ͐n}*A ͐n}?A ͐n}.F !! ^#Vr+s !a ß!9DM͐n}ʕ ͐͐n&^ s! ^#Vr+si ï ñp[ P!9DM! ̓0͚ #| !ü!! ͝ ! ͠ !" s#r̓"! ͠ #z/W{/_!9~#fo! ! ! ! ! ! !9~#A"s!`*"!"!Y">2>2>22!"!"!@"!" ʞ!F#x±~#±!b2r~# "2r+}|~#G:rx"2r!  M! w#w! w#w!!͐! s#r͐#|O͐!!*w#w!͐͐! `i͐|ʜ! 6a#6|!! `i͐! s#r! ! s#r͐! `i͐s! ^#Vr+sn}! `i#6͐|d! ͠ |g}oͣ `is#r͐|V! ^#Vr+s! ͐s! ^#Vr+s͐! 6! ͦ ! ! s#r͐n}͐n};ʵ͐n}*ʵ͐n&|һ͐6.! ^#Vr+sÅ! !4 ~#fo̓& kͩ ! ͠ !( s#r!( ͐! s#r͐|*͐|;! !|!*6#6*6#6! w#w͐͐͐))*! `i͐s#r͐))*##! `i͐s#r! ^#Vr+sc! w#w!!! `i͐~#fo! ͠ s#r!6 ~#fo̓&)̓(s#r! ͠ !* s#r!* ~#fo! ͠ s#r!8 ~#fo̓&)̓*s#r!! ͝ !& ^#Vr+s!$ ^#Vr+s2 ! ͬ ̓&ü!,9!9DM͐n}! n! ^#Vr+sn}! ^#Vr+s! s#rz|͐||! ~#fo|g}os#r͐|U͐!! s#rX!͐|p͐##|y! 6#6!͐!9 HERE 1 Cannot open %s HERE 2 %s has invalid decode tree size HERE 2a HERE 2b %c HERE 3 !á!9DM!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!͐ |J!  !Á!~!!{9DM!͐! s#r͐#|O͐!,!͐!<!͐͐! 6! n͐!`i͐ +|ʲ!F!! 6! n&|! n&`in! s{! n! n&|g}o!k!͐ |J!͐ |J!͐ |J!͐ |P!Â͐!.`is#rz|͐##n}Q|!qÂ!aÂ!9.com.cmd.bad.sys.mbx.crl.cql.lbr.lqr.obj.oqj.dat.arc.aqc.swp! Sa!põ~!![9D 4ø! 4w!n͐#!9Cannot open %s LCAT %s Error reading this entry - aborting %c v!9DM! ^#Vr+s!|ڟ͐s~ç!9DM͐`is#r͐n}D͐n&ͤ͐ n&6͐`is#r͐ ! s#r͐n}͐))!" s#r!! ͝ !& w#w!$ 6#6̓$̓"ҫ̓&̓2ҫ! ͠ |u !! ͝ Ý! w#w! 6#6͐| ! ͠ |g}oͣ `is#r͐| ! ^#Vr+s! ͐s! ^#Vr+sÆ ! ^#Vr+s! 6.! 6"  ~#foñY i ß!h9DM! ^#Vr+s~#fo! s#r͐! s#r! ^#Vr+sn`is{p`in}%Z! ! s#r! 6#6! s! s! s͐n}-¯! ^#Vr+s! 4͐n}0¿! 4͐n&}! !! s#r! ^#Vr+sn`is{.'! ~#fo͐^#Vr+sn&"!9DMM |Q* ^#Vr+sM! ͐͐`is#r!p|ʧ͐*s#rM#|œ* 60#6uM! ͐͐* s#rz!* ~#fo++s#rM!9 ! s#r! 4! ^#Vr+sn`is`in&}DSUʏXʘOʡCSD͐~#fo|ҏ! ^#Vr+s6-͐͐~#fos#r! ^#Vr+s! 6 ç! 6ç! 6! ~#fo! n&! ^#Vr+s~#fo! ѯgs#rÐ! ^#Vr+s! ^#Vr+s!9DM`iw#w*^#Vr+s!|ڌ! ͐ ͐* s#rzR!*w#w͐))*M |g}o)~#fo`is#r͐))** ~#fos#r!|g}o)~#fo`is#r͐|͐#`is#r͐|!͐`is#r͐~#fos! ^#Vr+sÐ! n}+! 6#6! ^#Vr+s~#fo! s#r͐n}ʐ͐|ʐ! ^#Vr+s! ^#Vr+sns! ^#Vr+s! ^#Vr+sF͐6! ! s#r! n}! ^#Vr+s!|! ^#Vr+s! n}!0! sì͐! ^#Vr+sns{!9!y9DM! `i`i!9bkB{ozg7**~#Z*7**~#p+w#w*7**œ#!ɖg!9~o&a{_o÷ !9DM͐!͐ʹs#rz!͐##w#w͐~#fo!,"! ^#Vr+s! n}A! ^#Vr+s!|A! ^#Vr+s6 W! ^#Vr+s`insm! ^#Vr+s`insN͐6!9Å="!9DM͐n}ʯ! ^#Vr+sn&͂Í÷ñ!9DM͐͐  ͐^#Vr+s͐͐0͐7s!Á!!9DM͐|͐+++|1!͐##^#Vr+s|¯!͐͐~#fo`is#r!|҂͐##^#Vr+s͐##͐?+s#r͐͐s#r͐^#Vr+sn&!9!9~o&A[ o~!!9DM͐!&P ͐ ͐͐ ͉͐ʹ`is͐ ͐͐ )͐ʹ`in&#&P !9!9~!0:,o Y !9DM`iw#w͐~#fon&l }ʼ ͐ ?͐^#Vr+snѯg`is#r} ͐ !9 7,2q*&:q): !=J`i^#Vr+sn&ͤ! ^#Vr+sn&36! ^#Vr+sù!J!9* w#w*6c#6võ!9DM͐͐͐s͐͐͐sûÁ!!9DM͐~#fo|͐w#w͐~#fo|!͐͐͸!#  2w&!o )" . &7:O*  Q" > _ `" , FNxg>Goy"$Nxg>Goy"$Nxg>Goy"$N DISK.DOC FOG/UTL.022 First Osborne Group (FOG) Utilities Disk LCAT will display on the screen an ASCII text file which is contained within a .LBR library file created by the Library Utility LU from FOG/UTL.017. To use, place LCAT.COM in drive A. At the A> prompt, type LCAT d:library filename.typ where library is the name of the .LBR file on (optional) drive d, and filename.typ is the text file to be displayed. Typing LCAT with no !=r:qo&!l"7:,*!:*;!}|2q l!b!:qw]!! {w#7:)~:,"s!"u*|!**s!! ~!6*u*+"*"*u#"uã!:wo"$  r by otherwise hanging the system. Place MBASIC.COM in drive B and RECOVER.COM in drive A. At the A> prompt, type RECOVER C000 B:MBASIC /M:&HBFFF At the MBASIC Ok prompt, type LIST You may then SAVE the recovered prn drive A. At the A> prompt, type OSBMDM76 Then make modem contact with a remote computer. See FOG/UTL.001 for additional MODEM7 versions and information. PASSWORD will assign a password for runtime access to a .COM command file. Placeogram. Also, see RECOVER.DOC. SUBGEN12 provides a versatile way to generate .SUB files for use with SUPERSUB (found on FOG/UTL.004) or with SUBMIT. Place SUBGEN12.COM in drive A. At the A> prompt, type SUBGEN12 filespec opt where files PASSWORD.COM in drive A. At the A> prompt, type PASSWORD d:filename.COM where filename is the name of the command file on (optional) drive d. You will be prompted to assign a password, which will be integrated into the command file. Subspec is a file specification which may include drive designation and wildcards, and opt represents available options. A file named SUBGEN.SUB will be generated according to specifications entered by the operator. That file may then be referencedequently, when the command file is executed it will request and confirm the password. Multiple passwords may be assigned by simply running PASSWORD several times. See PASSWORD.DOC for further information. The method used is not very secure, be in a SUBMIT batch procedure. Refer to SUBGEN10.DOC for details. WHODERE1 will display a line of debug information for each disk access. The program must run in high memory above BIOS; therefore, the following procedure must be used to move CPcause a knowledgable person could easily determine the correct password. RECOVER will restore from memory an MBASIC program which was inadvertantly lost by typing the MBASIC command NEW, by dropping out of MBASIC as the result of a BDOS error, o/M on the Osborne 1. Place WHODERE1.COM in drive B, MOVCPM.COM and SYSGEN.COM in drive A. At the A> prompt, type MOVCPM 58 * At the next A> prompt, type SYSGEN When prompted by SYSGEN, type , then type B to write the moved CP/ arguments will display a brief command description. OSBMDM76, submitted by Jack Brown of the Vancouver Portable Computer Club (VPCC), is another version of MODEM7 configured for the Osborne 1. (This one is from MODEM765.) Place OSBMDM76.COM i%  SWORD.DOC CRC = A1 14 --> FILE: RECOVER .AQM CRC = DE 6C --> FILE: RECOVER .COM CRC = C0 05 --> FILE: RECOVER .DOC CRC = 42 76 --> FILE: SUBGEN10.DOC CRC = 79 D4 --> FILE: SUBGEN12.AQM CRC = 4A A1 --> FILE: SUBGEN12.COM CRC =es may be unsqueezed using utilities found on -FOG/UTL.003, .004, and .014. Jim Woolley FOG Disk Librarian February, 1983  C6 C3 --> FILE: WHODERE1.AQM CRC = 8C 2F --> FILE: WHODERE1.COM CRC = 60 EF --> FILE: WHODERE1.DOC CRC = 86 3A ---------------------> SUM OF CRCS = D1 CA  --> FILE: -FOG/UTL.022 CRC = 00 00 --> FILE: DISK .DOC CRC = 0A 77 --> FILE: LCAT .COM CRC = 41 AA --> FILE: OSBMDM76.COM CRC = 35 69 --> FILE: PASSWORD.AQM CRC = 75 6D --> FILE: PASSWORD.COM CRC = 5A 48 --> FILE: PASM system onto drive B. Transfer the resulting disk from drive B to drive A and press and . Each disk access will result in a one line display of pertinent information. Also, see WHODERE1.DOC. Squeezed assembly language .AQM fil&  '