IMD 1.16: 28/05/2007 17:08:26 -FOG/UTL041         -FOG/UTL041/UTL#041DOC +,CHGCHAR AQMCHGCHAR COMCHGCHAR DOC'CLOCK BASDIRBANERCOMDIRBANERDOCHEXDEC BAS LSWEEP10DOCELSWEEP13COM} LSWEEP13TXTSAP38 AQM=SAP38 COM VDO2A COMVDO2A DOC !"#$%&'(VDO2QUIKDOC)VDO2README */UTL#041CRC-10 REM TIME CLOCK PROGRAM 20 REM JAMES J. BRENNAN 30 REM ADAPTED FOR OSBORNE 1 40 REM BY RAY GORDON JR. 50 REM 60 REM FROM KILOBAUD MICROCOMPUTING 70 REM JANUARY 1979, #25, P.95 80 REM 90 PRINT CHR$(26) 100 LET X=62735! 110 PRINT 120 PRINT 130 PRINT " DIGITAL CLOCK PROGRAM" 140 PRINT:PRINT:PRINT 150 PRINT " THE CLOCK DISPLAY IS THE FOLLOWING:" 160 PRINT 170 PRINT 180 PRINT " HH:MM:SS" 190 PRINT:PRINT:PRINT:PRINT:PRINT 200 PRINT "    ENTER THE EXACT TIME YOU WILL HIT RETURN." 210 PRINT:PRINT 220 PRINT " USE THE FORMAT GIVEN ABOVE." 230 PRINT 240 PRINT " "; 250 INPUT"",T$ 260 LET TH=VAL(MID$(T$,1,1))+48 270 LET H=VAL(MID$(T$,2,1))+48 280 LET TM=VALI3//h]lx/bAw3܊.UV*ҫR*[19 ~ؽ|y\,V̜D~^,t=í!_Jf;wb܊r+TdV̜틴n߭9HbGiɭþnH&+uNR,au.*63r2wbl_uEz]N{V"me;X(Ӻwbfsg{~ e(MID$(T$,4,1))+48 290 LET M=VAL(MID$(T$,5,1))+48 300 LET TS=VAL(MID$(T$,7,1))+48 310 LET S=VAL(MID$(T$,8,1))+48 320 PRINT CHR$(26) 330 IF ST=58 THEN ST+48:S=S+1 340 IF S=58 THEN S=48:TS=TS+1 350 IF TS=54 THEN TS=48:M=M+1 360 IF M=58 THEN M=48:TM=TM10 REM* * * * * * * * * * * * * * * * * * 20 REM* HEX TO DEC TO HEX CONVERSION 30 REM* * * * * * * * * * * * * * * * * * 40 REM* 50 PRINT CHR$(26);" HEX TO DECIMAL CONVERSION " 60 PRINT " Give number, H before HEX" 70 DIM X$(20)+1 370 IF TM=54 THEN TM=48:H=H+1 380 IF H=58 THEN H=48:TH=TH+1 390 IF TH=49 AND H=>51 THEN TH=48:H=(H-2) 400 IF TH=50 AND H=48 THEN TH=48:H=56 410 IF TH=50 AND H=49 THEN TH=48:H=57 420 IF TH=50 AND H=50 THEN TH=49:H=48 430 IF TH=50 AND H=51 THEN TH=: DIM H$(20): DIM N$(20) 80 PRINT : PRINT : PRINT 90 DATA 4096,256,16,1 100 LET H$="0123456789ABCDEF" 110 RESTORE 120 INPUT ;" ",N$ 130 IF LEFT$(N$,1)="H" THEN 320 140 IF N$="END" THEN END 150 LET N=VAL(N$) 160 LET X$="" 170 LET J=4 1849:H=49 440 IF TH=50 AND H=52 THEN TH=48:H=48 450 IF TH>50 THEN GOTO 650 460 IF H>57 THEN GOTO 650 470 IF TM>54 THEN GOTO 650 480 IF M>57 THEN GOTO 650 490 IF TS>54 THEN GOTO 650 500 IF S>57 THEN GOTO 650 510 IF TH=>50 AND H>3 THEN GOTO 650 520 PO0 READ P 190 FOR I=1 TO 16 200 LET B=N-I*P 210 IF B<0 THEN 250 220 NEXT I 230 PRINT " INPUT ERROR" 240 GOTO 110 250 LET X$=X$+MID$(H$,I,1) 260 LET N=N-(I-1)*P 270 LET J=J-1 280 IF J>0 THEN 180 290 PRINT " DECIMAL IS ";X$;" HEX." 300 PRINT KE X,TH 530 POKE X+1,H 540 POKE X+2,58 550 POKE X+3,TM 560 POKE X+4,M 570 POKE X+5,58 580 POKE X+6,TS 590 POKE X+7,S 600 LET S=S+1 610 LET Q=551 620 FOR I=1 TO Q 630 NEXT I 640 GOTO 330 650 PRINT "NOT A POSSIBLE TIME. RERUN PROGRAM" 7,S 600 310 GOTO 110 320 LET J=2 330 LET L=LEN(N$) 340 IF L<2 THEN 230 350 IF L>5 THEN 230 360 FOR I=1 TO 4 370 LET O(I)=0 380 NEXT I 390 FOR I=6-L TO 4 400 LET O(I)=ASC(MID$(N$,J))-48 410 IF O(I)>9 THEN LET O(I)=O(I)-7 420 LET J=J+1 430 NEXT I   440 LET O=4096*O(1)+256*O(2)+16*O(3)+O(4) 450 PRINT N$;" IS ";O;" DECIMAL. " 460 PRINT 470 GOTO 110 480 END  430 NEXT I NEXT I 390 FOR I=6-L TO 4 400 LET O(I)=ASC(MID$(N$,J))-48 410 IF O(I)>9 THEN LET O(I)=O(I)-7 420 LET J=J+1 430 NEXT I Novosielski Libraries (i.e. LBR Files) Joe Vogler January 8, 1984 (Written in BDS C v1.50) ************************************************************8UZ2m|2bdħVh2 t+f.h1S\Rt+f8u{Ş z~ V=_,RV⊟2݊yTڭNHM3߫"۶Ho4p+f8uJŦmբ=G>F9=l䂗YM>=O`#j6~:݉3'-jWMƏ_P#|r݊EOh&_bS***** Thi progra i i th publi domai an ma b use o modifie freely I ma no b sold Significan portion o thi progra wer borrowe from: Gar P Novosielsk (LDIR.C LTYPE.C) Dic Greenla (USQ.C) Bo Mathia (TYPESQ.C) N portio o thi progra b incorporate int anothe progra i tha progra i t b sol fo profit. ***************************************************************** INTRODUCTION ============ LSWEE stand fo Librar SWEEPer T th user i look lo lik SWEEP DISK76 NSWEEP o WASH Tha i becaus wrot i t b tha way Instea o fil names th use scan lis o membe names Whe th use enter command i operate o***************************************************************** Documentation for: LSWEEP.COM v1.1 A Program For Manipulating  th 'current selection Tha i th las membe nam displaye b LSWEEP Availabl command ar VIEW EXTRACT HELP an EXIT VIE i analagou t TYPE I th fil i squeezed th fil i unsqueeze befor i i displayed. EXTRAC   i combinatio o th '-e comman o L (Librar Utility an UNSqueeze I th membe i squeezed EXTRAC wil creat a unsqueeze fil wit th pre-squeez name. Quit honestly i yo hav use th program mentione above yo shoul f thre comman keys: - Display HELP menu - View th 'current member - Extract th 'current member - eXit th curren Librar an proceed t th nex on o quits i ther ar n more. Whe viewin filee comfortabl wit LSWEEP. HO T US LSWEEP ================= Th progra i ru thi way: A lswee ] Example: A lswee justone A lswee ones twos threesy Ae th progra pause ever 1 lines Th numbe wa chose t sui me sinc lik t rea i paragraph an paragraph don' en o 22-lin boundaries Whe th displa pauses yo ca continu lin a tim b pressin th spac key Yo lswee b:thi c:tha anothe d:last Yo ca nam a man Librarie a yo ca fi o th comman line Yo ca specif Librarie o differen drives Yo mus specif a leas on Library Th progra wil 'process th Librar name i ca advanc anothe 1 line b pressin an othe key excep fo Control-X Tha selectio wil abor th Vie an retur yo t th menu Whe yo return th curren membe i th sam on yo jus viewed di thi becaus yo canno ye  th orde specified Whe yo ar don wit one i continue o t th next o exit afte th las one.Yo ca als us wildcards Thi wa no th cas wit v1.0 Th wildcard ar expande b th program You'l ge lot o non- librag backward throug th menu Extractio ca b directe t an drive Th progra ask fo drive Thi i on o th tw 'opportunities yo hav t abor th progra wit Control-C Hi retur fo th defaul drive Yo wil hav try names if you forget to use '.LBR' when using wildcards. Fo eac Library h progra build lis o membe name fil size an display on afte another a yo hi th RETUR ke (o an ke no se u a comman key) Ther ar onl  remembe whic driv i th default. Extractio ALWAY create a UNSQUEEZE versio o th member Futur modification wil includ COP comman whic wil allo yo t decid whethe t unsqueeze I th membe wa no squeezed th membe   i copie verbatim. Also th progra doesn' respec file wit th sam name a thos i want t create Again futur mod ma includ verificatio befor deletin file. Whe fil i EXTRACTED th entir content o th origina  t modif th Librar itself Thi 'feature wa give conciously se n reaso t attemp t rewrit LU. 7 Th unsqueez routine ar writte i C I th ne assemble unsqueez cod ha bee used th progra woul ru much faster aar sen t th externa file hav don som testin an hav foun tha th file mak b LSWEE hav th sam CRC' a th sourc members (See LIMITATIONS). LIMITATIONS =========== That jus abou it No fo th thing tha th prognd the code size would be reduced several Kbytes. mak n apologie fo th abov 'deficiencies' Th progra i muc bette tha nothing I yo reeeeal wan somethin else modif it Yo migh le m kno wha you intention are nra shoul d bu doe no yet. 1 Th file create ar no verifie (e.g usin CRC) hav don bi o testin an foun tha th CRC' o th file LSWEE create ar th sam a th originals Th soundnes o you syste wil mos o sense in two people working on the same improvement. HOW TO MODIFY ============= The source for LSWEEP10 includes these files: LSWP1.C LSWP1I.C LSWP1H.C Th mai file LSWP1 ha #includ directive t pul i th probabl determin ho reliabl LSWEE i i thi respect. 2 N taggin o members. 3 N goin backward throug th menu I yo overshoot yo hav t continu aroun th ring 4 Yo canno direc fil outpu t othe use areas others Afte modifying recompil onl th fil tha yo changed I yo modif th heade fil LSWP1H.C the yo nee t recompil LSWP1.C and LSWP1H.C. To recompile the programs: A> CC lswp1 A> CC lswp1i The link step is done thi Thi i probabl th nex thin wil do. 5 I woul b nic i th progra allowe yo t 'log ont anothe Library instea o proceedin throug th comman lin arguments Thi i m secon todo. 6 LSWEE offer absolutel n was way: A> CLINK lswp1 lswp1i [-n] The '-n' option causes the COM file to exit without a warm boot. BACKGROUND ========== Thi progra wa inspire b th recen infusio o ne Publi Domai program whic functio lik   WAS an SWEEP us LB file extensively Ever tim use SWEEP o it look-alikes woul imagin tha ha progra tha woul wor th sam wa o Libraries. I i somewha inconvenien t dea wit Libraries Conside jus ho mentrie i th lis a pointer t members. 3 Typ squeeze an unsqueeze file o th screen. 4 Extrac thos members, unsqueezing if necessary. Th mai functio i slightl modifie versio o th LDI main Th rea change aruc troubl i i t extrac Librar membe tha i squeezed First th membe mus b extracte wit LU Then i mus b unsqueezed Now ther ar thre version o th membe o you system th Librar member squeeze (external fil  i DIRLIST Fortunately READDI wa alread setu t creat memor imag o th Library' directory I wa onl necessar t chang som o th cal argumen name t correspon t LDI an t kee trac o wha th use ha aske th progr an a ASCI file Wha pain! Sinc ha modifie th origina languag versio o LDI (1) fel comfortabl enoug t d i myself Th firs ste wa t modif th languag versio o LTYP s tha i create dis fil instea oa t do QCA an ACA wer modifie t allo directin outpu t dis o screen Th SWITC don fo eac characte i probabl slowin dow th program bu I doubt that the effect is severe. NOTES ----- (1 - Se CATLBR.LB o Ri Lob R dumpin th tex t th screen almos stoppe there I looke prett nic havin progra tha woul EXTRAC squeeze Librar membe an UNsqueez i a th sam time Afte som thought cam bac t th basi problem m ne prograCP/M Kingwood T (713)358-7104. robabl slowin dow th program bu I doubt that the effect is severe. NOTES ----- (1 - Se CATLBR.LB o Ri Lob R wa anothe batc program I anythin wen wrong woul hav t ru th progra again. S th reasonabl thin t d wa t combin LDI an LTYP t for progra tha would: 1 Buil lis o member fo th user. 2 Us th   7||7zZZ)|/g}/o#|͉k|/g}/o#ɯ2hZZk:h|/g}/o#|/g}/o#:h<2hqDM!xxGyO҃)v|͔`i|)Öxڷz/W{/_ѯzW{_=yOxGæ2hZZ͉M|}ȯ|g}o)|/g}/o#z/W{/_!9~#fo! ! ! ! ! ! P!9~#A!9"w**w"j!z*"d!"f!Y"H>2^>2a>2`2c>2s2t>2r>2v!"@!"D!@"B!"F !F#x:~#!|2i~# :" 2i +}|~#:G:ix."2i+w# +6#!6#@A2n2?*j**|+`"d!"f!!>ڌo&͖=}  w~2ʸͼ56!+W ?_!~7z?ͧ:>͞@w#5.ww#w#w#w*>?@͌>w#͌5> w#@ͧ͵g 2q&0OxG͵j/ʆSx\͞.7:77!a{  ʨ ʨ0:?ŷO !y$ 7o&))T])))!y8 ;b͸{J?J?w{ÖüH!K]jU 2͵ ^#V#*~#fo^#*~#fo^#V#*n^#*n^#V# ~#fo^#& ~#fo!+!#!+!#!+!+}|z{|}|z 2p_ :p6)))Y~0̿7G~`2@2@#~2@~?>&=2@#^#V#^#V#"@^#V"@:@ '*{@!:@@'"@  *@#w"@*@~9'D'/Ϳ7͈?+"@*@+"@!6D"@6!^D"@*@~*@*@s#r#*@s#r#*@s#r#*@s#r#*@s#r#:@w#"@'*@*@s#r#*@s#r#*@s#r#*@s#r#*@s#r#:@w#"@'|E'}X27*@+~2@+V+^+"@V+^+"@V+^ound on disk.  0!H  !U  !p  !  !  !  COMMANDS: ? - Displays this menu. E - Extracts (and unsqueezes) a member. V - Views a (viewable) file. X - Exits this program. Any other input skips to the next m+"@V+^+"@V+^"@"@*@+~2@+V+^+"@V+^+"@V+^+"@V+^+"@V+^"@"@p';(ͯ''͋(!"@"K@2@<2@2@2@ͥ)()(*¾(2@2@(S*(#)2@2@)l*ç)<;00?;   Á!9DM! ! ͻ#| ! ;ember & P; î#Z#1]1S;0ø&!9DMk:$}Y M #|Y *!% *:$6͐ |„ ! ͐ #|ʒ ͐!> ͐* !.͐ #| !T* !* *s#rz*!Y # ! ! !: !I !!!R ! |I !n *:$6͐|Ҳ ! ! ! ! ! !* !I !x ! !  ! ^#Vr+sz ! ^#Vr+s~#fo|  *! õ Wild!M>$M<$!k ! Can't close library: %s Bad library name: %s.LBR Library: %s has %d entries, %d free: ß0ÿ1A! æ c!9DM!; 6!, 6#6͐,|ʰ*@$*@Ds#r!0 s#r!2 s#rM<$M>$!( s#r!( exp overflow LSWEEP Derived from: LDIR & LTYPE Joe Vogler 84-22-01 Ver:%d.%02d %s %s %s Requires CP/M 2.0 or better Correct syntax is: LSWEEP []... where , , etc. are unambiguous library names. F^#Vr+szڥ*@D^#V! r+sn}—!M@D`ḯM@D~#fo͉*1s#r*1~#foM@D~#fo)|ʆ!É!s#rM1`i͐2#*!͇M@D ~#fo!4 s#rM@D~#fo!6 s#r͐*͍͊!: s!: n}?Eiletype .LBR is assumed if not specified. Ambiguous names are allowed. ----->Avoid using wildcards in the extension. ----->If using wildcards, always use .LBR In either case, user/drive prefixes are OK. e.g. 'A>LSWEEP 4/D:*.LBR' is ok. %s not fVXxÆ͐J!: n&!͇!: n&`i͓>qA>\>aM>>Y>+G*3!: n&͐6͐4`i*͖>–>ʥ>a¢>ʮ!; 6*3!: n&͐6͐4`i*͙#|!; 6J*3!: n&͐  6͐4`i*͙#|(!; 6J`i!.͜!͇!; 6J*@D^#V{ _zWr+s!2 ^#Vr+s!( ^#Vr+sÉ!, w#wåÉÉ!2 ^#Vr+sâ!0 ^#Vr+s!͇ö!2 ^#Vr+sÿ!>9 %s * %2d. %-12s %3dk > %c Can't type %s files. r+sw![͐/͐2W! w#w͐͐I!`i͐)+|a!c!ì! w#w͐|;͐`in! s#rz;͐|ʧ͐##|³! 6#6W! ~#fo|g}os#r!͐|-! ^#Vr+s!-5> >c!9DM͐ |v!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!͐|p!>>"! ^#Vr+s-W! w#w-! ^#Vr+si! ^#Vr+s+!WW͐|“͐#|y!Á!͐/͐2͐8*:$6͐ì!9Cannot open %s Viewing file--> %s To Drive? (CR for default) ** BAD ͐|p!͐|p!͐|p!͐|p!͐|p!͐|v!è͐!.`is#rzʢ͐##n}Q¢!qè!aè!9.com.cqm.crl.frm.fqm.dbf.dqf.ndx.nqx.cql.lbr.lqr.obj.oqj.arc.aqcDRIVE PREFIX ** Extracting file--> %s Invalid mode!Error reading this entry - aborting Done. Error reading this entry - aborting %c ** ABORTED ** , Done. S;0û;s&$ëj!0]11Á$[2A!P;Ï34!E9DM! w#w! w#w! w#w!͐.rel.rql;S;0ëj!0]1(1û; <[2Ï34A!P;!Z9DM! w#w! w#w!͐! s#rzƒ͐!!ì͐>V“>ʢ>EŸ>ʶ+͐!<!! #|! 6#6!W͐! ! ͐!ͩ! s#r͐#|-͐!ͬ!* w#w*6c#6!͐͐ͯ! `i͐Ͳ|ʀ! 6c#6É! `i͐Ͳ! s#r! ! s#r͐! `i͐͵s! ^#Vr+sn}§͐>V>>E>|! !ͬ ##|! 6#6W! !<!(!ì<!͐͐&͐>E`>o>Vl>#T! w#w͐͐!`i͐)+|ʭ!6!ì! w#w͐|͐`in! s#rz͐͐,! ^#Vr+sõ! ^#V͸! ͬ! ͻ#|3!.;! 6#6É! ! ͐! #|k!Gͬ! 6#6É! !\ͬ! `i͐Ͳ! s#r͐|ڰ͐|! !rͬÉ*6#6*6#6! w#w͐͐S͐))*  ! `i͐Ͳs#r͐))*##! `i͐Ͳs#r! ^#Vr+s! w#w! `i͐! s#rzʉ͐|‰͐|g}o|ͣʤ!ç!! s#r͐>E¿>>V>Ã͐͐Æ͐|͐##|! 6#6n&|g}os`i^#Vr+s`i6#6͐|Ҏ ͐ |V ! ~#fo͐n} V Î ! ~#fo! ^#Vr+s! ~#fo͐ns`i^#Vr+s' ! ~#fo n} ʻ ! ~#fo! ^#Vr+s6.`i6 #6͐| !! ~#fo͐n} !! ~#fo! ^#Vr+sÉ! ~#fo|g}os#r!ͬ͐|€! ^#Vr+s!|ڀ> U>d>a>ru! ^#Vr+sÀÉ! w#wÀÆÆ[͐*:$6͐|͐#|½!ͬ!ͬ͐͐͐!9Cannot open %s Viewing! ~#fo͐ns`i^#Vr+s ! ~#fo͐6͐8!!9G!õ!>">!>">!>U">!>"> file--> %s To Drive? (Return for default) ** BAD DRIVE PREFIX ** Can't create file! Extracting file--> %sInvalid %s decode tree size %c ** ABORTED ** , Done. ñ0!ͮ!!ͮCtrl-X to cancel, SPACE advances 1 line, CR advances %">H#>">H#H#!Q#͐ n&|R"͐ n&|R"͐ #n}:R"!Q#U"K#͐ n&|"͐ n&|"͐ #n}/"͐ ##n&|"͐ ##n&|"͐ ###n}:"!Q#"K#͐ n&+|E#͐ #n&|E#͐ #n&|E#͐ ##d lines 00<;!9DM͐ ͐͐͐ !F For help, type LDIR alone.!9DM͐n}ʠ! n! ^#Vr+sn}! ^#Vr+sk!í45!9DM͐`is#r͐n}J͐n&ͪ͐ n&<͐`is#r͐ ! s#r͐n}n}/E#͐ ###n&|E#͐ ###n&|E#͐ ####n}:E#!Q#H#K#K#!Q#!9!9DM`iw#w͐n}ʟ#! ^#Vr+sn! n}“#͐å#`i^#Vr+sh#!å#!9!9DM! ^#Vr+sn`is{#`in}*#`in}?#!#ö#!#!9# ! ͐P`i^#Vr+sn&ͪ! ^#Vr+sn&9<! ^#Vr+sÿ!P!9!9DM`i6 #6`i^#Vr+sz͐n͐ nѯgW! s#rzʩ͐ n}?ʩ͐! ^#Vr+s! ^#Vr+sh!!9!9DM! w#w`i6#6͐| ! ~#fo͐$#run out of memory $ $s#r*@$*@Ds#rM@Dn} (M>$| (*>$^#Vr+s*@D^#V ͹)#ͭ)s#rz,!Ï-͐8|0,!Ï-!. ! ~#fo`i^#Vr+s)~#foͼ)Ø+!n n&!ͪ)!o ^#Vr+s,*!o w#w͐o͐lm-!q 6#6͐q͐_-!n n&! ~#fo͐q)~#fo͐o)!D ~#foͿ)|Q-͐q`i^#Vr+s,Q-͐q!s! r+s'M&*:$6!9 no directorytoo many directory entriesa bad directoryt(n5!9DM͐q(|ړ(!͐n}(! ^#Vr+sn}*(?(.(/((!Ó(!(1!f9DM͐`i(! s#r! s#r͐ s#r͐s͐N-! ~#fo͐s)! ~#fo͐s#)~#fos#r!s ^#Vr+s-é,!q ^#Vr+sÙ,!o ^#Vr+sÀ,͐y͐s#r͐{͐s#r!Ï-!u9*.*!9DM! w#w`i6#6͐|.! ~#fo͐n} -.! ~#fo! ^#Vr+s! ~#fo͐`in}N)͐`in} @)! ~#fo! ^#Vr+s͐`ins! ^#Vr+s(! ~#fo͐6b)!9q)ÿ1!9DM͐n}ʥ)͐͐n&n)s! ^#Vr+sy))?; =.;=Ü-n51#/!9DM!ͪ)!n s͐{~#fo! s#r͐y~#fo! s#r`i6#6!n&|g}os`i^#Vr+só-! ~#fo n} I.! ~#fo! ^#Vr+s6.`i6 #6͐|ҹ.! ~#fo͐n} v.ù.! ~#fo! ^#Vr+s! ~#fo͐n&|g}os`i^#Vr+sP.! ~#fo͐6͐.!9!9DM! ^#Vr+sn`is{/`in}*   /`in}?/!/.!/!9!9DM! ~#fo#n}:ʅ/! ~#fo#n}:‚/! ~#fon&! n&|/! ~#fo##s#rÂ/!÷0/! ~#fo#n}:/! ~#fon&! n&/! ~#fo##s#r/!÷0! ^#Vr+sn`is{ʞ0`in}?0! ^#Vr+sn`is{`is#r͐͐͐~#fo͒3͐94!4͐+?`is#r͐##~#fo|4!͕͐͐͐3͐##~#fo͐s#r͐~#fo͐s#r!!͐~#fo͘34͐##6#6͐͐s#r!4!95Ï30`in}.0/0!÷0Û0`in}*w0͐n`is{L0! ^#Vr+s`in}.I0L0$0͐n`is{t0! ^#Vr+s`in}.q0t0L0Û0`in! ^#Vr+sn}•0/Û0!÷0/͐n}±0!÷0÷0!÷0!90[=!9DM͐n}0! ^#Vr+sn&000[=ë5!9P;!9DM͐5!͐4͐~#fo4:59!9DM! n&75|a5! n& h5! n&&!9DM`iw#w! ^#Vr+sn}ʛ5`i^#Vr+s|5͐â5!9ú5:ê::ÿ1!Y9DM! ^#Vr+s~#fo! s#r͐! s#r! ^#Vr+sn`is{ʕ9DM*0! 0!9DM͐`is#r! ^#Vr+s! ^#Vr+sns{M1'1͐T1!9!9DM͐`is#r͐n}ʇ1! ^#Vr+so1! ^#Vr+s͐ns! ^#Vr+sn}‡1͐ö1!91ä9!9DM! n&1|1! n&1! n&&1Ê=`in}%f9! ! s#r! 6#6! s! s! s͐n}-J6! ^#Vr+s! 4͐n}0Z6! 4͐n&ͱ5}w6! ʹ5z6!! s#r! ^#Vr+sn`is{.6! ʹ5! s#r! 4! ^#Vr+sn`is`in&ͷ5}D6U/7X87OA7Cʇ7Sʸ71979͐~#fo|/7!9DM͐͐1s#rz$2!͐͐s#r͐##6#6͐6͐~#fog2[=?;=!9DM͐3͐>Š2>ʱ2>–2>ʿ2>¢2>2>®2>23! n&^2! n&!a2! n&!a2! n} 2! !a2!! ^#Vr+s6-͐͐~#fos#r! ^#Vr+s! 6 G7! 6G7! 6! ~#fo! n&! ^#Vr+s~#fo! ͮ5ѯgs#r08! ^#Vr+s! ^#Vr+s~#fos! ^#Vr+s08! n}7! 6#6! ^#Vr+s~#fo! s#r͐n}08͐|08! ^#V n&!a2͐##^#Vr+s|o3! ͐͐~#fod2|N3!͐##6#6͐͐s#r͐^#Vr+s! ns&Û3=À>û;!9DM͐ڴ3!4͐n&|g}o|3!4͐##~#fo|3!4͐##~#fo r+s! ^#Vr+sns! ^#Vr+s! ^#Vr+s7͐6! ! s#r! n}ž8! ^#Vr+s!|ڞ8͐͐! n}{8!0~8! !8!9~#fo#|›8!Û9L8͐n}8͐͐! ^#Vr+sn&!8!9~#fo#|8!Û9Þ8! n}.9! ^#Vr+s!|.  9͐͐! !9!9~#fo#|+9!Û98c9!Û9͐͐`in&!T9!9~#fo#|c9!Û9Ò9͐͐`in&!9!9~#fo#|’9!Û95!Û9!9!9DM! n&|ͯ9! n&|ͩ!9DM! n&|ͯ9! n&|ͩ(>*j!^#V*X#^#V >r+s*l5*R"R*j"*lP>2?#>#"l*T+"T*j! N#Fp+qx=##6>2? >2?7*T|DM*R*Pگ>><>~# x£> ><>~+ x¿>|} ,>>2?)~2#"j!!~#fo#::!9DM͐͐ V:͐^#Vr+s͐C:͐0K:͐7s!&á:͐ ͐͐ ͉͐:`is͐ ͐͐ )͐:`in&#&á:!9!9DM! n&|ͯ:! n&|ͩ:ê:!9DM`iw#w͐~#fon&:}^#Vp+q*j~#fo?s#r5 !\/:q25!> 2?+7*T|DM*R*Pگ>><>~# x£> ><>~+ x¿>|} ,>>2?)~2#"j!!~#fo#,;͐ ?͐^#Vr+snѯg`is#r:͐3;!9 7:PO*R#7,b;> 2h*P/:q2> ʲ;:h):Rʞ;=ʞ;=> ²;:qw#w#w:ho&552?;>7:P,>;2?!^#V*R:T<=;<*P;;*R!s#r7:P)V>گ2?<<2?7*+++:PG_*RDM! _ ~= Ó=#?S;7*P͍=:q2\5¾=> 2?!*P͐=7:P)"XV>z>z> z>z2:P,"j!"l*T|LLOWED ON COMMAND LINE. NON-LIBRARY FILE NAMES NOT FILTERED!!! ALWAYS USE '.LBR' IN YOUR WILDCARDS. CAN USE USER/DRIVE DESIGNATIONS, EG 'LSWEEP 5/D:*.LBR'. 4. EXTRACTION TO ANOTHER USER/DRIVE ALLOWED. SAME RULES AS 3. 5. FIXED BAD B  UG THAT KEPT PROGRAM FROM PROPERLY EXTRACTING FILES >32K IN SIZE. 6. OTHER MINOR BUG FIXES. RIVE DESIGNATIONS, EG 'LSWEEP 5/D:*.LBR'. 4. EXTRACTION TO ANOTHER USER/DRIVE ALLOWED. SAME RULES AS 3. 5. FIXED BAD BvqSAP38.ASMW  !#"$%'&)(*+,-/.10243576o8:9;<=>?@ABCDEGFHIJKMLNPOQRSTUVswFvu8U j˪iOW._]ꆻ akSsxk:}k˪iO=u۷6EPda=Fݞf [._  ]ꆻWugkŻ.#?wۿ?}|arޑO>F_V?HU~an?=?Iֈ[0?Y]0/ŷaa3l|+_pWs[?_ޮ _A+`*iq#n?eX?Y#̍ ?×{Gwnp9?Y?֟an?R#ݎ_r]`Ͱ fX~ u5x[63l5:Ȱ6c,[59ː70Cΐ螕![M2{k2x;C\H!]2t {:%f kta3F ěa3,AͰac%]$kWd `[Ǹ.mS&C&'%K[*S^(!uHGOmjn[&68cfF.f>5>Uh >5%K[?s[f9w߬oG_0/ś׽#?Y0› /gϰ5# f،8 sr|hƧcwN.6뎅9o,eҌy Xӯ+^k}_:7"򬌏'\y1=/k,ΉJ\~tq?Zmh;'N3.qwN${5q0X/[[x_A9Y*ڊ~Q'd=E*z]=C'|#8pHQSpF!Ϣ=~Y~qp`2,!uHv.7C'>ud jM$;]~qp4͐g =d6e$W{.83dY4Cwh|oM#&Jr~ ЉoCmiz%]&w2. X~}99LܟxfX~ČcwN.3W 623.X~ OX tKͰq$Z;C Lj ]ː ,3l5:ȰVo ^uwŇ6d qw{v6KfdZWPwwХmY{=,b`kU{jgkv3Cw=a3l+Sf lF1ep!uo'+Cww] ܥjgIE_>>o"e`) >53tiL:!v6N%>>o"溵W2y}jf8FtX2, ]ڦ3tt!! 2dY4CgOM2tt!udh".X: 2dY4Cww d,GH x{wwϒQZܫŀuwV&ӎ%{<w;ghlr讷YGsNݨ_u>KcI\=>?r![1X:I%Kygz]=C'xJf8Y ,.b!uIU..l6-)|+);C0b)ӯd=EϪzP? @/pųe>可,phw]OH6A.mS =d,GH xA.mSd C`9Bd Csceΰ_2lͰ可اzb` CE3I xA.mS&ZΞ2FtCkQ EO|}jJYO]l`g,G>߭y2,!Qd,GjgI΃ ܵWM{\{5"C1"y a|oM`9;Þ~ɰ6c  iXww1ާAmSʐi:Kwm_ %]2tizjM$ 9@i^!͐gQ>l}k͐h4XO1ːhl^5]^ХmjP;Q>M9d?ͰӼq5ڦ.d:~ݳ2dY4CgOjMcKs!u2{k1QU^{ =dzr2lͰ_ZO[ i;C`9$ƻ^÷gghOӼɶڦoe ak~S몹 z9ޛa3F ͐➠gΰ_2lͰmoq@̰`98X: 2tw?kfh 7C`9dː➠g.>6k3^Wl?}8 x[Um f [̰5=3Cuun>n-X 'Y^N!Jv֬}5X5W0Þ~ɰ6~ݳY%C'ΰ_2l8gFt)^a3Yc]ڦL|oMN匆\$[Š\NO?C'^G,va뒡utbg xX: 2!>2tΐg 娓 C0s(C'Y x]xwAj:gͮ =CӟE%{q4<^5^c ěa3گuiگ{VrD4C`9dːޏ;c~KEXf,GljM]h:{:g5] irɖ6|6z]=C_|oME;Þ~ɰ6㙍6c2 8FgʮD[e͐שּ %>`1٘O |o=>k~Sg6fa=a3l.dC g C|ehhc!>2l==VmH2T2, 5ڦ2, ܥ5]cmkmZd;Þ~ɰ6>Yg64^ⶁx3lƛӼ|oMoghlro s!%C3tw\Z[ C'\<÷jS,3>\ {:%f [~,/bOk2 ęzN?_~ZuqTo  C.|O%!㙽4^ Ջ(ba3lXgIv_A=+CMڇw=ÝaOGd axu3p0>{Z:j}Y6ôΛ6~kW@=+C`9$wy__ KN!? ޚ io|:!pȴmf/6f8E34S4Cl4Idh;Þ~ɰ6`Y ñmS}'YGMЫw^A<:jgIB34Хm2hy%\ X3x34Y4Cdצb pCksm| ޚd>"CY3f،;~ˑ'{|oMۼ dͧY:'_f5=eF֦k26=eVΓp͖,.}ʮM5c  Þ~ɰ6]oצX<{= qcޚL;$4t35H aRl?Wwa3h2M]ȁv6$}2tiw2tpJ  Y;Xfg(鎝K} ܥp6\1`bg،i3qFԅxa|oMoG[.mSrg`=\Q'dͧ.C~%CuQVm0C'sAl=\悘a3lc[w3fXwݳ2tC3Cẁkq|tF۔X:2t9B!5g,G!Qg6u0ClD ]ڦg5Ok^f0ާo}bgܻ|c+vƽmw<x^3]o;qza6W 93aOGd ak˪p+-g،y{;tyA40ּ3k^f ƚWXћX7߱ogݱ;XW {:%f +뒽{VAtMͭxd=kyŖ=Wͺ{V9ޛa3l:]o;Mݻ|eX ܥ"2\ǚ}jfh 娓D:KԽm c:KE3tpȀsAduiw0Хm.CgO}jf /pc"2tp g uh]*"CwX: 2ԡ7?4C`9"Ȟc:.#C#DdX kw.CE3dY3CӟEd,G$2^ 'oN!.lO'ە+] +eo}>jBa}6C  ApK=a3l 1~r[6OGͰE/ 娓Dg x͐g "2NZgtyA40ּ3k^f ƚWXћX7߱ogݱ;XW {:%f +뒽{VAtMͭxd=kyŖ=Wͺ{V9ޛa3l:3lMl`]pm΍[{e"

