LBSOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUNDINVALID KERNEL FILExةw,@  4  J  ȱ⩤i8#) ) 8Le /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// SIG, Washington Apple Pi 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-030\ \ %SEG.T 7j Ÿ/ FLASHNAME.DAT:Gw -READ.ME.FIRST<5P+)PRINT.ALL 6.TAGSORT.SAMPLEg \ | DISKNAME.DAT3+TTTSORT.INV \ H& UTILS.INFO\ \ *VARPTR.INV\VERSION.1.4 \ XT.INFO\*QUICK.NOTE\\RUN.BASIC.UTILS \\'*SOS.DRIVER 4 Z*SOS.INTERP @4ke\! *SOS.KERNEL t,V\!a/TAGSORT.PROGRAM \+ \:III.DAD.021022Au' (CALL.INV\HELLO \*HELLO.TEXT& P*&LEGACY \6\ *MENU.MAKER } >,PEEKPOKE.INVm#im#iЛ#Lȱ  6L憦  Lsmm l y` @8(Je稽 ʈ0 WELCOME! WAP /// SIG Public Domain Library Disk Category/Number: DA Datasystems/3DAD-02 Disk Format: Self-booting Business Basic (SIDE 1 ONLY) This disk is one of a s 1600 =Q:WW=0A=:A=21A=9&oldprefix$=40A=31410: Control C "aborts" program to Basic(:A=13770: Return Selects a file *DA=27:50: Escape to change disks/FA=324000: back out one directory level 3GA=(80+UCA)A=(80+L"BASIC 0":150A$="TEXT 0":150A$="CAT 0":150A$="FONT 0":150A$="FOTO 0":150A$(L),"BLOCKS")510*=27:=19:"FREE MEMORY AVAILABLE: ";=7:=20:"80C";A$(L);$:=5:THPOS=4:I=1:IBOTM=J-1:620Q=:=26:=21:sic; +Q Quits."r12);::"80C";a$;:+w#9,"DISKNAME.DAT":#9;DISKNAME$:#9|d$=DISKNAME$$=23:=0::"80C";d$;::12)201M=3:=14:"This /// SIG Disk is \^ 19";Р,2)", Washington Apple `, Ltd."=4:B$(1)="":B$(2)=""A$=16,B) THEN 240 #1, d$="":=10:"80C";d$ ž#1300I=0"I=I+1:#1;A$(I):290,#1 6L=I-1@j=1:same=0 J:SEG=0 Tœ2030^CT<1CT=1cCT>13000Zha$="{,|,~,}; selects; to new disk; J/2)=4:=+1:ۙ=44B$(J);:J=J+1I:1,180,22:2,280,21:2,2380,23:8A$(1000),B$(1000),C%(511),C$(20),name$(20):=10:=0UCA=128:LCA=UCA+32CT=15 IF PREFIX$= PREFIX$+MID$(B$(I), 4VOLUME NAME (/DISKNAME) OR DEVICE NAME (.Dx)"P12);::"80C";a$;:Zb$="CHANGING DISKS"$d=23:=0::"80C";b$;::12).n=12:=20:"MAKE A NEW MENU FOR DISK: ";N$xN$)<2110=N$ :210 I=1L(A$(I),A$))200B$0 WAP /// SIG MENU.MAKER PROGRAM (v. 6.2) =".D1"210: Coldstart (320: Warmstart &*X=11000: TEXT SLOW-DOWN LOOP ,X.1 CHANGE DISK SUBROUTINE23œ202:2200<RFa$=" YOU MAY SELECT YOUR DISK BY HER SUBROUTINEnSLOW=110xFLASH/2=FLASH/2):۴ =11:=07 FLASH$ SLOW FLASH:".d1/Menu.Maker"5 WAP /// SIG HELLO PROGRAM. UPDATED 4/12/89 DGO :#1,".D1/hello.text" ž#170 (#1;ERIN$ 2ERIN$<40F#1/P=23:=25:"PRESS ANY KEY TO CONTINUE.":G$U-Z#2,".D1/FLASHNAME.DAT":#2;FLASH$:#2%dFLASH=110: FLASo Business Basic. The user manuals for both are on side one and you can print them using the SIG's Menu.Maker program or by loading into Apple Writer or other word processor. The WAP /// SIG thanks Daryl for placing his tremendous series of programs intoeries to contain the programs of Daryl Anderson, of D.A. Datasystems. On side one you will find Basic.XT, a series of invokable modules that extend the Business Basic Language. On side two is Basic.Utils, a program that brings the System Utilities disk tCA)"PRINT.ALL": OA+P 3HA=(81+UCA)A=(81+LCA):::: OA+Q Quits 3IA=(83+LCA)A=(83+UCA)"PRINT.SHOW": OA+S 2JA=(68+LCA)A=(68+UCA)/Screen.Savers/HELLON=THPOS:B$(I);XA<8A>11540bA-7640,660,690,720l:=THPOS:B$(I);v:520: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THPOS=44:I/2<>I/2)I=I+1I2=-1:I=I-2:IBOTM<30THPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1: the public domain for all to enjoy! keypad numbers, this program will permit a screen text printout whenever a keyboard input is allowed. indicating your selection. Except for programs which have redefined the use of the keypa Use the KEYPAD NUMBERS for this command. You will see a letter at the upper right screen position indicating your selection. Except for programs which have redefined the use of thehe screen to your printer. Use Control-1 to request screen text printout. Control-2 will toggle from normal to condensed size print. (if you have an Apple DMP) A QUICK NOTE: 1) Included with your SOS.Driver file is the Attach.Driver. An explanation of how to use it follows: The "ATTACH" Driver will let you send a copy of what you see on tel; G$:::320H: Error Routine 202:U=11:"79C";"BAD PATH ERROR (NO DISK IN DISK DRIVE OR DESIRED FILE NOT FOUND.)"X=11000:X:::210Z a$="{,|,~,}; selects; back 1 lev 1600 &:WW=1:0 :SEG=1;".D1/S EG.F" SEG=1".D1/SEG.G"diskname$=3802  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."04=10:"M$="NOVEMBER":1750M$="DECEMBER":1750826);"-";M$;" ";Ѡ,2));", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1780$П,2))=0"12";џ,6);:ٟ;$П,2))=>12" PM-":" AM-" 1830WW=1530 =26:=211660,1670,1680,1690,1700,1710,1720,1730,1740^M$="JANUARY":1750hM$="FEBRUARY":1750rM$="MARCH":1750|M$="APRIL":1750M$="MAY":1750M$="JUNE":1750M$="JULY":1750M$="AUGUST":1750M$="SEPTEMBER":1750M$="OCTOBER":1750T 0")2070H540R\A$="RUNNING "+B$(I),16,B)f"79C";A$;:=0pB$(I),16,B) z::SEG=1".D1/SEG.T"t=+B$(I),16,B) yCT=CT+1~240:=24:=0:"@ ..... "DATE.TIME.LINE" ....JM=Ҡ,4,2))BTM1630,1640,1650,0=+IBOTM/2-.5):I=IBOTM:I/2=I/2)I=I-1 œ2120B=B$(I),16)," ")-1 B$(I),"BASIC 0")850B$(I),"TEXT 0")890 B$(I),"CAT 0")1140*B$(I),"FONT 0")18504B$(I),"FOTO 0")1930>B$(I),"PASTX Run Side Two Program>"TURN THIS DISK OVER, PLEASE TO RUN BASIC.UTILS PROGRAM."6"I WILL WAIT A FEW MOMENTS FOR YOU TO DO THAT..."(X=150002X<F!P"OK RUNNING SIDE TWO NOW..."ZX=11000dXn".D1/HELLO"xBTVSPLH   5"ʘ HH` (# (=  0`)aI88  >!SHOLES 1!1!2@23#3#4$4$5%5%6^67&7&8*8*9(9(0)0)-_-=+=+\|QWERTYUI OP[{]}`~`~ASDFGHJ K L ;:;:'"'"ZXCVBNM ,<,<.>.>/?/?d0hp00000>0# #0~$ <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>>>> ""*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>>xr !"#$%&'()*+,-./0125GA7  3  5  >>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""< SOS DRVR"CUSTOM.3 )((8*,;((*,((+)((9/(p((>3  =9 :9 .(~|L|LNqooGoDDDcc0ccpc]]c"QM"|@@pAATT**| b) )ab)a a,h0& &+%a0 +hcefd(c,@cfabdf`cnx  (,4h`dd,9P"<:J H) +̰ H) +ʭcP h̰ʩd8,h)ec efeede`,5 H  h 4  `5!    4(P 4 4  `,g0L,10kH0 ԥ f0)ĭ9)9҅xh(ĥŐL i,1HȊ©L,52,9-P" a{)KORY\aelpu !$(+.147<?BFILORUX]`finsw| !%*/369<+;CNU\eh "*-036<BLORX_fj &+38;?DGLTot <?BGLQgjox',/25:BG̑ʈ0 Ցʭr̈A萠L: ֦ڱΑ0Б֤ h L  p,:0 JfiΥiώJe΅Хiю@ B $p̑бʑΈ0 Б̱ΑʈeمΐeمАA萿 :  `ʝ"`t  !#%')L: 8p,:Jf׮@$PA B $P@/A'ʤ˅΄ϥ̤ͅЄ B $̑бʑΈ0Ƞ h L: $)טɀIim>ٮ@8pذ `$0"8,:Jک@ׅפ؈۩MjL,:08*Ȅ B ,:J}΅н(I I $0;P̑бʑΈ,:JՐrx 0, )ߍ:) J)*PR,T,V( : `,k<,: JI`I`<,:J̰`=m@>,:J}ʅ̽(I I `<Mj,:0pJՐ̑ʈ`pJհ0`ՑʭrpȐ`=m@< B h A$g " x) (,`% (gL,}0, `gé ĩ `:) j:;jN;~j;O,:0'???>>8?>p<<AAA@@8A@q==C)CB)B C}0 x) `(`hh% ( ΍ ύ逅Ñ}`` " ( ĩ~Íĩϭ & &υΠÑΈ~ F ~ҰةeÅÐн},,P,`,g$ ( efh) `xÙ+(`xÙ&(`)4`)5`)6`)7`)8`)9`,i0!M:0p ȱq L `" (~)y ~JJ* I `x|x|,,}P-X~ F }~L } `,,i0L È`,g HH`LL! l      5  Hdcefh&+si  M0   h) `(" (  (È& 8  `)2ȱÍ3`)1`Ɂ" (cefd`Hc <Le Le ,g0L HH`! ( 9EKQWbmz`(" ((è%È`2ȭ3`1`d`c`+È`&È` & IMk`4`5`6`7`8`9`<ȭ=` & @jI`:ȭpȭqéL ==L: ,lCL <=L: <,n)LL8 L8 u:L8 ;)ߍ;j`; ;j`uBL8 uCL8 u)u;) u;L8    x) `(,  LuL-upp<`uqq=L: vuL L L #1:CY` 9C<m><=m@=>@?AL8 >m<>@m=@<=L8 <m>?=m@AL8 C9L8 ; ;k`;);k`,@`<,m p<L<`<p<`,ms<L=q=L: ,lXґȥӑ,10 h0  `,g0L  ҅ӥĥŰ+,0p 4 Ls  Ls i )"|tȌs|st HH` MjH,: <J h̰ <rh,oL`%CYgu9 Ln90$0%,7 ҥ L$0T,8OK50P;ҥ,8 L%\   8҅¥Ӆé҅L,5,6  & @jIH,5 p  He҅Ґhe…å逅h,23Lh?BEJMRUX]`h  2;AGMS[fot|              . 3 6 9 < ? B E H N S V \ _ b w      ! ( 0 7 I N S _  . G R Y f {    ! $ 4 9 F I P S V \ a h m p s x |     ' + < ? D G N U f k p x epɀjff&ݥeepɀjffݠ %)  %)`%  0.)      0  ` ` @ ``8٨JJJ ) u˘ vͽʅ̆`8Hi #i,$0F y բӅLx  mӥmԐL] h `  )`%)8`)    H   ʥ)Ģ    H Ģ L E% %) L 8`ۅ&ۥe륅eٍeڍ808٥8٥ 8مڅ H , V Εm٭mڭ))njnjnjfjfjfj+mӥmԐ8L( Ӣ й` m j`Hآ Hӭԭ h h`8٭028ٍڍ0Z$eٍeڍm٥m8٥08ٍڍ`8٥058ٍڍ0ԭ V 8fxL@ ] I)!) g 80 J8}L y L 0yʽz0 y L7  Lh `*f*&*)` ϭPh0 йPL)`)L` L``  `L` H , 8 V ТΕLϦI ] +)J* g I`LL) @L) L8``Lթ`~L8L)  =H 'HH N M))Mhh0 }LO}~~Șݻ~`}}~L< L }ީ~` ɠɀ)ӮԮmwӥmxԐ mi` HHGH`  &xix 0ޤՐڢ,P<0 )ߍL- J,P,QJ,R,SJ,T,U,W`,t0L40 ( dȅɥŐ ĐL `ʝ`))ժuvЭ H ʊJyjhz|ֆ׆ح)JfJf$PIJfש ʈ8 @ש wx LVخ ʊJJJ莟mww HH`! (`ɖ" (èÈ``,t0L4 HH`L  d!  `ɖ" ( dÈ  ``,t0L4 d0Cս30. , V  @„ȄL5/((((PPPP @``` @@@@`xp<@ @ :H9H` (# ( -l..PcJt`,t$ ( t`tL4`,t0L4www """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwwww(C) 1980 Apple Computer (+@EIR[ty} NQ9Copyright (C) 1983 Apple Computer, Inc. Graphics Driver..GRAFIX b """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwϤҐ мφi`Jf`<,&ʰ,i8i#Hiihifʦʆi) v`i,ʐi,iPIIʥ)ifʦʆ̐pLj/Fϐ&Ȅ`'@τ`Fϐ@ E҅F8ئȢΆѽϽ`/(L%τ`ϩE҅0Ȅ(fL% ('Άѽн`8Hٰ hIiHمh8Iif٤Φݰ>Jj8ۅe݅eޅ $  m`!J8݅ eۅ$  m` , V $צ!68979C";"PRESS ANY KEY TO HALT LISTING"::202 1020#2,B$(I),16,B)ž#242:::1160Z=1#2;A$:"78A";A$Z=Z+1:Z>1842:::Z=1980*:=23:=0::"79C";"CONTINUE...?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"10 MENU.MAKER TEXT MODULESEG=0"MENU.MAKER"890&*X=11000: TEXT SLOW-DOWN LOOP ,X.1,180,22:2,280,21:2,2380,23:z:A$="LISTING "+B$(I),16,B)$=01:=0::"80C";A$;::12)>=23:=0::"    ) . 6 = J P S X [    $ 3 : = F d  > B H M s `e|&+.QVYcjuy~':{a$,1)="/"5060:s=s-1 5030=a$240 MENU.MAKER 6.2 * Thanks to C.M.Davidson for his help!BASIC XT BY DARYL ANDERSON %(-47=FMUX\_jmz  .169DWfy   % * > A H K Z v z }      % , 1 5 : = B K R Z _ b g n s x ~ /47=G\x{~'+.149?CGIKMOQSUWY[]_acegikmoqsuwy{}J) ܭL FܪJJJJ)`'+9;=?ACEGINR\aejns~  #&).369<ADGJMP^g $*-06=HLORWcfloruzp Q%Q̑`pPIE1pΦ#$01ʐ1`JJJJ)`%υߥ`1(ȦJJJ`&&*`JJ` **&*&ߥ`J` ***`` ` Jjjߊ` ߊ`JfJfFߪ߆` `JfJfJfF`ߩ`$011̰JJJ LP \LD$7߭$PH8 nߩ nh ߍϭ - k, ϥ- kϱϮEϑʩ`P z  HH` k(h`$0#$E$0p Q%Qʑ`pPIE1p$E$030C$="N"C$="n"1160;:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": $1020.202 8::Z=1B::=23:=0::"79C";"WOULD YOU LIKE A PRINTED COPY?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1170*C$="N"C$="n"SOS NTRPRHeLZĠР쁭堠堠ՠP򠭠έ魭ž#2390 ^1000c: h#2;a$ma$rY=1150:Y0wB=B+1: Count the number of lines printed xB=15B=30355yB=60#3;12)zB=60B=1 {#3;a$|360B<=20#3;13)::410#3;12):Z=11000:ZI I=3d: PRINTER V. 1.0 ::=2::"PRINT.ALL v. 1.0":3=4:"Directory Name(s) or return to quit: ";n$N$)=0::"MENU.MAKER"430 X>0260I=11000:I:200: ,I=1X 14000 6#2,F$(I)@#3,".PRINTER" J - USER.MANUAL :BASIC XT Manual. UTILS.INFO (subdirectory): - USER.MANUAL :BASIC UTILS Manual. - READ.ME.FIRST:Implementation notes about BASIC UTILS (what it can and can not do.) On Side Two: HELLO: Runs the BASIC.UTILS programerson to the /// Community. RUN.BASIC.UTILS :Runs Basic.Utils on Side Two. TAGSORT.PROGRAM :Program demonstrating the Tagsort utility. (All below are the Basic XT invokables:) TTTSORT.INV VARPTR.INV CALL.INV PEEKPOKE.INV XT.INFO (subdirectory):;=c Utilities DISK ID#: 3DAD-02 BOOTABLE?: Bootable Daryl Anderson's fine Basic programs designed to extend the language and provide System Utilities in Basic. Includes User Manuals. On Side One: LEGACY :The legacy of Daryl And /// SIG, Washington Apple Pi 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-0300 WAP /// SIG Public Domain Library PDS NAME: Basic XT and BasiTHE WAP OFFICE LIBRARY HAS A NUMBER OF APPLE /// BOOKS AND MAGAZINES. EAD PASCAL TEXT FILES."04=10:"78C";"ANY KEY RETURNS TO THE MENU."!>G$:::".D1/MENU.MAKER",320R",220(204::"79A";""; 2D=1:F=1 <#4;a$ FD=D+1 P#5;a$ZD=60#5;12)dD=60D=1nF=F+1::d$;::Y=1100:Y x13402  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T R".D1/MENU.MAKER",220 d$="" A$="PRINTING "+B$(I),16,B)=01:=0::"80C";A$;:#3,B$(I),16,B)Z=1#3;b$:"78A";b$Z=Z+1:Z=18:1290 1260 #4,B$(I),16,B)#5,".PRINTER"+ž#4#5;12):::".D1/MENU.MAKEŭ᭭򭭪𭭠򠭠頭퀠Šӳ頠𠠀𠠠堠젭ӠΠ?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr$ 0~!L`!sm?iٰcL`S )!a{)Qi ڐ߽S) -ai) -aɢ ɣɍж$HS -ahʥ0SSȩ5%"/װ&hԐɈf0ɔĐ 8,f 8f L_ʅSS=ȄL`ȱi8eiidHddhd) _ ƢLh _L>h jhP _S @a-Qggeg5hih 6i6 "]S" ]$%SSSg a aL^ S S`La8 SiUjjS):,$f 0$ p fHhH_HcH uhch_hhhfhi0hhhB B A` ֥'( )&񦕤LNKM$Lb ě $m wl "m6X6+5 56ɀ56H $mhɀ(Z)& mL k~ wlL ͝dL Nsd# wl^_ ꂅ__hg^`8 悕`gHhHhH5?6@6@*5g5666gҦhhhhhhhhg:e:;e; ;m;`@c@c?be^@e@ _m__^ \Lx] i6g55``BY BSAMHH H] LPL(\)&P ěj9ȑ9ȑ99i=:i: >i>`Ɂ7XWWXjnXWi` ]?@@bgchch )^ ]b ]b^b^L\b8g+H__^8_ABB 9::)ѭ [ I[ aυ婶ZeLLL^$%Lae LGidFddddddd.ddddddddd ɕdˏd`Ls  Apple Business BASIC v1.23 - Copyright Apple Computer, 1980-83 CTERESOURCE UNAVAILABLDIRECTORY FULDUPLICATE VOLUM ERROR Please Press SPACE BAR IN PROGRAM INTERRUPTED%&'(%+.@C$DE FG!H"I'MN#PQRTW(X潭`: 808`:dd@՚H Z#IJJCSTRING TOO LONFORMULA TOO COMPLECAN'T CONTINUUNDEF'D FUNCTIOVARIABLSOS CALFILES BUSNOT SOI/FILE TOO LARGWRITE PROTECDISK SWITCHEBAD PATFILE NOT FOUNPATH NOT FOUNVOLUME NOT FOUNDUPLICATE FILDISK FULFILE LOCKEFILE NOT OPEDEVICE DISCONNECONV&CONV$CONV%LEFT$RIGHT$MID$INSTR>=<^/*-+NEXT WITHOUT FOSYNTARETURN WITHOUT GOSUOUT OF DATILLEGAL QUANTITOVERFLOOUT OF MEMORUNDEF'D STATEMENBAD SUBSCRIPRANGINVOKSTACK OVERFLOREDIM'D ARRADIVISION BY ZERILLEGAL DIRECTYPE MISMATNDEELSCONLISCLEAGENETABTSPCUSINTHEAMOSTEANOEXTENSIODIAFNOAAAAAAAAAAAAAASGNINTABSATYPRECAAAAAAAAAAPDLBUTTONSQRRNDLOGEXPCOSSINTANATNAAAAAAAAAAAASTR$HEX$CHR$LENVALASCTENAACONVOERRLIERKBEOTIMEDATEPREFIXEXFNEXFN%OUTREINDENAAAAAAAPOHOMA SUB$OFTRACNOTRACNORMAINVERSSCALERESUMALEGOTIRESTORSWAGOSURETURRESTOOALOASAVDELETRURENAMLOCUNLOCCREATEXECHAIAAACATALOAADATIMAGCADEAPRIssssssssss\3!z~IssssssssssssIG%ӓ,ssևwn7}|tttUUZ{fzxxˆU膅[L<^ENFONEXINPUOUTPUDIREAWRITOPECLOSATEXABYAAAAAWINDOINVOKPERFORAAFRHPOVP̠Ώ h:gpOn[n٧s]ds3issssssss0b>&dsjs|T}|s[ji!S)Lt`SSS`L` z :0.`9::hhgg.%g& $gegަhH逪hhʰ` ҥ [ aLT ҥIJJABB=>>;<<?@@T ě hhhHH  `89:: 悅 lc!)` +b` +b` sL :b#`L,H s h ऊL(,L8f` A KL jLdjOPPKLL h AKL` Ѽ   (`H shLs AL<^ȱQȱȅR dj sLHoUVV$ LhU Lp$ LL<^opL^```?EXTRA IGNORED?REENTER $0pL,`LgXW ׫ k*iXX 4X \\L<^Xii7 { n k$ |WlXVVE$ P% eT{||Hd ̐h p IkLo00$0 L>o "m nV dj$D$ P 膼Lo$0",i [ kLoHSHhp< {}$ p0H 07h ]k ,LmUVV `p F sLn 2 ukLoF вLm jȪЖ LL<^~p l nhhLgOPP` Add# 6d s S SS@Ln A " r ,; s lLn#f  ;П ⭩,SLn "mʆ,S _S% nLh "mL_T ST#L(, U VV ׫$ 0  QpU= d hkddhe##5ddˏdd?Ll ,?#$04dHHd = d hkddˡddhhd`LsL#&F  ; s b 0` L+l$ Nsd#Lzm566ȱ5Ll H# wl m#͉LchL$m QRKLLsh$0LU$^`=8WW>X> 悅XXXL:^ g`L<^ l Jj bx bp,_;Ll  ~q$0P oՅ5R66R l ~ L%l $m0 =k $m#`$L#i)8#Ll  s s( L7bʊ# L-l m hxd5d$0H h`L^bLb$%/%5$ &5 &5e$$5e%%$&%$e$% Lk ׫ sHH ~qLPkHHh$0'ph | ZlWȥmW`L$|hXWXL-hm lmmLkl VYZZ{|| w ᐥlmmYZZ LxWXX ox ExYW# kXX 4=^W^0A, 9:: Ga.ghh 悅` A` \\ɾ,L<^hhZkKhLhhhe9e:: mLg jei `Ls j:,"hhhhLgɜEɝDɞLb Hɾɺдmhɾ Qp aj pi `p j` jLi j,d wlOZL^L^-L(dPL<^OPMNKLhhLg` Ls ҥ?ieCiLa,  aFL s a iLg ]hhh5h689H: H:HLHKHH6H5HHH` ui` pi` Qp j pi `p i` j jK$L%8eȢЅ iLOPP$pX0S&ȱhȱKȱLe潥ɂ逅$L# $mKL x~ m khLgLsLc h5逢)&a TH THLgL6k8:9: STT`)ɀLK$Lb8gLOPPKLMNhhm Vf0 mLf) mWA 0 -a mL8fW;8<< 悕` 6kLU*i kXX 4XLy \\'_ch_chbi^g \ihh ] Qp aj ih `p b iq bqn %jjg56Ly { b bq | XHWHHHֺh$PLh wlȱȱ%$LWH mh x~  m#W", mȱ28eLeji`Lwl mȱ"Ɂɂ ȱ :, iTjj ȱiVjj8逪XW0 Vf0WHW$ 0X: h ,@dd )e dʙdH &eh(dL ddک,ddLd:e``eLeHELLO ue 5eLse6e:7ee8ee:e`EAd j @a(% -, bLs j {ghhL<^gHhHhH , - b j$% @ag5h6h6hhhhh8g5h6h 悅`6 "]La ud `L  d.CONSOLE[[ TdSdddddd0 ddddd`dd A 6 s e 9c()' 9cKHLI jLdj89弅:彬: 悅`H hɝɞɜ)`dd  6芅 e ()'` e'()HKIL 9cL>hL<^) i!Ls j @aLK$L% mXm tL qXXW zzEn{i x }H$ ]kh8 )KLe9e:: }Lgi , p s$8$0p`PL<^Յ H s r ɀ ȱX Hih0 & ?<I?iE W Lq s )?TUJ)TU  ' Lsi imLqLsh E0`H ty ))ELyq  8 $0!PizEn{dUeUi hLqLs `wLr !L2 {}$ 0`QɀX zLs.+"2ZuL.y +|z% T}uH }h{ ~|H !z az ~hJ inIn`L~8;)q4X>Vt~w/z*|cYX ~uƀ1rP aziP | |iɈ { T}i8Huiiu x BU 瀩{h z` |] az 뀩]Laz | i8fe.șR0șRmymlylkykjyj00ڊIi i/ȄȪ)Re.șRI)ЪR0.ȩ+f.8f-RER/8 i:RRRRRR`y`'d |Ģ { &{f o0`LB ` H$ge &{h 80 '~L}H |h |zEn{iLxf d$h0Ly ef q80fL}COt#t$JZ mLKjk8 | ~Lm ^|-$nșRnȩ0iL f~ azea~ } \~ } &{e B{e yx %}ei0nihoi8傐IL|`7 z!L|iD8$n yiLyn)FjjjLyiɠ %}nnI*imLyjklm` s e-o+ smo..IE)2s S -+fh r$h8fL}fg s$gPf8ef B{f65m5l5k5n j5i`d,]WXX566 |m5 ^|l5k5n %j5i5` |m l)m |m`znth` |ht`i  y my`i n*` |jkjI*mlinLyFn`nEz0ʢiH xv5ui`uei0,iiL0y{n`nI0hhL,yLy |i{ xi` |={{ {LZ{ zL{ |8ii zivjwk xlym* 蕁24(y&x&w&v0⨥ymyxlxwkwvjvL{@jjj)(L{L<^~jklmL y56y^Vy dv88; 54541r |LiHi z xz U{y xy рz xh '~z zLz z~ zm zl zk zj zL{LyJ eyexew~ev~f~ffffJ`5665y5x5w5zEn{z lkj |yjJkjlkmlmi in`emeymlexlkewkjevjLkyi&m&l&k&j8iIiii9fjfkflfmf`nIngjIjgIm lkj`L<^}i0vvvvvj`L656 wh H5Gh`lmm566 Lx5Hȱ5ȱ5 F665 w56h(` x("LH)&h`( '&'`lmm566LxĠLx znInEz{iLx y? zL||uu`8i$iznIii0ĨV y${Wiuu8Iem_B_B`)&N> ȱI8gJJ hhge ghh f feLH>H= x\L|F )XHABB8 __^hHI8e^ @1 @+?%GHHHIJJih BABGHh`$  ě u Дs IJJ^__Lveȱeȱe `LćHƽ Ƽh`$ lȱlLL{ɝɍLɎСL s HI s shmHmHlHHɦ# shmHmHlHH , hHLt  ,, shTTLui ui,L3$0 |Lu xijk6kxyy xxy6i L[ s r$PLsi,L3-hLs L*tɘcɭ_ TTLdd`jk8L|L3L3TL3,L3i LL r$PLLBLsș Ȅ ( qƚƚ` s s),;,=,#,(,,ѼLL<^L<^ llmm$P$oȘ戅 aziȅ xdo`Abi$nFn) i  j g g ^ ܇.Laz͠Lć ^ ׄ& ć ׄ ć ͠L- x |z K{ | T}{ x xnH yxn0 I B xh B Lр |  +|] {n LU{HLʁIڢIڢ-(h#5ᆥ](IڢʥnH BiHɁy U{y рhɁ xhLB` vy{| g|S}dpL}Qz}c0~~D:~L̑56gh6hegehh `iɥHHȱȱ6H6H5H s =к bqhhh Lshhhh` ~R/mZlmYZ PujHkki^^`H"h{||kjkȱ{ "ie{||  V{|56|6 w&5L<^i8e` ě u8A?pB@B@ )onL܇jkL| Nsdȩ8 NsdL2Lа,L<^ A s ׫ g iq s= sXHXHWHHHH ajL? b rLiq HHH s iqhhh5ȱ6ȱLI65 g5H6 2|Hgȑgʆ5a g5ȑgȥg <^^^__ɂ逅____<;إy6 hlhm^Ȋ^LL:^ȥ5^H^h ͎el5emȆ6п  ͎e^e__ iLZe *& eegggegȱgehh Ľ ,L<^  8` ^LQ ŠhhL6 $P 訽5 ͎56ۥ 8ee L:^?be^@ce@c __^_ \__^;<<6  $Phihi^Ȋ^6h656H |mHlHkHjHiHl5 8eeghh^__` HHH H bqh hhhn0iɐ1 }L yxL%}\i FHHHHH 6hhhHHlm ,҄ shh)>=>hgh<<;[a{p ;<<ccb? @c@ube.a{bb,\(eb cc`ebcA[8饰 a{8`8\e@@He? ]@@?hbbb0 ea ȑbc8L@ @@h5H ?5^6_6_hhXhXhWLk ? % ?Џ`5566` xe5566ɂ66` s p `  zLseff z.!'$ iߪ$ 0 H8eAi\h$ P8 (Lt$ 0}5}} ,kk} , kklm Lٓ[ 80@ 6 2`  dkH) ojhJJJJ ojL 0:i`L<^ jHHHHHH s jhLyqhhh6h6h555_ȱ5VHHHH %L/5H6H6Ht $mlmkljkij8ihn`L,$0DpA q enHi80 @Lyu \ % @u ćh `&m&l&k&j`2L0 և yxLT}$0pLI oբRLi `u LLi u Lui0 ܆ چ,,% п 擩lm0u 1eL5665`iɀ*iH i  @8 ei $ tutt tj ȡhn` t` 0RN0R 0R$n-RRR`i` p`5665i`$0BP?iH i hLbe55f5f6e}Lme6u5u }`6ʈ`v`jip` ? #  ue }~ %u $ چ 0 u}` L uu  ) }Li <i@L{i$i0 p $ 1`ui` LL Lbb `}i~ei^~0] e e^`}`566i5`_cf_cfi^eub` ?^qbep`L<^ ?8b^e` rp`I` ? ㄩp^|be #^b ebbu|beiee^^iL56^f" ऩ थ (! ( ऩ थ (" ( द!LGb8Lऩ@iu +-ELj) e | ^ .' "5 1 p) iIii i)Lm` ?i $0 ׄ $0 $0 ^`Hhth`^Qb ^^ 8` `H Jh(L悈`H逨h` Hh8 Hɀjhji` HihJi(`  ~q$L ɺ b$P i pi$ȱLdjɻƟ dj 柰ީ Lihh sLg  s ! b   s "!!!IjJkJk )lmm'&`UR{R||L̐: / cRRȹRRȥ Rл s `Lsh sh5lh6mh6mhxhyhy x x Qȱx7ȱx88 Ƃ 7e7888ł75 78ߠȘH yxy hL3 j kqHHHH s H , ,H s s ~qhh 1 lhhXhXhWWȱW7ȱW8 eLNLXZWX ` GGH HlHmHmH khmhmhlh hk8j7k8Lޒ e7788vvyLj L ʟ,-uukv kv@vvyL5Lj ʟA80멀uukeqqtt$uA)*t L; $uЫkЦuuj ysLq,kl$uhuuj XkkNuuj k 4%v. #  1$u tAvʘtDթ q(~th`pvquts~y fp$pp8j/;XAx=|8ez{{ ghh "o `L x  wwghhoؠKkqvj L`$uZuukvN kGv@  pJ LUL-LG -$p0`pog $mkڥrok8o,koLdjAaCcoJ mko 5 $mkk mLw L L HG56H6LExh  (`|||}z,A[ :808Ш`,ޞ@`y Gy`LHq,;' L Pu  pLLwl`|H}HzH{HHH ɶ# xhH s  ~q s,; Ls  ~q$ hxrL iLpnH ~hɀ8(*iR.-:/ RRhhh{hzh}h| Pu p 0|8cJcm J_mm嚍J_AgBhBh \^A_B_B` ^"( zM jF566 x}z{6{LҜ #z{{"} GLsL<^ jHHH i dj ٥z{{ j}hhh ;в| |膆  RRRRH uhA?B@7B@87F8f7877878L:^7 8*JA5gB6B68 悅h圍h?H@H@HI?J@J@ "]h@h@h?gAhBhBJJ8 悅J圍J7ߚ8BܚLs`䚌B L:^`Ib^J sL͙ɚʚ `pAƚЙϚŚњ˚ ̚8 悅DDF͚ Κ8 DiFEC CD)ӚDmӚDԚCBКLěŚAݚ⚠IȌ 8 ꂍ  8 ꂅJJ` !7Ri88 pi UŦLUUU HHHHL 2hh LW iL 2hlhkhn jhimhHɗ8 Ls`LIŚ1CUDVDVU Lŧ 0 7U L`L:^֩ ŚEĚ L| Qp QeeRee8 1 V` 痠U` hh R LsL  z (L[ Rީ  @Y%(&:$LU s և ^|iHn %jHkHlHK s n ZlHmH5 s iH jHH楩e ) ,LsLR eՅ7V8U #   785U6VLΔU7e778ҥU^V_bcF_hcCgDhebbc \^__`U8傅UV` |UȱU` L<^ |UUƜ0ƛ ӗWqeWȱWqei W` |8UUWȥVUX`UeUUVUO / +'L U)łiV VL LI 8U 7ȱ7 UU ЯUVULU7V8 p L LZ U qUU qUH85h688V77U U 5qUWȥ6qUX7qWWȥ8qWW ٥IiV) V LVU?e8V je?e>e8U>e5V?e665e=e@eee8 hx57 xLCx8I77JJ8 88` H dhjL YYHH dYZZ oxhhe5566ɂ逅66 wZZY L YIL=m ) s  ʊHYImm shhhhYhZhZHHE` 3YZZ xLCxl5Ym6Z`u vphh` Ljk ,hh`Sj9-k L9j ekekk|z)ekk |j[ ٢  L`j 9kkj"j"kеAX"+-&$.ECR/#Z*! DBA0 k$JJJJ) ݙRթR`yiɀjjn*8miɝ d L .q$uL$)JJ8偅8傪 u Tf$i0Ł!y0GLqL~䁰< 0$H ,GhGթ $u$n 0GЫ-Gv)' $G uJ-$n0+G $G0)R?eR>e5ehe?eLje LjeR=89R>:>:iR:RiRRiRL`8(RR(`EeFe  s bq Vml0L dMeL` bՍe :RRRiRȐȰRe9Re: J 2IHJh*=>> 95:6:6R L1 1Lԫ`L:^  aFL^R, ue 5eLڭR7>e?e5e?eJeKeLje֩ u>e?eՍ "] a a$% iLg֢   sLj$%`8f  a e ; ` s ɩ` YLILcopL7 z0xH ׫$0_ ;h8fH`aai shH2 h zJJJJf Ik ɩ` ̬ t os YLA ևLLק jWXX` ׫$`pd8isŠt`dyoopd8ip`J uv`&&&8孪孪宐橈`! @ uA?B@B 悅@=g>h>h ]=i>j>k a=g8i>hj>h 悅ki=5j>6k6k;el)@7Me0u(> ƬƫHH ,hohp` ɩCe0R`ȹR`ee?e@e ue 5e T L=e;e`Lso`n}pm aa`dyo ɃɄ b`" lJJJJYe s ˰L8Ls LԫN l@u=ekPe tMe )llNesOet NeOetMeCOeNeȌ=e>e;eehi?e ueL5e qrL,op ɩ`et?ek;e`hZ L<^hZL<^L=ee>e ?e`opqrst !,i-i8, ȱ,%,W,pp ڠ %p`l  " ) i SOS KRNLb.D1/SOS.INTERPŠ̠Š.D1/SOS.DRIVERР頞 0 ) (lH'&3&'&#e'#%e'%'&"$"$#%'#%h`$eh`L)i   HH `TH..TH..TH..THATS ALL, FOLKS!R`RT RT`#RT RRRRR`0R`RR 㵩:RRL㵆  ~ RR`BLOCKS FREE: BLOCKS USED: TOTAL BLOCKS: sj]"]\AjiGa@aI[5x<^sě xCxEx5eҥV{}g}gkj̐kIk~^hT}27uejewsHH st\hh H PASCODPASTXTTEXT PASDTABINARYFONT FOTO BASIC DATA WPTEXTSYSTEMRESERVRESERVCAT RPSDATRPSIDXAFDISCASMOD AFRPT SCNLIBk;eo $'>ed?e` T֩xxMH]@ Kۅ5H ɐE$ eİ Ȱ h`h`8`W h8`hR`hLҿ i x +ۅ5ۅ6 ǰ `E8<W`­ `0XLۅ5` ռ``ߤeI`IiţO`Ȯʆ/ )󘑡`()0zq 滅ѺY Ueۅ5Ѻ Ѻ  Qܐ'`i ҩ *C8/y.i/ ȑ  © $ E7<3W`ȽLֽȄ @8`R ) [)_[AͰ")[)_[A:0/.ЩȑΘ8e * ȩ`Loü 7)?۽۩ W٠Յ<ōōř ռV7 uM78 V榠=ü#)@5 ɐ /ݐE ) .) @L `lqhٯ޿=ϓTXIֲ̛̐~ؠIJK,-NOPQ0vt `` LLɠ8`ΛLL渠`0 `8`HiHiH ihhȱh`86)IH)heuQɸ` ` W` ] %饚0` W` ߰4`)|E8LLLRLLLLL*LLLLLhh`LLL`SOS 1.3 01-NOV-82(C) 1980, 1982 BY APPLE COMPUTER INC. ) `G`î** }*`o^`on 8 JJAj@` *?($`ΠņɠŠ堠РѠ͠஠әƆH v?c,,,,h߈ߢ~))`3PLLP*%(i&`Ѕ񩏍E H pph`XǠĠӠ!((ͽϠРРSOS NTRPSOS DRVR(.D1(YYYYMMDDWHHMMSSMMM̱忠ΠͽŠ堠Р͠Ю̠Ɔx߭J ʈc(()o/ e/''ʈ((''()(1i / e/''ʈ((''((''((''' ('`ŠDAY, DD-MON-YY HH:MMSUNMONTUEWEDTHUFRISATJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECԠŠР I8`  S`ۈۥۥ۩Íۭۍۭۍ հL¢H8`Jj Ȅ ۍۆeۅiۅ Lɰ ʰWۅۄ ¦J> nʰ0 ̰+泱Ƴ m° x̰ ̐8` m° x̰8 ۢ8 ˰y ` ¥ nʰ泱Ƴ T̰#泪 Ѳ *Ƴ ` L:Ϡ`泑Ƴ` LaĥH8`JȘN8`) ))УJ8` ۑȭۑǠۑۑȭۑ($S8`O8` "` / 򑺠+* ͐H h8` ΰi `()  *ǵ յý5Ņ4gȩυɩč5 iψ }.8` iϙLIѠ ˢ L΢ ΰ LϠ ˢ ΰ1` Đ@ АP8`B8`ۑJJJJ -ѥ +jѲ84ƳJJ 2ΐ3泑ƳLTΩ潑ƽ`ƱƳ ΰ( {Π۵*+)e`8`)` J J + ΰ" 0 ΰ 🱼ѼL8`ǩ Ϡ` ϰ ƑȥǑ` Ѻе*`)ȥ+8ۍې  ,ѺLTΠ"LΠ5 խ ɐ /ݐE`C8`)@ ϰa)ۥ,8ېu+J,\ ȱLJΠ) ϰ'#,J(] { ΰ ƑȥǑ.8` { ΰ,JѲ ƳL΅ƱƳ ΰҥ,J0`#$"0#`!qȱi 5H5Ƶ ǽ jh5`L2̩ƍv̥Ǎw̩ÎL%ϠƄǥLj̩۬L~̠HHh` ̐`*ѺG0?M`)J"u-- M8`۬` # ː`  = O̰)= I`JJJJѶQi Lˢ  0 ̐ `"L˦ `H8`8$$"$= O̰=`$0`#$"0`$` H hQ)fʅ F jF jF jF &!  eװ*  ̰F湥 ƹ`Z8`@  ʰ泭ۑƳ ʐ` ʐ` ˰ ƹ Wː`ۘ . . .۪8*JۦȱѶ"` ɰ Ȑ`E`Ɔ X̐8`>>5Ѷ Qܩ<`>`\ʊJJJJ ۍ۩  ˰Fȱ X̰6 0 Lɠ 0ۑۑ8ȱ`H8` ɹ $  8JJJJ8 ` ۠ǽi `< Ȱ+<#5 ې'` ɐ /ݐE`W8`R` 5&i ` Ȱ 0i `<8> ȐT eİF cȰB)Hh5 ˭)*ȑƑȥǑ'(ȑ`L)ɭ)Ѷ*e`M) `ۅH)Ѱ%}ʈh Qܐ'``hi ` p6۽ʹZ5 HȐ/i i `гW8`0( ɐ Ȱ ʮ6E`5 խ ɐ ޢ ȰLȍ۱Ǎ X̰% & !J8` *LĢ `8 iۥƍۥǍ`ۅ %  6 )Ѱ Ѱ` 𝭧e ǐ bǰL*ۈ5ȱ۠ƍȱǍ X̐ H h1  /ݐE`ۈۅ ۅ 8ƭ X̐`LLŠǠ  ݭv̅w̅ ðzv̍ŭw̍ŭƭ ­ōō T̰]ŅƮņ X̠8iȱiiȱi ṰŅǭŅ XLōۭ۩ۅ ȱ8D`F`8eYƍťǍŠ)͠ Wٍۭۅ5ۅƭۅ X̰ ìۈۑ T̰ۅƭۅ X̰ۙ%ۍ" T`K8`)` İ ۱ۈ` ưW/ۈęۈЍ۩@` 8 MƐ  5 Q8`LŅ ۅ ۩ۍۅ Lɰ ʰۅۄÍÍۙ'Ù ۍ*ۨ  Ѝ۹ۙ8v- ðJ ¥ ð, ðLO ʰƥLT`'  mې浰``8 8ة  )LBѠٳ )8`i (` )N8`*eȱ+eȱ,i۠Ѻ*ȱ+L - ť.Lkҥ. ՅL ͐Ld ~ pа.J/)@߅4 ͰU..++,,IJ/ ӥ-.?Цե,J+jѲ4Ƴǥ4聠 H hH kh8`8-ȥ.L 8*Ʊ )8 0*-`.G.ʱ*+,EP'.E.LұE0+,,ӄ*p-e󠠩à٠΀ƉŠŠӠҠȠHHH *ح)0 D) HHHH,, ߘ)@ *)X  xI)}h)L, L )ڠ) w߭)Ů􅮈 ߠ'x)) J,QJ,SJ,U,P,W(`)(()  8)j`J j߅`0X ٠͠堘ӠȠŠ=`Insert volume: Τ in device: 蠠ɠ then press the ALPHA LOCK key twicex)_ @,P,R,T,V) )) `)8( ߠ',@ ߠ0  '葺 ݰL`5`i 祻(8`2ޝ51©ޅéąŅƍ >ϩ 1ޠ== f ɰ`ޭ`5=(5= i Х(`=H hDC5 L3ܵ ɐ /ݐ 8`5 ˥JJJJ8 H h ` ܠ825H h5 ɐ /ݐ 8`Hh ܥ5 `ɥܥܥܥܥ5`܅܅܅܅܅5`( ݰ)Ѻ ݰL ݰ泱Ƴ ʰȭۮ ʰͩΪΩۦ eװqȭqLJ  ˰Aۅƭۅ X̰2%&N  ʰƭ X̐`Ӏ堁ӠҠՈ՘̠ƠŠӠ̠ɤӮȪŅ͠Ϊ ܆5 HȰۈ)ۅƭۅ X̰ 3ڰLÍLT̥L㼠  ʰ` İK ХP8` LɐH80)N  հ)@LO ˰)0 ̐` M ­۠泭ۑƳѲƱƳ X̰ RڰäJۑĥ` İo!)N8`WپX0 ĥLä X0 ĥLà !"#$ Đ2@H AڰCŰrP` 3ڰ(` AڰѶ? İG8`Fە1 ռ İ ЩP߭)@N8`1@8` Aڰ񈱴 ˦,+* ʈJj =ؠ yiȩ`y4泱ƳHhz ʠiȱizLA`L;ؠ"  `1` Đ7@8V۩ Lɠ۪8ۊ۠X)JJJƄ X Ġȱ۠ ȍ۱۠ ۭ) ۍ ð*)#  O̰``)(`N8` ) xհۈ ̰آ*գ  Ͱ ݢգ LvL{ؠ;i ڥ(8` ְ( ȱ5 HȦ)`Lxץ: ש ְ⥺i ꥻ(8`Lx Lxש u )۠0)p խ.8`)@ ϰ) ϰۈۅƭۅǭۅ5 X̰ *ƭ۬͵̶L  ΐ` Wհ> H۪ȱHۑhƳh sϰq ` ʰiȱi `)5©éՅĩ5 }JJ+`.`8`ɂ )`@ ש ְO ֤FHۑۑh8`P) հ Wհҥ,J+j泭۪ƳۑȊ ) ~ fPL ͊.>.ʱ+,EP!.E.Lw+,,ӄ*- P*e (` հB հ5 Wհ0,J۪泭ۑƳ sϰ(` L Ͱ2 ~ P kҐ#L8 T 2ΠHHȑhhȑ`Ld )N8` xհ*eȱ+eȱ,i۠Ѻ۹ۑ񥤅- ť.Lcԥ.La Ͱ$)rJ Lɰ )# Ԑ)0\-JM-, J3,e$,d,,  * *l߅߅H ߅ \xi ߅LHHH *ح)0 D) HHHH,, ߩ0  xLߍ߭lߩ * xLx @h hhh ,0)ߨ)Ah&'0HHHH xhhhh ,0)ߍLLhhh@)&&&(&('+*H)H(h)H@x )HH30.Ѥ  БĈ` H`)à`֩ нѽ>`]PU]]UPPX0 0 PPXPP  į󠠩ҙ̙ɠΠɊՐӠӢ̢ՠҠŠԠҚРĠ鱃ԠȠࠠLQ  * WHHH>%H H @`)h8`  HШБˆeЅА SYSTEM FAILURE = $hh8`hhhxآY_Z@tPRVT,p S JJJJ ) ʍL@ i0i6`îӉ͠堧ǥӥ``HhHy)(h`H` 0L?i `h` `` `x)( 8 `jjJJԥ)եӬɂ )Ӆ҅`  `H0Xh`Π'à̠ȈL` 8`څ  Lk%  Lk8Lu텚8嚅 L L Ld V ``  h` ک V `ۅץ  VLFx) ( :` H ) L  .P'pб0 &L:L5'8+8`0Fܢ` ř,Ř 0 8f)J ӭƅХDžѥL1LUȑ  i ߩLL )  札)  ҩLL` **éL0;` H ) 4 )ߍ) hjjjjۥ0CF = -$(L !LLL&L L-LJ٥eƦ ,L  # ` (L.L…ҥÅ,] Xx,f (I0јIFjFjFji```x@gŽPy+wLwԠ͠ŠԹ.D1 .D2 .D3 .D`HJJJJh)y` (2  )* i LiHh`PQPQ>P Q,PQ"PɀQ@PAQ`8`nɀ<)nopoLpp` 0h8蘠fȊf` ab 1abo)abaݰb L9c`` a N0Ioa0H ha`pLopna n`  3ɠ/8 L %iLɠ8逨J Hh $`b >_-%^%p_^^_ab"08^c_L8^c_L8^c_L8^c_ȑcc\] ab^_ ``aV R0M bba dda `Q8STRQ ST`c\ȱc]a  b 5DU e\^e]_ ^_ ^_LH8\^]_?Je\^e]_,78\^]_ ^ݰ_ ^_LH^_ $bL@A^_aoQ*@A RQL@A `T8`RLSJTKQHIQiHiIKNJ)M8逅OPOPHMIN'a MHNILHOIPaOHPI8JHFKIGFGaHMINNMʆSTL8HSITQQSTde0f`   cCȱcD C Ea  UV 1 ELUFVG FUUCVDեYCWZDXWXCUDV[ v`b0WXYZiUcȥVcWX eeYZ ggE` @SATRDžŠƠŚ̮ÎȠ Ӡ̠Ӡ` LL#L/LL'Lgab `abBcd cdBrcadbho:ab.cݰdDcݰd8abҊ v+abcabRcdTefVghXijSdfhj RR`^0U ` 0 ʠ0 8 `ůàՠԠàࠝӢӠ ȠDž̖͌͊頀ϐωŠŠӠҠȠγ`%!^0 ^)@`a R =` *^)ـooL]^)?i |TU QTU]qUoqTITsUsprRprqs]ToUXa` RL=Xa` R` *R`X`U T  *\AX[ @F\B9ɏ5\o*Ɂo)[[ @^`U V  *C?^0: ݳ ٢ ^)?i` *)@o `p^ XiH 1h `)X0 8~X 1`C X`)X0`C РǠ𠠐ŠŠӠҠȠƠŮƠҢâӠUAQY @?ZY 9ZYY^TU QZoȥɭ }`` ? }``  }`X0i 8~XX0H }h襯` ©Wéĭ }0W`F X0A */5BL. zF`LLz Lz`Y `Ơ堧 B k L( LO  %   }` ` ?!©UéĩU󥣍V }`` ?)I>X200300S=1:D=1:B=1570D$=""500 Y=X:S=ED$(D)=D$:640 X=Y440D=D+1:S=E:440D=D-1:X=0F$(X):X=0 J=1D D$=D$(J)790&J0 :œ6303DE=S+1:N$,S,1)=" "N$,S,1)=","S=S+1:580%Nh VARPTR PEEK PEEK POKE POKE  ------h&h'h,h-h*h+h(h)./0()*,./0'H&H`---------- END OF POKE ----------~|zxvsplkhea\YVRPL0---------- START OF PEEK ----------h&h'hhhhh*h+h(h),-.()*HH,-.'H&H`---------- END OF PEEK ----------zxvtqnjifcUROKIL2---------- START OF POKE ----GA3/1.01:7SY PEEK #1,D$::"Processing directory ";34);D$;34);", please wait."; ž#1880*#1;A$:A$)<48104A$,3,4)<>"TEXT"810>X=X+1:".";HE=15:F$=A$,16,15)RF$,E,1)=" "E=E-1:850\F$(X)=D$+"/"+F$,E)f810p:  Pausež#1740#1;A$:A$)<4710A$,3,4)="TEXT"X=X+1710 :X>YN=P::7);"There are no text files in the ";34);D$;34);" directory." ::I=P::7);"Unable to locate and open ";34);D$;34);" directory." ::IT$=N$,E,1):T$=" "T$=","610XE=E+1:E>N$)610:590bD$=N$,S,E-S)l:v:E>S+1600:D$="": œ770P=3:"Looking for ";34);D$;34);" directory." #1,D$=P3:"Reading from ";34);D$;34);" directory." GA3/1.0CALL CALL SCALL SCALL  `````````````````````````````````````````````````````````````DB;# \d@hhA566 5A5A B@H?H`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````L?---------- START OF CALL ----------LLh'h(h+h,h)h**i *+08)5*6-=.>/L(H'H`---------- END OF CALL ----------}{yxtsrnmlkjihgfcYWh?hGA3/1.0` CALL VARPTR VARPTR SVARPTR SVARPTR  6H5H6ȑ*H)H`---------- END OF SVARPTR ----------qoigec<: L.---------- START OF VARPTR ----------h(h)hhhhh,h-h*h+ȑHH)H(H`---------- END OF VARPTR ----------\ZTRPN<: L/---------- START OF SVARPTR ----------h)h*hhhhh-h.h+h,566 B A S I C X T Basic Language Extensions for the Apple /// USER GUIDE D A DataSystems - 1984 sorts an array of string values, and an associated array of integer values. QWKSORT sorts an array of string values. Performance for both sorts is approximately 3000 15-chasic Variable. CALL allows you to execute a short machine language routine which is in memory, usually imbedded in a string addressed by VARPTR. TAGSORT allows you to change the value of any specified memory location in the Apple /// including access to all bank-switched memory. VARPTR returns the actual memory address of any Ba Function Overview PEEK returns the value of any specified memory location in the Apple /// including access to all bank-switched memory. POKE ring sort including TAGSORT & QWKSORT ascending or descending order. -1- Basic XT D A DataSystems K function found in more popular Basics equivalence of POKE " " " " " " equivalence of VARPTR " " " " " " equivalence of CALL " " " " " " high speed stmachine language routines to allow : * closer emulation of more popular Basics * direct access to machine internals * performance improvements The functions supplied are : equivalence of PEE or functionality. The routines are supplied in the Business Basic standard format as "Invokeable Modules". We place at your disposal for Business Basic applications development and enhancement a variety of 'canned' high-speed D A DataSystems Description BASIC XT is a collection of machine-language routines which can be added to any Apple /// Business Basic language program to improve performance D A DataSystems 3792 Windover Dr Hamburg, NY 14075 716-648-2462 Basic XT ugh every effort has been made to ascertain correct performance of BASIC XT, we cannot guarantee that it is bug free. WE WILL MAKE EVERY REASONABLE EFFORT to assist you with any problems or questions that may arise. Placed into the Public Domain February, 1988 (Manual Edited to Reflect Public Domain Status) The BASIC XT software supplied to you is Copyrighted 1984 by D A Datasystems. Althoracters-long average strings in 30 seconds. INVOKE FILES PEEKPOKE.INV contains modules PEEK & POKE VARPTR.INV contains the VARPTR functions CALL.INV contains the CALL functions TTTSORT.INV contains the TAGSORT & QWKSORT modules -2- Basic XT SWITCHED' MEMORY ADDRESSING The Apple /// SOS Reference manual, available from your dealer is the definitive source for details of Apple /// memory management and terminology. If you plan to start probing around machine internals aST$. Notes apply same as for TAGSORT. -4- Basic XT D A DataSystems NOTES ON APPLE /// "BANKtype variables. QWKSORT -----> FFF=FRE:ST$(0)="ZZZZZ": PERFORM QWKSORTA(@ST$(0),%NN%) or PERFORM QWKSORTD(@ST$(0),%NN%) which will sort NN% items of the string array iately precede the sort perform statement and that the item count variable (NN% here) must be loaded, usually with the dimensions of ST$() and TG%(). Both the tag array and count variables must both be integer will sort NN% items in the string array ST$() and associated integer 'tag' TG%. TAGSORTA sorts ascending, TAGSORTD descending. NOTE that the two Basic statements FFF=FRE:ST$(0)="ZZZZZ" must immed D A DataSystems TAGSORT -----> FFF=FRE:ST$(0)="ZZZZZ": PERFORM TAGSORTA(@ST$(0),@TG%(0),%NN%) or PERFORM TAGSORTD(@ST$(0),@TG%(0),%NN%) which stored entirely within a string variable... the last instruction in the string must be a normal RTS which is x'60 or dec chr$(96). -3- Basic XT bank 'BANK'. In order to accommodate return to proper bank setup, THIS ROUTINE MUST TERMINATE WITH THE SEQUENCE JMP 00F0 which is x'4C,F0,00 or dec'76,240,0. The second form will execute a machine language routinet to 0 before the function call. CALL -----> PERFORM CALL(@LOCN%,%BANK%) or PERFORM SCALL(@STRINGVAR$) The first form will begin executing machine language instructions at memory location 'LOCN' in string storage. Because of this the second form is provided which returns the address of the actual string. In both cases the proper bank associated with the address is returned in BANK% which must have been pre-seddress of the data values of variable VAR which can be of any type. The data values in memory associated with a string variable is itself only a 'descriptor' containing string length and offset from top of ch will store 'value' at memory location 'address%' in bank 'bank%' VARPTR -----> Q%=EXFN%.VARPTR(@VAR,@BANK%) or Q%=EXFN%.SVARPTR(@STRINGVAR$,@BANK%) The first form will return in Q% the memory aess is 0000-FFFF hexadecimal which map onto integer values -32768 --> 32767. Values for bank are x'80 to x'8F or decimal 128-143 representing banks 0-15. POKE -----> PERFORM POKE(%ADDRESS%,%BANK%,%VALUE%) whi D A DataSystems FORMAT OF USE PEEK -----> Q%=EXFN%.PEEK(%ADDRESS%,%BANK%) which will return the contents of memory location 'address%' in memory bank 'bank%'. Range for addrs your purchase of this software suggests, you should purchase this document AND be extremely careful. The next byte you poke could be one that alters SOS and ruins a disk. Basically, the /// can manage up to 512K bytes of RAM even though it runs an 8 bit CPU (the 6502B). It accomplishes this by breaking available memory up logically into 32K byte 'banks'. At any given time 32K is permanently dedicated to SOS and 'resident' parts or your Inteof n$(0). Avoid counts of zero, results are unpredictable. Maximum string space in Basic is 64K so you'll only fit 750 or so 80 byte strings for a sort (overhead is about 6 bytes per element). By using TAGSORT you can manageS plus two bytes with PEEK then replace with JMP 00F0 using POKe then CALL then remember to replace the original values. Both SORTs absolutely require the somewhat kludgey prefix coding, the FFF=FRE 'test' and the preload er array which you have loaded with the proper hex data. Be certain to terminate CALLs with the JMP 00F0 sequence. If you want to access a routine within the system or interpreter which probably ends with an RTS, capture the RTing but is limited to routines which can fit in a simple string, i.e. 255 bytes. DO NOT use string arrays since the individual elements are not contiguous. For larger routines use CALL on the address (obtained via VARPTR) of an integogram since Basic uses string space for many of its intermediate values of other functions. Doing a FRE before each SVARPTR should 're-pack' string space and return replicable values. SCALL is the simpler method of call VARPTR immediately before accessing the returned address. String data also floats around, in high memory. So an SVARPTR value will change, try it. This will happen even if you don't directly manipulate any new strings in your pr for strings, unless you really want the location of the simple string 'descriptor'. Be very careful accessing arrays via earlier VARPTR(s). Business Basic moves them around as it adds new simple variables in low memory... so do the NOTES on USAGE PEEK & POKE are fairly straightforward. Note that setting bank value to x'8F or decimal 143 will access banks 0 and 'system' bank. With VARPTR remember to use the alternative form you really want to bury your hands in this stew, pick up a copy of the SOS Reference Manual. -5- Basic XT D A DataSystems s to 64K chunks and stepping through all of RAM by simple manipulations of the x-bytes. Much of this is further implemented by fooling around with actual and 'nominal' zero-pages and stack pages...not for the faint-hearted. If an x-byte which effectively specifies a 64K byte 'bank-pair' to be accessed. This value is hex'80 plus the number of the lower bank in the pair. The 'bank-pair' is a consecutive set of two 32K banks allowing direct data accesining memory? Well the /// implements a few software-hardware cuties which allow a specific type of machine language instruction (zero-page indexed) to access any bank of system memory based on a value stored in ram called tem bank and 3 32K user banks numbered 0,1,2. Various software functions will cause different banks to be swapped into the user bank. This allows easy access to the current bank but what about the 64 or 192 or 384 K of remarpreter or application at addresses 0000-1FFF and A000-FFFF, total 32K. The remaining 32K between 2000-9FFF is the 'user bank' and is physically mapped to one particular 32K bank of user memory. On a 128K system you've got 32K sys much larger counts on one sort. Capture the smaller substring you want to sort on in the sortarray$() and spool the rest out to a random file with record number rn%... save rn% in the tagarray%(). After you sort your 5000 10 byte strings the sorted tags will allow retrieval of the full record from the file. -6- Basic XT D A DataSystems We wouldn't p$ 900A$="PRINTING"+F$(I):$=01:=0::"80C";A$;::12)F=23:=0::"79C";"PRESS ANY KEY TO HALT PRINTING"::2,280,21 2000*:=23:=0::"79C";"CONTINUE...?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"al damages. In no event will D A DATASYSTEMS be liable for direct, indirect, incidental, or consequential damages resulting from any defect in the software, even if D A DATASYSTEMS has been advised of the possibility of such dual at any time and without notice. The word Apple is a registered trademark of Apple Computer. -8- y servicing, repair, or correction and any incidental or consequentid warranties or liability for incidental or consequential damages, so the above limitation or exclusion may not apply to you. D A DATASYSTEMS reserves the right to make improvements in the product described in this manrect, incidental, or consequential damages resulting from any defect in the software, even if D A DATASYSTEMS has been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of impliet D A DATASYSTEMS, its distributors or retailers) assumes the entire cost of all necessary servicing, repair, or correction and any incidental or consequential damages. In no event will D A DATASYSTEMS be liable for direct, indi any particular purpose. D A DATASYSTEMS software is sold or licensed "as is". The entire risk as to its quality and performance is with the buyer. Should the programs prove defective following their purchase, the buyer (and noANTIES AND LIABILITIES D A DATASYSTEMS makes no warranties, either express or implied, with respect to this manual or with respect to the software described in this manual, its quality, performance, merchantability, or fitness for L(@A$):REM do it 420 NEXT I 500 GOTO 300 -7- Basic XT D A DataSystems DISCLAIMER OF ALL WARR 300 GET KY$:IF KY$=CHR$(3) THEN STOP:REM cntl-c to break 320 SUB$(A$,2)=CHR$(128+ASC(KY$)):REM add 128 to get non-reverse 400 FOR I = 4 TO 11 405 SUB$(A$,7)=CHR$(I):REM RUN THRU 0400-0B00 410 PERFORM SCALINVOKE ".D1/CALL.INV" 30 A$="" 100 READ COUNT 110 FOR I = 1 TO COUNT 120 READ DATUM 130 A$=A$+CHR$(DATUM) 140 NEXT I 200 DATA 11 220 DATA 169,65,162,0,153,0,4,200,208,250,96 de then polls the keyboard for a character which it plugs into the 'routine' at the appropriate spot. Finally a basic loop repeatedly performs the SCALL routine with altered video page values. 10 REM SCALL TEST 20 RTS will fill a segment of screen memory with inverse-"A". By running it successively with video pages 0400-0B00 we can fill the screen... quickly. The following program loads A$ with the assembler routine coleave you without just this one sample program. The assembler routine LDA 41h LDY 00 STA 0400,Y INY BNE -6 2010C$="N"C$="n"200;:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": 20002,280,21 DF$(I)=D$+"/DISKNAME.DAT"F$(I)=D$+"/FLASHNAME.DAT"410:ۺ310 PRINTER v 1.0 d QWKSORTA PTRADOL DOL MAINSORT#INSORTQWKSORTA QWKSORTARETURN *&N  AFLAG  LAG TAGFLAG GFLAG PTRADOL fbDOL  #8qqrr((С`uveeqr R0Lmymz 6/(0L( Lwx 6/0(0$L( kL-wxkUQPONLI>85.+(% Zbwx k #8uuvv((˭yuzvsqtr8qqrr((qmyrmzwx kyz kwvutsrqnkheda^[XWURPMB?-*)('&%$ {zyvgda^[ZWHF;0,$# `st}~0  eeJ ΋> e΅8=儑ȥ>兑>8逑8((Ј`1`Q`    566`͏ n(̑т!J ͍` w. `}~ ` `  ̖`    `}~ k`͌͋ `}~  }~   ` L *mmee ΅`566 #8qqrr((С`uveeqr R0Lmymz 6/(0L( Lwx 6/0(0$L( kL-wx`Q`}~ `sqtrtJvsjiuuvwx k #8uuvv((˭yuzvsqtr8qqrr((qmyrmzwx kyz k********* BEGINNING OF SORT PGM **********h{h|hshthhh}h~./ |H{H`st A `  `1hhhhhh HH`0.,*(&#  Lhhhhhh HH`0.,*(&#  Lhhhhhhhh HH`86420.,*'$#" XL*GA3/1.0REMOUMAINSORTsINSORTQWKSORTD QWKSORTDRETURN zvVRN ^Z AFLAG pLAG TAGFLAG kGFLAG PTRADOL DOL MAINSORTINSORTTAGSORTD TAGSORTDRETURN N  AFLAG LAG PTRAINT INT TAGFLAG GFLAG PTRADOL }TAGSORTA TAGSORTAMAINSORTXT.INFOv\ ' '+USER.MANUAL:\" !c0ed full directory entries 530 REM for ANY.PGM, HELLO, QWIKSORT & THIS.PGM 530 REM 550 REM 'nuff said ys will look like ... 516 REM ANY.PGM 3 518 REM HELLO 1 520 REM QWIKSORT 4 522 REM THIS.PGM 2 524 REM 526 REM And printing ENTRY$(a%(1...4)) in sequence will print entries 528 REM (3),(1),(4),(2), e.g. the correctly sort INDEXES INTO THE SAVED ENTRY$() 430 NEXT 500 REM ---------- 502 REM If the original files and tags were ... 503 REM 504 REM HELLO 1 506 REM THIS.PGM 2 508 REM ANY.PGM 3 510 REM QWIKSORT 4 512 REM 514 REM The sorted arra310 PRINT "------------SORTING NOW ..." 315 REM 320 N%=CNT%:A$(0)="ZZZZZ":FFF=FRE 330 PERFORM TAGSORTA(@A$(0),@A%(0),%CNT%) 335 REM 400 PRINT "----------- SORTED DIRECTORY FOLLOWS --------" 410 FOR I = 1 TO CNT% 420 PRINT ENTRY$(A%(I)):REM SO THE TAG A%(I)$(100) 220 OPEN #1,".D1":CNT%=0 230 ON EOF#1 GOTO 300 240 INPUT #1;LL$:FILE$=MID$(LL$,16,15):PRINT LL$ 245 IF VAL(MID$(LL$,10,5))=0 THEN 240:REM --- SKIP HEADER & TRAILER 250 CNT%=CNT%+1:A$(CNT%)=FILE$:A%(CNT%)=CNT%:ENTRY$(CNT%)=LL$ 260 GOTO 240 300 CLOSE internal to the full record and to speed up 206 REM by allowing sort on only the smaller file-name field. 208 REM 209 INVOKE ".D1/TTTSORT.INV" 210 PRINT "TAGSORT SAMPLE...":PRINT 212 PRINT "Original CATALOG for .D1 follows " 218 DIM A$(100),A%(100),ENTRY18 REM ---------------- SAMPLE follows -------------------------------- 120 REM 200 REM This code will read the directory of .D1 and produce a sorted 202 REM list of files on the .D1 catalog. We use the tags to allow us 204 REM to sort on a field ored in A%() array. 110 REM ---- When the elements in the A$() array are re-arranged, their 112 REM associated tag numbers are re-arranged in the exact same way 114 REM so the element(s) indexed by the tag are still accessible. 116 REM 1lpful in sorting larger records or disk-based elements. 104 REM The idea is to strip off the meaningful data to be sorted on 106 REM into the A$() array and leave the rest in another array or a 108 REM random disk file with index st10 REM TAGSORT FOR APPLE /// BUSINESS BASIC 16 REM 17 REM LOAD ARRAY A$() WITH STRINGS TO BE SORTED 18 REM LOAD ARRAY A%() WITH ASSOCIATED TAGS 19 REM LOAD N% WITH STRING COUNT 20 REM 30 REM 100 REM NOTES ON TAGSORT 102 REM TAGSORT is heRETURN {N sAFLAG /PTRAINT TAGFLAG . UTILS.INFOv\ ' '+USER.MANUAL8\ c''READ.ME\!  DULES which you may include in ANY Business Basic application that you own and use. These modules are available for single-system use without any licensing restrictions. -1- ette, encouraging easier backups and overall system orderliness. ALL functions are accessed through a window-based, menu driven format; but, in addition, ALL THREE functions are available in more primitive forms as BASIC INVOKABLE MOrations and greatly reduces or eliminates the annoying "swapping" required to copy on single floppy systems. ALL THREE functions allow system file housekeeping without the rebother of re-booting the System Utilities diskonger file pathnames common on the APple ///. The Disk Format function is unique in that it does not require a formatter Device Driver to have been loaded at Boot time. The Disk Copy accommodates a variety of system storage configu DISK FORMAT COPY ANY FILE The File Copy function is enhanced by the inclusion of so-called "wildcard" specifications and the use of "pseudo-prefixes" to substitute for the lwhich previously could only be accomplished by rebooting the System Utilities Diskette. Specifically, Basic Utils currently provides the following functions within Basic : DISK COPY Description Basic Utils is a collection of Basic and Assembler language programs which will allow you to perform, without leaving the Basic language, certain of the disk & file 'housekeeping' functions Systems 3792 Windover Dr Hamburg, NY 14075 716-648-2462 Basic Utils D A DataSystems ascertain correct performance of Basic Utils, we cannot guarantee that it is bug free. WE WILL MAKE EVERY REASONABLE EFFORT to assist you with any problems or questions that may arise. D A Data into the Public Domain February, 1988 (Manual Edited to Reflect Public Domain Status) The Basic Utils software supplied to you is Copyrighted 1984 by D A Datasystems. Although every effort has been made to B A S I C U T I L S System Utilities in Basic for the Apple /// USER GUIDE D A DataSystems - 1984 Placed Basic Utils D A DataSystems RUNNING THE PROGRAM(s) Basic Utils runs under Apple Business Basic. It can be selected under the WAP /// SIG Menu.Maker program by highlighting the "Run.Basic.Utils" selection and pressing Return. You will be asked to turn the PD disk over, and the program will run at that point. When finished, you will be asked to turn the disk over again. The main menu of the D A DataSystems File Copy Function If you ever needed a simple backup copy of a text file while running basic you had to go for your threadbare SysUtils diskette or, more expeditious it turns ocessfully, you will be prompted for repeat. If you answer no you will return to the main menu. -4- Basic Utils haracters long. DO NOT preceed this with the "/" character. The default is "MYDISK" which is easily accepted by pressing return; you can always rename the volume by the Basic RENAME .D1,"NEWNAME" command. After formatting sucenting .D1,.D2,.D3,.D4). If the diskette was previously formatted and contains files, you will be asked to verify the format which will destroy these files entirely. You will be prompted for a volume name up to 15 c Disk FORMAT Function This function will format a floppy diskette in any system drive in Apple /// standard form with a user supplied volume name. You will be prompted for drive number (1-4 repres you would like to copy another disk. Answering NO returns you to the main menu. -3- Basic Utils D A DataSystems are 280 blocks. The copy only manages Standard A3 floppies as implemented. Altering this for non-standard drives is fairly trivial and we would be happy to assist you in this. After the copy is completed you will be asked if prompt you if you insert an incorrect disk. Solely for informational purposes, this function will show the 'block' numbers of the diskette being read then of the one being written, two at a time. Totals for the standard A3 floppiesill about 7 fewer than SysUtils. Option (a) and Option (b) on 256K systems will require no swapping. On single drive copies, you will be prompted for appropriate disk insertions. The system will keep track of the two volumes andoppy in either of two ways... - Copy diskette in drive .D1 onto diskette in drive .D2 - Copy from one diskette to another using .D1 for both Option (b) will require four or five disk swaps on a 128K system which is stse it was too much aggravation re-booting and running `System Utilities'... have you been burned for that yet ?? This function will allow you to stay in Basic and do a total copy of the contents of an Apple /// formatted fl Basic Utils D A DataSystems Disk COPY Function How many times have you skipped the 'backup data disk' part of a Basic Language application simply becaunow In addition the default values for the two "pseudo-prefixes" will be displayed set to ".D1". An explanation of these and all functions follows. -2- program offers the following choices... 1. Copy a Disk 4. Set @P1 2. Format a Disk 5. Set @P2 3. Copy a File 6. Catalog a Directory 7. QUIT ut, write a quick read-write pgm to do the copy. No longer. This program will allow you to copy ANY file of ANY type between any A/// devices without ever leaving Basic. Copy SOS files, Invokable modules, and that text file. The program prompts you for ...file to be COPIED FROM ...file to be COPIED TO If the ToFile exists already you will be prompted to allow its deletion prior to re-creation via the copy. During the ctains block Read & Write fns GETDNUM.INV contains module to get device number for RWEXPFN Format Implementation X% = EXFN%.TTTFMTDX(%DRVNUM%,@VOLNAME$) will format in drive = DRVNUM% with volume name cont D A DataSystems Invokable Modules BUT.INV contains all functions TTTFMTDX.INV contains formatter COPYFILE.INV contains file copier RWEXPFN.INV contte in the built in drive. Note that this will get files Exempt.Jun & Nonexempt.Jun, BUT ALSO the file Hold.Junk... -7- Basic Utils only, in all cases> Thus, copying from .Profile/Payroll/*Jun to .D1/* would select all files containing the characters "JUN" within the file name from the .Profile/Payroll subdirectory to the diske CONTAINING A SPECIFIC SEQUENCE OF CHARACTERS nnnn in their file names, on the subdirectory involved, by entering "*nnnn" as the filename. If you specify a wildcard format in the FROM file specification, the TO file name MUST be "*", ildcard specifier character is "*". In specifying the file to be copied FROM, you may request ALL FILES on the subdirectory involved by entering "*" as the filename. In specifying the file to be copied FROM, you may request ALL FILES each individual file name, and freeing you up for other chores while copying takes place. We have implemented a useful but somewhat limited form of wildcards in Basic Utils with very specific formatting requirements. The wtils D A DataSystems Wildcards Wildcards are a means of allowing you to specify a BATCH of files to be copied at once, avoiding the necessity of keying inpytest. You may set a PP value using main menu options 4 and 5. The current values of @P1 & @P2 are always displayed during Copy File naming. -6- Basic Uf you specify copy from @P1/Testfile to @P2/Copytest and @P1 is currently set to = .Profile/Inventory/Data and @P2 is set to .D1 you will actually copy .Profile/Inventory/Data/testfile to .D1/Coa longer string of characters. When typing in a pathname you may preface it with one of the 2 PPes, @P1 & @P2. The actual file/path accessed will be built up by substituting the current values of @P1 or @P2 in your spec. Thus istems PSEUDO-PREFIXES Since file pathnames can get a bit unwieldy on the /// we have implemented a feature which we call Pseudo-Prefixes. A PP is simply a "shorthand" way of representing menu. File name specifications may optionally include WILDCARDS and PSEUDO-PREFIXES. -5- Basic Utils D A DataSyopy process the display will show the specific files being copied. Successful copying is noted with a message to that effect and you will be prompted for further copying, if any. Responding NO to this prompt will return you to the main ained in string variable VOLNAME$ returns X% = 0 if format successful File Copy Implementation PERFORM COPYFILE(@INFILE$,@OUTFILE$,@ERRCODE%) will copy existing file with pathname contained in INFILE$ to a new file with pathname contained in OUTFILE$ ERRCODE% will be set to 0 if copy ok... if OUTFILE$ exists, ERRCODE% will contain 327. -8- Ba. al damages resulting from any defect in the software, even if D A DATASYSTEMS has been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of implied warranties or liability for i -10- s the entire cost of all necessary servicing, repair, or correction and any incidental or consequential damages. In no event will D A DATASYSTEMS be liable for direct, indirect, incidental, or consequenti the right to make improvements in the product described in this manual at any time and without notice. The word Apple is a registered trademark of Apple Computer. * * * Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or consequential damages, so the above limitation or exclusion may not apply to you. D A DATASYSTEMS reservesges. In no event will D A DATASYSTEMS be liable for direct, indirect, incidental, or consequential damages resulting from any defect in the software, even if D A DATASYSTEMS has been advised of the possibility of such damages. programs prove defective following their purchase, the buyer (and not D A DATASYSTEMS, its distributors or retailers) assumes the entire cost of all necessary servicing, repair, or correction and any incidental or consequential dama this manual, its quality, performance, merchantability, or fitness for any particular purpose. D A DATASYSTEMS software is sold or licensed "as is". The entire risk as to its quality and performance is with the buyer. Should the D A DataSystems DISCLAIMER OF ALL WARRANTIES AND LIABILITIES D A DATASYSTEMS makes no warranties, either express or implied, with respect to this manual or with respect to the software described in $ is a string with first char = chr$(device name length) and succeeding chars are device name...e.g. chr$(3)+".D1" -9- Basic Utils write all (array max is 64K so you cant have one). For dual drive copy... dim copybuff%(255) then read-write loop through blocks 0-279. DEVICE NUMBER is obtained as DEVNUM%=EXFN%.GETDNUM(@DNAME$) where DNAMECopybuff%(255,69) and iterate through reading blocks i = 0-69 into copybuff%(0,i)... then write 0-69...then repeat for 70-139,140-209,210-279. For 256K single drive set up four separate arrays and read all then will read disk block = BLOCK% into Integer Array Copybuff%() X% = EXFN%.WRITEBL(%DEVNUM%,@COPYBUFF%(0),%512,%BLOCK%) will WRITE disk block = BLOCK% from Integer Array Copybuff%() For single drive systems DIM sic Utils D A DataSystems Disk Copy Implementation Copy primitive is a Read Block, Write Block (512 bytes) function X% = EXFN%.READBL(%DEVNUM%,@COPYBUFF%(0),%512,%BLOCK%) $5%5%6^67&7&8*8*9(9(0)0)-_-=+=+\|QWERTYUI OP[{]}`~`~ASDFGHJ K L ;:;:'"'"ZXCVBNM ,<,<.>.>/?/?d0hp.>/?/?d0hp!SHOLES 1!1!2@23#3#4$4 Pî:::KUb$="Sorry, this is an Invokable Module designed for use with the Basic"LVc$="program on this disk. Please see User Manual for more information."'We$="Returning you now to the menu."ZÚ=10:"8 QWIKSORT 4  THIS.PGM 2 C And printing ENTRY$(a%(1...4)) in sequence will print entriesH (3),(1),(4),(2), e.g. the correctly sorted full directory entries  & 'nuff said ----------- If the original files and tags were ... HELLO 1 THIS.PGM 2 ANY.PGM 3 QWIKSORT 4* The sorted arrays will look like ... ANY.PGM 3 HELLO 1Y FOLLOWS --------"I=1CNT%EENTRY$(A%(I)): SO THE TAG A%(I) INDEXES INTO THE SAVED ENTRY$()> RETURN TO MENU.MAKER SUBROUTINE NEXT..DO/WAP 3 SIG 2/28X=11000X):"HIT ANY KEY TO RETURN TO MENU";A$A$:".D1/MENU.MAKER"0,5))=0240: --- SKIP HEADER & TRAILER=CNT%=CNT%+1:A$(CNT%)=FILE$:A%(CNT%)=CNT%:ENTRY$(CNT%)=LL$240,"6"------------SORTING NOW ...";@N%=CNT%:A$(0)="ZZZZZ":FFF="JTAGSORTA(@A$(0),@A%(0),%CNT%)O4"----------- SORTED DIRECTORducts and support. We tended to step into that gap and arrange with wavering developers and manufacturers to configure and offer their products to the /// market. Working with a few other small companies and supported by a word-of-mouth network, user groups, and the very timely /// Newsletter (which grew up to become the /// Magazine), we all made it thru '85 and expanded the locus of action enough to convince a handful of other better-capitalized coTitan 3+2 Ramdisks PCPI++ Allows running PCPI CPM from Catalyst LEGEND++ Autoboot 1 meg ramdisk for Legend card TWO-N-FRO /// Run 3+2 emulation from Selector/Catalyst Kache+3 ull-featured dis-assembler Disk Window disk block editor Data Window file examiner Other Programs: PC-COPY IBM/Apple file xfer (req. hardware) RAM+3 Enahnced er and program accelerator Basic XRF program variable cross-referencer Basic Utils system utilities in Basic Basic XT language extensions including QuikSort Source Window frized person. TOOLS TIMES THREE The Retriever deleted file recovery utility Power Cat disk and file librarian Power Print software printer buffer Basic GTO partial compil Dynamic modula loader. QuikCrpt File encryptor/encoder. FileScan File viewer. FileDump File hex dumper. TypeRite Printer/typewriter. LockOut Prevents computer use by non-authoey. AsciTbl shows a table of Ascii character values as well as current system font. Dialer Phone dialer. QuikCalc Calculator. FontLoad Font switcher. Moduload any time. DiskMgr format floppy disks and copy files right in the middle of any other program. ShowTime display current system date & time at the touch of a k printer or send it to a disk file. QuikCat list the directory of files on a disk or other subdirectory at any time. PrintMgr send complex 'setup' codes to your printer at ial allows modem owners to dial a telephone directly from the keyboard or from a number displayed on the screen by their program. QuikScrn print a copy of the current text screen on yourailable as "background desktop utilities" at the touch of a key while running any Apple /// Program and they include: NotePad edit, load, save, alter and view small "scratchpad" files at any time. QuikD frequently typed characters. In addition Power Keys DM+ itself can manage a collection of 'desktop utility' modules which put additional and useful functions at your fingertips while running any other program. POWERKEYS MODULES All are aviptions by the developer himself: POWER KEYS Power Keys DM+ is a program which runs in conjunction with ANY other Apple /// program and allows you to substitute single keystroke shorthand or 'macro' commands for more lengthy sequences of7, Anderson was left without any major royalties. That led to his decision in January, 1988 to place all his software programs into the public domain. What are some of the products going into the public domain? Here's a list, with edited descrmpanies into or back into the /// market. In 1986, Daryl decided to sell many of his software products though Pair Software (Frank Moore) as well as through TAU, the Third Apple Users Group. But when Pair went bankrupt in early 198 Disk caching speedup via ramdisk Remote /// Control /// via remote dialup Daryl Anderson's address is: 3792 Windover Drive, Hamburg, NY 14075. , NY 14075. Control /// via remote dialup