Nuۧ6߹N\aacܥ"2#j53#@ 娓Dg x͐g "2NZgeimSrgd,Gg,GQ'[<=C{of:^p]ٞfh.mS 5ڦ]o;2ttFԽm!u3t9B-C`9jdX:93t B4C`9dХm.C'_3l\a 5ڦ} xХmХm󛡳 5ڦCf,Gl!X:I3t B3C'^8fbmSf:֡T3CO =d6uzag C' ";Þ~ɰ6M3.G6 刷m ~a6^71f\8X:2t9B!5g,G!Qgΰ_2l`iX&ӎvBCHGCHAR.ASMO  !"#%$&'(*)+-,/.012435678;9:<>=?B@ADCFE34 135jtp:phi^=a3l-Ňe>^g6^`{ddgghbb*3 [+?? s~-|_ݬFYC +bbwX11 Cd³tKͰf߽Þa3oyΘy5fy8k^3@?5pko\яoE6yθzWGHIJoKMNLvf$Y6;wy? GVN%w5{z9msTyWI~N2ܻM9tϜ]In Tw<[+|yXح>a%|݃aIp.vFv0, .y  8w ;8ֿ§98\Tw'vG滕T"[?dh˹c8u><T%pq= yn'$'䩞K`ᬟ㼫VS N즶V ytz.玼Twn;9{AxS݅ d+~5s|TحSt09Cx7<}b-fu*՞#gƤSž'vISr*ټ$K{VmwMQ0)*sVvu 4Zqs|XaC4 ,t4!:d Ys| C9m s[$ :_Xnds黎5[HÒ?=pd{ݺ)2f =e s@5,n!eKGDe*ټ$kX޵xﲲ[7e@l swy b !OK<5=М^&vr8lU߭<]nu3pk*ټ$+rVbw{ů~|wM .8gH jaI򻎕MAy{ۺ)CcV)aS]%ydnkI"u 5+}VoVR{ő thw]n?OAh5,n*%C軮갲ۻ@pduln1+%S]w,A_UwdX Gk?rvG滦(8]M?]boUUkOsp\;~v{ b- 9#:v_;uv{Au hwdX睴v{Z\˜;n;g5EWnnJn{UUkϳER2s9v߿n=Okzc!8v{ێ[$OwMQ0)G_Kt_n{uS$ 1+MؼUJrTyWID+٫`R>HF~}++կ^qd+]+ުi+qҿ9 B2R]J5,nݔY`$uln1+%S$]w,?wۻ-[2gߵƒk$n'$~#"yr_1ͻRckJh4ZX0ۡԯ/IXI:Vn/|&$gC}nݔyAw*́~]w(lVv0 S)9a`78f>_v0 St;wv.CyaD ő?n[_&BYf 04EGDu=Ma@S]w(lVv;]|Ha@)]w^جv.ûw}聘YM+~5skX`UNK]ByEjClWwݡDn[z9A+]Rkcy*Cm aws`Mw]7>`X2 C.ajջݶJIculV~YuQȟanJ}0,d@u:\$vvS3wۻ,Vxp-WCnwMQp,ۻRckc95-l|aID肄wMQ0)˷[7ev!sl*%]Vv;<9 3i4LaZ5 24{ Z}UyeHsl5g}?LsaI򻎕]w,q&ڭ2+Q]w+ڭ2O.Hxnß=JIkJ氬w}聘-l|aID肄wMQ0)˷[9+l_}n`R+kqT9;F|uSa%;"ȟzQ=]+<%`X2AVwz}Uuݔ?]sʻcR[:siֆ,F\b3 !)[ <=A3p5#-h8BH <ȕxw*C1@xB;%]Hc@m6dq b<MɅ4 Wݠ BHqGgA"-hCW3nɃ\w{1ɻK=  suXR k?rvG滦(8]M?]boUUkOsp\;~v{ b- 9#:v_;uv{Au hw=A3p5#-h8BH <ȕxw*C1@xB;%]Hc@m6dq b<MɅ4 Wݠ BHqGgA"-hCW3nɃ\w{1ɻK=T SPECIFIED OR IMPROPERLY SPECIFIED $NO FILE WITH THAT NAME FOUND ON DISK $FILE SUCCESSFULLY ALTERED $\<>2}2~2!\!:f³:gw:f#¨"\*}#"}Ô%\K PARAMETERS NO ; ;======================================================================= ; ; SUBROUTINES ; ;======================================================================= ; ; CLEAN: LXI H,0 ;I = 0 ; CLNLOP: SHLD I CALL INDEX ;HL = BUF + 16 * I STA SECTRN PUSH H LXI D,15 ;SECTRAN OFFSET FROM BDOS IN CPM 1.4 DAD D SHLD SECTRN+1 POP H LXI D,3AH ;OFFSET FROM BDOS TO 1.4 DPB DAD D MVI D,0 MOV E,M INX H XCHG SHLD SPT XCHG MOV E,M INX H XCHG SHLD DRM XCHG MOV A, MOV A,M ;JUMP IF THIS IS A DELETED FILE CPI 0E5H JZ FILL$E5 LXI D,12 DAD D ;HL = HL + 12 MOV A,M ;CHECK EXTENT FIELD ORA A JNZ CLBUMP ;SKIP IF NOT EXTENT ZERO INX H ;POINT TO RECORD COUNT FIELD INX H MOV A,M ;GET S2 BYTE (EXTENM INX H STA BSH MOV A,M INX H STA BLM MOV E,M INX H XCHG SHLD DSM XCHG MOV E,M INX H XCHG SHLD AL0 XCHG MOV E,M XCHG SHLD SYSTRK RET ;..... ; ; ; CP/M 2.2 ROUTINE ; CPM22: MOV E,M INX H MOV D,M INX H XCHGDED RC) ANI 0FH ; FOR CPM2, 0 FOR CPM1 MOV E,A INX H MOV A,M ;CHECK RECORD COUNT FIELD ORA E JNZ CLBUMP ;JUMP IF NON-ZERO LHLD I ;CLEAR ALL 32 BYTES OF CALL INDEX ; DIRECTORY ENTRY TO E5 INX H MOV A,M ;GET FIRST CHAR OF FILENAME SHLD SECTBL XCHG LXI D,8 ;OFFSET TO DPB WITHIN HEADER DAD D ;RETURNED BY SELDSK IN CPM2 MOV A,M ;GET ADRS OF DPB INX H MOV H,M MOV L,A LXI D,DPB ;POINT TO DEST: OUR DPB MVI B,DPBLEN CALL MOVE RET ;..... ; ; DODIR: STA WRFLA*%!F>>#m !F>##&+~0 B !gw* x!g~!fw!"g#####(+~2f##~2g>2h\<>2}2~2!\!:f³:gw:f#¨"\*}#"}Ô%\K PARAMETERS NOG LHLD SYSTRK CALL DOTRAK ;SET THE TRACK LXI H,0 SHLD SECTOR LHLD DRM ;NUMBER OF DIR ENTRIES INX H ;RELATIVE TO 1 CALL ROTRHL ;DIVIDE BY 4 CALL ROTRHL ; TO GET SECTOR COUNT SHLD DIRCNT LXI H,BUF SHLD ADDR ;FOR DMA ADDRESS ; D  IRLOP: LHLD SECTOR ;GET SECTORS PER TRACK INX H XCHG LHLD SPT ;CURRENT SECTOR CALL SUBDE ; SECTOR - SPT XCHG JNC NOTROV ; ; ; TRACK OVERFLOW, BUMP TO NEXT ; LHLD TRACK INX H CALL DOTRAK LXI H,1 ;REWIND SECTOR NUMBER ; NOTROV: The obvious solution to this problem was to use the "find and replace" option in wordstar. This worked but necessitated swapping disks and going through the interminable wordstar "boot". Not to mention the problems encountered when CALL DOSEC ;SET CURRENT SECTOR LHLD ADDR MOV B,H ;SET UP DMA ADDRESS MOV C,L CALL SETDMA LDA WRFLAG ;TIME TO FIGURE OUT ORA A ; IF WE ARE READING JNZ DWRT ; OR WRITING ; ; ; READ ; CALL READ ORA A ;TEST FLAGS ON READ JNZ RE the remaining available disk space is less than the size of the file being modified. I recommend placing the CHGCHAR.COM file on the Supercalc file disk. Its operation is outlined as follows: COMMAND LINE SYNTAX: ----------------- CHGCHAR.COM-CHANGE CHARACTER PROGRAM ------------------------------------ written by Al de la Torre vice-pres. gold coast osborne users group (GCOG) nov 1983 I wrote this assembly language program originally--- ASCII CHARACTERS: To use the program from the CP/M prompt type: CHGCHAR d:filename.typ A>B where d:filename.typ is any valid CP/M file name, A is the ascii letter you wish changed, > instucts the program to look for ascii to simplify data transfer between Supercalc 2 and Dbase II. The particular problem I encountered was the fact that Dbase II delimited character strings with single quotes. The SDI (super data interchange) program which comes with Sup characters, and B is the letter which will replace all occurences of A throughout the file. NOTE: there should be NO spaces between the parameters (A and B) and the > NON-ASCII CHARACTERS: I included the capability to ercalc 2 had no problem converting the data. The problem arose as a result of the single quote delimiters, which when used as the first character of a cell entry in Supercalc, repeated the data following it in every blank cell to the right. find and replace any non-ascii character simply by specifying the two digit hexadecimal equivalent of the character using the following command line syntax: CHGCHAR d:filename.type 00#ff where everthing   is the same as above with the exception of the exchange parameters specified, # instructs the program to look for hexadecimal characters, 00 can be any hex character in the range 00 to ff, and ff will be the replacement characterelf. If some area of the code needs clarification I'll try to explain it if you wish. H (305) 653-2871 W (305) 374-2730 ADDITIONAL NOTES: ----------------- Care must be taken when modifying ascii characters in a wordstar file created in "D"  (which will replace all occurences of the first parameter 00) it also can be any characterin the range 00 to ff NOTE: there should be NO spaces between the parameters and the # THIS PROGRAM DOES NOT PRODUCE A BACKUP FILE OF THE ORIGdocument mode. If a soft space has been inserted next to a letter, what has actually happened is that the high bit of that letter has been turned on or "set". For instance the normal hexadecimal representation of the letter A is 41. However if a sofINAL!!!! This allows you to modify files of any size without worrying about whether or not there is enough disk space. SAMPLE COMMAND LINES: CHGCHAR SAMPLE.TXT '>" will change all single quotes ' to double quotes " CHGCHARt space has been inserted the "A" will still appear normal when viewed with wordstar but will actually be represented by C1 hexadecimal. Therefore if you use the command line syntax CHGCHAR SAMPLE.TXT A>S these "soft space A's" will not be changed. T B:SAMPLE.TXT 0D#8D will change all "hard" carriage returns to "soft" carriage returns. This will allow you to reformat files with the ^B option This program uses only standard CP/M function calls and will therefore work here are two ways around this problem. First is to use the hexadecimal command mode and invoke the chgchar program twice the first time to change all normal letters, in this case: CHGCHAR SAMPLE.TXT 41#53. And the second time to change all high bit o with both CP/M and CP/M+. (Works on Osborne 1 and Executive) The accompanying file chgchar.asm is the assembly language source code for this program. I heavily commented it to assist other begining assembly programmers like mysccurences of the letter, in this case: CHGCHAR SAMPLE.TXT C1#53. The second way around this problem is to strip every high bit using the Z option and piping the file to itself, then using the normal command line syntax. It should be noted that upper   to lower case conversion of a particular character is not possible using the ascii command line syntax. The reason for this is that since the parameters are given from the CP/M command line; the CCP changes all characters to upper case before puttingQU ($+255)/256*256 ;START BUFFER ON EVEN PAGE ; ORG EVEN ; BUF: DS 0 ;..... ; ; END ; TRACTION SUBROUTINE... ; HL= DS 2 SYSTRK: DS 2 ;..... ; ; DS 26 ;STACK NEVER GETS THIS DEEP STACK: DS 2 ;SPACE FOR OLD STACK ADDRESS ; ; EVEN: E them where the chgchar program can use them. is that since the parameters are given from the CP/M command line; the CCP changes all characters to upper case before putting;*5$!9"1 SORT AND PACK DIRECTORY v3.8 10/16/83  |-}#-2vͧͯ]DONE !"h~ ~##~_#~*h#~+- 6# *#*h#ڲ*.0 MVI A,1 JMP DODIR ;..... ; ; ; COME HERE IF WE GET A WRITE ERROR ; WERROR: CALL ILPRT ;PRINT: DB '++ WRITE ERROR - Exiting to CP/M - directory left ' DB 'in UNKNOWN condition ++',CR,LF,0 JMP EXIT ;..... ; ; ; DATA AREA ; ADDR: DS 2>23"4:^#"^#"~#2~#2^#"^#"^"^#V#"p~#fo$2w*Ͳ!"r*#"f!"d*r#*Җ*t#Ͳ!ͻ*dDM':w*"tDM!"rDM*p 3DM:v$-:n*~#O))) DIRCNT: DS 2 I: DS 2 J: DS 2 MAPPTR: DS 2 NOBOOT: DS 1 NOSWAP: DS 1 SECTBL: DS 2 SECTOR: DS 2 TRACK: DS 2 VERFLG: DS 1 WRFLAG: DS 1 SRECLEN:DS 2 SSTADR: DS 2 SSORTV1:DS 2 SSORTV2:DS 2 SSORTV3:DS 2 SSORTV4:DS 2 SNUMRECW:DS 2 ;..... ; ;))*d"d*f+"f|}'~#$ ** SAP not useable with MPM or CP/M+ **!"h ~0ڔ Ҕ2j#~$”#~$”#:jw+6$+6$+6$*h#*#` ---> Reading, 2n[++ READ ERROR - Exiting to CP/M - NO CHANGE made |g} ; DISK PARAMETER BLOCK: ; DPB: SPT: DS 2 BSH: DS 1 BLM: DS 1 EXM: DS 1 DSM: DS 2 DRM: DS 2 AL0: DS 1 AL1: DS 1 CKS: DS 2 SYSTRK: DS 2 ;..... ; ; DS 26 ;STACK NEVER GETS THIS DEEP STACK: DS 2 ;SPACE FOR OLD STACK ADDRESS ; ; EVEN: Eo:\=O:vASorting, *h"!"z! "x*"}O*h}o|g"x!"|"z- xh"~""~Gœ# x‚Fwx# xŸ*|/W}/_*|#"|**~{ozg"À*z#"z"|*x}|>**~w}o|g  Writing, >[++ WRITE ERROR - Exiting to CP/M - directory left in UNKNOWN condition ++ ~Gœ# x‚Fwx# xŸ*|/W}/_*|#"|**~{ozg"À*z#"z"|*x}|>**~w}o|g>.w͒:<'2: =2 )!!̈́1͡>2 :=2ûEG$ FHUSA$!>̈́*^#V͒>.w͒!DÄ_>$~w#Ä~w#’> w  2 ø!̈́*U TA CX$^#V#N#F #>2%N#F#^q#Vpr+s>.w͒:<'2: =2  | $ÀNAMES SUBûEG$ F>$~w#Ä~w#’> w  2 ø!̈́*U TA CX$^#V#N#F #>2%N#F#^q#Vpr+s!9"1:m2&!]~ " 6?#\<2F!:̈́û++NOT FOUND$!R̈́:eA C $\<ʍ=!o*w#x":<2Y:!Js#r# =™:2=2%:=22!J##:=2:%®!J"U>2  =ʶ*^#V#"  M, DIRLABEL.ASM, DIRBANER.ASM and others for anyone who is interested in the technics involed. It also uses the subscript mode on the epsons. by Dale Peterson March 1983 Compuserve 72366,2645 s involed. It also uses the subscript mode The DIRBANER.COM program is used to print labels for disks. The program is written to be used with 4 inch by 1 and 7/16 inch labels. It is also configured for use with epson mx-80,mx-100 with graftrax plus. It may also work with others I don't know. To use the program insert diskette containing DIRBANER into drive B insert diskette to be labeled into the A drive. Turn on printer and put on line. From the A> prompt type DIRBANER . The program should print the first file on the disk in expanded letters followed below by all the file names on the disk in very small letters 4 col. across. The 1 and 7/16 inch label size was chosen so there would be room for all 64 possible filenames. This is a modification and consolidation of DIRBAN.AS  Z VDO for O-14*",!."*,"*,"?>2H1Ab ͜:! "1)Ϡ報젱( $!:\(w#6#!]> (!e6#>(6 #= !#!3FNy(-B0 ##>͚0>2H}*W#w"W*Uͦ8k!"?*ͽd͌̈́8 > *W I"?0 <kͦ+8 Oký*͌~ ½Oý̈́*W~(5> +"W* ~( ~o4o+w" ʌ o͌<͎*~(5> #"*W ~(~B84 ##NFy(>}B> 6#= 'd _!"h"j"k"|\:|G:k $ !h4!"j"k"|\ H\ T!~(. (! ( ~ >>( 4#w# \> (#w4#w"W v Ok: (| } ʱ ǰ(>w\ \>2H>2HBAK!~w  1(: : >2H ++ͽ8͌O<>2H :=G   8 >2H%v̈́8*W~(~4>!~*> !~(6!!6!0͎8:m> Ok͎͑*~(5>#"!50 ;w# 0 @>^w#w#>(+~+ 0+> www}ր*U+6 *:Do%"+":G#6  *#"E BDM*UDM*W**DM*WDM*++͇*+*W"W#"͑*W#*"+"Ẅ́0*W~ > 7>  ###7?(*~ # +*W~ #"͓*W#"E*E͇0>2H*E+"W͌< ( #w#:@ =2@ :=2@ :@ Oa GO> w# :@ (0O:=2@ !:=2@ :W> A  !:=2@ ~#A ͬ * ( o 8o *> wɯ ~#(O > y(A (#+͎0S> *! 7?z 7*+> ##>+*?+"?:D(=:D*?#"?!(<:2D> :C=:C=<:C!<:2Cm̈́8,*UT]u~# ((~( (>"W͎*T]u~+ ((~( (>"o͚0  !  yO ( ' w# :9  :9 O> :=G:9 O x( Ha +>  T]>  (:D_"s 08:D2D0 k29 <2>6 xG ͇0:COx2>829 x2C29 !*s :D=(_: :C=(G:9 O "A:=!C  <( G*B  0*#:D_:(_: *?$:>o&*A>w͉ :H͓͚8*WR >2H0>2H*W"W#ͦ<͓͎* !\ *E͇*E) !\ ÜͶ File name (end with RETURN): y ƀo&>6 #= !6 ... E$.:KFile too bigWrong keyI/O FailureString not foundDisk fullBA*|^#V!s!/"@ o f   a     J tH  :HE͋ Ͷ Error::Ho& ~_#~Wͬ Ͷ Waiting#6  !:: :A8Y8 8Q0M<2!~.($ (*a8 !83:8A8+[0'>(!#>8#\! 2 ͜>2Hɯ2 ͓Ͷ Printer Setup codes (then RETURN): ( G!~A#͎* A: <2 :> 82 > A [{z0 Appended for VDO 2.A: 11 April, 1984 See end for command changes -------------------- ------------------------- ---------------------------- ---------------------------- ------------------------- -* (#" ^#VS ! "  Ͷ Command: #O! " !Y>!YT]P>K q#pS !f 8͎8̈́8*~A7_[?)o 0o 8o 0͑o 8͑o 0F#^#V## ^#V## ͋ Ͷ VDO 2.A (F.M.) <>-------------------- VDO is a file editor for the OSBORNE-1 computer. It is not a text editor in that it does not have such features as word wrap, paragraph reflow, just- ification or pagination. Since every OSBORNE system comes with Commands: Cursor:T-Top, B-Bottom Character: O-change case File:N-setName, L-Load, S-Save P-Print, I-Insert Define:F-Findstring, U-Usercommd Block:H-starts Here, W-Write, D-delete Exit:Q-no update (Quit), X-update TB0FI[ S W WORDSTAR, it would be foolish to provide duplicate facilities. But since WORDSTAR is well known to all OSBORNE users, VDO has been made as compatible with WORDSTAR as feasible. VDO is intended more as a replacement for the misbegotten line editor N P H U" D% O QO XG Lɯ2\ !]6 #?I:] ͋ [ 2H*EMD*W#z0mu O  m VmV@ o f   a     J tH  :HE͋ Ͷ Error::Ho& ~_#~Wͬ Ͷ Waiting, ED, which comes with any CP/M system. VDO uses very little disk space, and can handle reasonably large files. It can be used to create and maintain CBASIC source files, dBASE report definitions, or data files for MAIL-MERGE. VDO is quick to get   started and simple to use, while still providing the elementary editing func- tions. 1) Invoking VDO: VDO is invoked from the CP/M command prompt ("A>" or "B>") by typing "vdo" followed by the name of the file to be edited. In this respect it paces. Line Size: No line may exceed 256 characters. Adjacent spaces: No more than 127 spaces may be adjacent. VDO may also treat adjacent spaces as a single character at times. Just as you do in WORDSTAR, VDO allows you tofollows all CP/M conventions. The chapter entitled "Learning and Using CP/M" in your User's Reference Guide has an excellent description of the form of a file name. Examples: A>vdo mypgm.asm A>vdo b:glinfo.bas B>a:vdo weekly.rpt  move the cursor (_) around in the file to where you wish to make the changes. The keyboard is used as follows to effect your changes. 3) Keyboard usage: The arrow keys are used to move around in the file without making changes. The function is2) Editing the file: Once VDO has been loaded, it will attempt to load the file named on the command line. If you are starting a new file, VDO will not be able to find it and will give an error message. Just hit any key and VDO will be ready for  slightly different from that of WORDSTAR, being more like the dBASE-II usage. RIGHT - Move the cursor to the next character in the file (if any). Note that the carriage return (CR) at the end of a line is also a characteryou to enter the data you wish to place in the file. VDO works differently from WORDSTAR in that it keeps the entire file in storage while editing. This means that you don't need extra space on the disk for temporary storage and that you can chang. LEFT - Move the cursor to the previous character. DOWN - Move the cursor to the start of the next line. From the last line, DOWN gets you to the end of the line. UP - Move the cursor to the beginning of the line. e the diskettes whenever you wish, without worry! There are also some restrictions caused by the way VDO operates: File Size: VDO may not be able to edit files of over 50K; it all depends on how many spaces are next to other s If at the beginning of the line, move to the beginning of the previous line. RETURN - If insert is off (indicated at the top of the screen) RETURN acts the same as DOWN. If insert is on, RETURN inserts a CR into the    file at the cursor position, starting a new line. (ENTER, in the numeric cluster, is the same as RETURN.) Note that RETURN at the end of the file always adds a new line. TAB - Inserts a "TAB" character. The display has "elete the character at the cursor position. If the cursor is at the end of a line, ^G will delete the CR and join the two lines. ^- - Delete the character just before the cursor. If the cursor is at the beginning of a line, Tab stops" every eight columns. ESC - Calls up the menu of available ESC functions and gives access to them (see below). CTRL - Held down while entering a letter in order to invoke certain VDO functions (see below). All the ^- will join it to the previous line. ^? has the same effect. ^T or ^Y - Delete the rest of this line. If the cursor is in column 1 at the time, the whole line including the CR at the end is deleted. ^V - Turn  rest of the keys (letters, numbers, space) are used to place data in the file. The exact way in which this is done depends on whether insert is on or off. With insert on, the characters are inserted into the file ahead of the character at the cursor insert (described above) on or off. ^N - Insert a CR. This is needed when insert is off, and a new line is wanted. It performs the same function that CR would if insert were on. ^P - Accept a single character from the kposition, moving the rest of the line (if any) to the right. If insert is off, characters typed will replace the characters in the file, except for a CR which always gets moved over. 4) CTRL functions. The CTRL key is sort of like the SHIFT key eyboard and insert it, as is, into the file. This allows you to place a character (such as ESC) into the file, rather than have it call up a special operation by VDO. See the table below for special characters ain that you hold it down to change the meaning of some of the keys of the key board. The way this is written is with a caret (^) and a letter. Thus "^G" means to hold down the CTRL key and hit "G". In VDO the CTRL functions available are: ^G - Dnd a warning note. ^C - Display the next screenfull (scroll down). ^R - Display the previous screenfull (scroll up). ^F - Repeat the previous FIND operation (see ESC operations, below) from after the current cursor   position, 5) ESC Operations. When you hit the ESC key, you get a menu of the operations available. At the bottom of this menu there is a handy list of the CTRL functions as well. The ESC operations are performed by hitting the corresponding lend "(esc)D", they must be issued as follows: 1) Move the cursor to the first character to be deleted. 2) Hit "(esc)H". 3) Move the cursor forward to after the last character to be deleted. tter after hitting ESC. If you just want to see the menu, hit ESC when it is displayed in order to return to editing the file. The meaning of these operations is: T - Move to the first character of the file. B - Move to the last character of t 4) Hit "(esc)D". N - Set the file name to be used for I, W, S or X. The file name, in standard CP/M format is entered at the bottom of the screen. I - Insert the file named at the top of the screen into storaghe file F - Accept a string of characters and find the next occurance of them in the file. The characters are entered at the bottom of the menu screen, ending with RETURN. If the FIND operation is to be repeated wite starting at the current cursor position. S - Save the current edited data into the file named at the top of the screen. If this save is the first one after doing a load, and the LOAD/SAVE file name has not been chh the same characters, hit ^F. You have to be careful here, as the string will be found only if it is an exact match for the one entered. In looking for a match, upper case letters are considered to be differentanged by use of the (ESC) N function since, then the old file is renamed to have a file extension of ".BAK" before writing the new file. W - Write a portion of the text out to the current file. The block to be writt from lower case letters. H - Here is the start of a block of characters to be deleted or written to disk. D - Delete everything from the last "(esc)H" to the current cursor position. In order to use "(esc)H" aen is from the previous "(esc)H" down to the current cursor position. "(esc)W" can be used to move text from one part of the file to another via an intermediate file. another interesting use of "(esc)W)" is wh  en you are unable to save a file due to a full disk, you can use "(esc)N" to point at some large existing file and then "(esc)W" to replace it with a much smaller one; almost the same as erasing it! P - Pri If you do not have room for the ".BAK" copy on your diskette, you may have VDO simply replace the old file by using "(esc)N" to specify the same name as a new name. If you find, on doing a SAVE, that the destination diskette is full, you may simply cnt the entire file on the printer (CP/M LST: device). You will be given the chance to type in a string of characters to be sent to the printer for initialization before the file data itself is sent. VDO performs no hange to an emptier diskette and retry the save there. 7) Graphics and other special keys available. There are a few useful characters hidden in your OSBORNE-1, and I'm not refering to Thom Hogan or Lee Felsenstein; I mean things like { or } or ~. fancy text reformatting, or pagination. It just sends it out to the printer. You may want to use the initialization string to set TAB stops, for example, or you could store the codes necessary to set it up in a file. Q - Quit. Give Take a look: they aren`t on the keyboard! Here is what you can input using VDO: Special characters using CTRL: ^, generates { ^. generates } ^/ generates ~ ^= generates ` Special characters which must be preceeded b up. Abandon the edited file. Do not save the altered version of it. Q is used when just looking. X - Exit. Do a SAVE and a QUIT. L - Load a different file. Abandon the current edited file, ask for a new name, and go y ^P: (NOTE: If you are reading a printed listing of this document you will not see the pretty graphic char- acters in the second column, and some of them may do strange and wonderful things to your printer when they get there. ^P^S turned my printer  load it. 6) Saving the edited file. If you load a file, edit it, and then use "(esc)X" to return to CP/M, VDO will rename your original file from (for example) "MYFILE.ASM" to "MYFILE.BAK" and then write the edited text into "MYFILE.ASM".off!) Input Graphic Notes... ^P^A  ^P^B  ^P^C  ^P^D  ^P^E  ^P^F  ^P^G  ^P^H  ^P^I ....Tab - does not display as graphic. ^P^J ....Not available - LF is discarded by VDO ^P^K !  (used as vertical tab by some printers) ^P^L (used as forms feed by some printers) ^P^M ....Not available - Actually is CR ^P^N  (SO for printers) ^P^O  (SI for printers) ^P^P  ^P^Q  ^P^R  ^P^S  byte screen width. CHANGES FOR VERSION 2.A By: Frank Muennemann 1032 Ramona St. Palo Alto, CA 94301 Version 2.a is a heavily re-written VDO. I trans- lated all the source code into Z80 assembly language, in order to compact it and  ^P^T  ^P^U  ^P^V  ^P^W  ^P^X  ^P^Y  ^P^Z ....Not available, signals end of file. ^Pesc  ESC; used by many printers ^P^\  ^P^-  ^P^?  DEL Unfortunatly, some of the graphic charackeep the .COM file under 4K. Following are the changes made to the keyboard commands. Most changes are intended to make the structure more similar to WordStar. ^A - Left one word ^B - Turns Insert mode on (but not off) ^F - Right (forward) one ters are not available since they correspond either to some value that has a special meaning in an ASCII file, such as ^I, ^J, ^M, or ^Z, or to values which cannot be entered from the OSBORNE-1 keyboard such as the hex values 00, 1D, or 1E which wouldword ^J - transpose characters (try it!) ^K - drop a marker. Markers are numbered 0...7 ^K1 drops marker 1. Note that the find command ALWAYS drops marker 0 ^L - Find (formerly ^F in version 1) ^M - Carriage return ^O - Oops! un-erases las give , , or  if they could ever be entered. 8) Alterations to VDO. If you have the Screen-Pak (80 column) option on your Osborne, you may change the point at which VDO shifts the text from 52 to 80 by using DDT to change location 103 to be the nt erased character. ^Q - jump to marker. Like ^K: ^Q1 jumps to marker 1 ^T - erase next word (can be un-done with a series of oops!-es). ^U - Execute user defined command ^V - just as before: toggle insert ^Y - erase to end of line (can be un-dew screen size. The operation would look like this: A>ddt vdo.com DDT VERS 2.2 NEXT PC 1100 0100 -S103 0103 32 50 0104 17 ^C A>save 16 vdo80.com This would create a new command, VDO80, that would be tailored to the 80 one by series of oops!-es). ^\ - cancel autostring if next character matches current character. ^\^\ - cancel autostring if character not a letter. Escape Menu Commands: ESC - O swaps case of current letter (a<==>A, etc) ESC - U define"  s user command. This command is a string of commands which will be executed whenever the user types ^U. Note that a command which ends in ^U will repeat itself forever. Pressing any key from the keyboard stops^B instead of ^V to avoid changing insert on and off each time. The ^U at the end of the string insures that the command repeats itself indefinitely. An unsuccessful find (^L) ALWAYS stops the autostring. A crude and slow find can be implemented with the user command in mid-flight. ESC - W Asks for filename before writing to disk, then restores the old filename. Patch locations: 0110H - screen width (presently set at 52) 0111H - screen height-1 (presently set at 24-1) 0CD9H - page  the command Command: ^D^\A^U This command moves forward through the file until it comes to the letter 'A'. Note that the user command is NOT executed until the user types ^U (unlike the find command), and that the characters in the string are length (presently set at 58) COMMENTS ON VERSION 2.A: OOPS: The ^O key can be a lifesaver if you just erased a word, line, or block that wasn't supposed to be erased. Do be careful with it, though: VDO doesn't know when you're oops!-ing things acted upon as if they were keyboard entries. I find it useful to keep some extra definitions stored away in the Osborne programmable keys. This effectively multiplies the number of user- defined commands available. ARROW KEYS: VDO replaces the that weren't erased. Pressing ^O when there was nothing erased can produce bizzare (and damaging!) results, so don't be oops!-happy. Please note that oops! doesn't work right if you've moved the cursor since the inadvertant erasure. User Command: system arrow keys with its own arrow keys, and doesn't change them back. This works fine with WordStar, since VDO's arrow keys are the same as WordStar's, except back arrow is backspace rather than ^S. If you have occasion to use VDO and Supercalc, This is a convenient way to implement find-and-replace, capitalize words, etc. For example, if the current findstring is the character '3', the command string Command: ^L^B^Gthree^U replaces all occurrances of '3' with 'three'. Note the use of the key re-definition could cause trouble! I don't know of anyone who's done this, but it IS possible to define multiple-character arrow keys (not with SETUP, but with DDT). This would thoroughly foul up VDO's key redefinition; most users need never #   worry about that. (Note from Jim Woolley: Most programs, including SuperCalc and dBASE II, work fine with arrow keys set in WordStar mode with left-arrow set to ^H. My computer is normally set that way. The down-arrow ^X is especially useful to cancel a CP/M command.) MARKERS: These are similar (but not quite the same) to the ^K0..^K9 keys and ^Q0..^Q9 keys in WordStar. VDO only remembers the line number when you type ^Kn, so if you insert text before the marker, the text moves, but the marker doesn't! Also, there are only 8 markers rather than 10. Note that ^L and ESC F commands drop the 0 marker, so you can return to the line before a ^L with ^Q0. Jumping to uninitialized markers produces random results. he 0 marker, so you can Brief Documentation of VDO2A ^Commands: ^A - Left one word ^B - Turn on insert mode ^C - Scroll toward bottom of file ^F - Right one word ^G - Delete character over cursor ^J - Transpose characters ^Kn - Set marker n (from 0 thru 7) ^L - Find again (first set marker 0) ^N - Insert a RETURN left of cursor ^O - Oops; unerase last erased character(s) ^Pc - Insert character c as is; display graphic ^Qn - Jump to marker n ^R - Scroll toward top of file ^T - Erase next word ^U - Execute user defi$  ned command ^V - Toggle insert mode on/off ^Y - Erase to end of line ^- or ^? - Delete character left of cursor ^\c - Cancel ^U if next character matches c ^\^\ - Cancel ^U if next character is not a letter ete character left of cursor ^\c - Cancelostring if next character matches current character. ^\^\ - cancel autostring if character not a letter. \ - cancel aut erase to end of line (can be un-done by series of oops!-es). ^- or ^? - delete character left of cursor ^\ - cancel autEnclosed are two files: VDO2A.DOC and VDO2A.COM Directions in the back of VDO2A.DOC show how to modify VDO2A.COM for 80 or 104 column display, or for printers with different page lengths. At present, I haven't tried to produce an Executive- compatible VDO, because I don't have access to an Executive computer. I now use VDO for all my non-wordprocessing editing. It's much faster than WordStar, and takes up far less disk space (critical for people like me, who have only a standard O-1 without hard disks or drive c: !!). With the features I added, VDO supports most single-control WordStar functions available in non-document mode. It also supports some additional features not found in WordStar: Oops! (unerase), user definable command, near- immunity to "disk full" problems. Enjoy! Frank Muennemann e command, near- iument mode. It also supports some additional features not found in WordStar: Oops! (unerase), user definable command, near- i%  urrence of a specified character in a file to another character. To use, place CHGCHAR.COM in drive A. At the A> prompt, type CHGCHAR d:filename.typ a>b where filename.typ in drive d: (optional) represents the file to be modified, a represents the ASCII character to be changed, and b represents the replacement ASCII character. Since CP/M converts the command line to capital letters, lower case letters may not be specified. An alternate form is CHGCHAR d:filename.typ xx#yy where xx represents a two digit hexadecimal value to be converted to the hexadecimal value yy. This program may be used with WordStar document mode files to convert soft hyphens at the end of any line (1F hex) to hard hyphens (2D hex) and soft hyphens in the middle of any line (1E hex) to nulls (00 hex). Since the file is modified in place, a backup copy should be made first. Refer to CHGCHAR.DOC for further information. Also, see CH found on FOG/UTL.026. CLOCK and HEXDEC are MBASIC  DISK.DOC FOG/UTL.041 First Osborne Group (FOG) Utilities Disk CHGCHAR was submitted by Al de la Torre, VP of the Gold Coast (Florida) Osborne Group (GCOG). This program permits changing each occprograms sent by Steven Dyk of Wollaston Lake, Saskatchewan. CLOCK provides a digital clock display on the screen. HEXDEC will convert hexadecimal numbers to decimal and vice versa. Place BAS files in drive A and MBASIC.COM in drive B. At the&   A> prompt, type B:MBASIC At the Ok prompt, type RUN "program" where program is the name of the program, which must be capitalized and surrounded by quotation marks. DIRBANER, submitted by Dale Peterson of Miami Beach, will print a 4" the command line, brief instructions will be displayed. Also, see LSWEEP10.DOC and LSWEEP13.TXT. SAP38 is an update of the disk directory sort and pack program found on FOG/UTL.014. Place the disk to be SAPed in drive B and SAP38.COM in drive x 1 7/16" label identifying up to 64 files contained in a disk directory. It uses the Epson subscript font for tiny letters. Place the disk to be labeled in drive B and DIRBANER.COM in drive A. At the A> prompt, type DIRBANER B: Be sure tA. At the A> prompt, type SAP38 B: The directory of the disk in drive B will be put into alphabetical order, and hidden references to ERAsed files will be eliminated. VDO2A, a full-screen video text editor, is smaller and quicker than Wohe printer is ready. Also, refer to DIRBANER.DOC. Similar programs may be found on FOG/UTL.009, 013, 025, and 038, as well as FOG/LIB.002. LSWEEP13 permits one to view and/or extract files which are members of an LBR library created by LU (srdStar and easier than ED. Place VDO2A.COM and VDO2A.DOC in drive A. At the A> prompt, type VDO2A VDO2A.DOC Then use arrow keys to work your way thru the instructions. Press to review the commands. Take a look at VDO2QUIK.DOCee FOG/UTL.017). Squeezed member files are automatically unsqueezed. Several LBR libraries may be LSWEEPed in one session. Place LBR files in drive A and LSWEEP.COM in drive B. At the A> prompt, type B:LSWEEP13 filspec1 filspec2 ... wher for a summary of commands. VDO2A.DOC will not print very well, since it contains control characters which display as graphics on the screen. Use H and D to delete those portions of the file, then P to print the document. e filspecn specifies the LBR files and may be of the form d:filename.typ, drive d: is optional, .LBR is assumed if .typ is not defined, wildcards are permitted, and several LBR files may be specified on the command line. If no file is included on  Also, see VDO2READ.ME. Squeezed assembly language AQM files may be unsqueezed using utilities found on FOG/UTL.003, 004, 014, and 031. Jim Woolley FOG Disk Librarian June 1984 '   --> FILE: -FOG/UTL.041 CRC = 00 00 --> FILE: /UTL#041.DOC CRC = C4 D3 --> FILE: CHGCHAR .AQM CRC = D0 CD --> FILE: CHGCHAR .COM CRC = 13 2D --> FILE: CHGCHAR .DOC CRC = A2 BE --> FILE: CLOCK .BAS CRC = D4 F5 --> FILE: DIRBANER.COM CRC = D4 18 --> FILE: DIRBANER.DOC CRC = FE A9 --> FILE: HEXDEC .BAS CRC = 82 58 --> FILE: LSWEEP10.DOC CRC = 13 36 --> FILE: LSWEEP13.COM CRC = 1E 22 --> FILE: LSWEEP13.TXT CRC = 09 37 --> FILE: SAP38 .AQM CRC = 10 47 --> FILE: SAP38 .COM CRC = D6 C9 --> FILE: VDO2A .COM CRC = F9 7D --> FILE: VDO2A .DOC CRC = 31 22 --> FILE: VDO2QUIK.DOC CRC = 24 55 --> FILE: VDO2READ.ME CRC = CC AD ---------------------> SUM OF CRCS = B2 D9