LBSOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUNDINVALID KERNEL FILExةw,@  4  J  ȱ⩤i8#) ) 8Le0 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 ,TTTFMTDX.INVf \ $%WIPER \R; DISKNAME.DATn#USER.MANUALo!?\\# READ.ME\\# \] FORMAT.D1 \R +GETDNUM.INVM\ #HELLO U-\ \)+REQUEST.INVF \ "*MENU.MAKER  }>+RWEXPFN.INVQ\ #III.DAD.021022Bu' -BASIC.UT.MAIN ;\ \ +BASIC.UTILS  u\ G% 'BUT.INVW\ N *COPY.D1.D2 \Z3 ,COPYFILE.INV>\ N COPYFILE m#im#iЛ#Lȱ  6L憦  Lsmm l y` @8(Je稽 ʈVOLUME 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$ 78C";"ANY KEY RETURNS TO THE MENU.">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),"PASTXB$(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:CA)"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:ٺ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),el; "return the Software Resistration Card that you recieved"4:" or contact D A Datasystems."+ EXUENT4 PRINT" 100:7:clear.view$A<:"Unexpected System ERROR number ";;" at line number ";;%Z:"Program Terminating"::48000ȯ:clear.view$;ү:"The Disk you are using is NOT A VALID MASTER DISK."-ܯ:"The Master Disk is copy protected..."1:"C,u:"Press Any key to continue ";:any$:@ ON ERROR TO HERE%E=255TESTING$="YES"48050:۷)G=7FFF=:FCNT=FCNT+1:FCNT<5:JO:clear.view$\T=25=32=37"VERIFY THAT DISKETTE IS INSERTED AND DRIVE DOOR IS CLOSED":30W FRAME0^WW(1,1),WW(1,2)WW(1,3),WW(1,4):TTL$=SP70$cTTL$,1)="sn-"+SERIALNO$hTTL$,22)=EXPPGMNAME$mTTL$,66)="v-"+VERSION$6r"72C";TTL$;::WW(3,1),WW(3,2)WW(3,3),WW(3,4)!:PGMNAME$;" - terminated"testing$="YES": 61000A *********************************************************** DIMS INITS invoke1$50000: INIT MISC VARS60000: SET FRAME VALUES invoke6$ wmain=3'$, --------- INITS AFTER FLASH-ON@::60086: DRALEAR.VIEW$;attl$="":buff$="":topline$="":botline$="":midline$="":sideline$="":side$="":vert$="":lvert$="""BASIC.UT.MAIN" : DUMMYA ***********************************************************8 ** I N I T I A L L I Z E - called fromKE4$="COPYFILE.INV"+INVOKE5$="TTTFMTDX.INV"-INVOKE6$="BUT.INV"/02SAVEPREFIX$=7=OURVOLNAME$<Dd ------------ M A I N H E R E ------------------------------*n61000: FLASH-ON...CALLS 200 FOR INITx300: REST OF INITC copyfile.inv to manage error-hang 7 changes to copyfile.inv to manage duplicate disks?pgmname$="BASIC UTILS":EXPPGMNAME$="B A S I C U T I L S""OURVOLNAME$=#invoke1$="REQUEST.INV"(invoke2$="RWEXPFN.INV")INVOKE3$="GETDNUM.INV"*INVO *F * (c) Copyright 1983,1984 D A Datasystems *F ****************************************************************( for 1.25 changes see basic.ut.main3 changes toASIC UTILS (INIT MODULE) *F * *F * *F * 03/02/84 rev 09/31/84 v 1.25 *F *  BASIC.UTILSSERIALNO$="DADS"version$="1.25"TESTING$="NO "G ****************************************************************G * *F * TOOLS TIMES THREE - B INSERT SYSTEM DISK AND REBOOT"4 IF INVOKEDONE$="YES" THEN PERFORM TTTFINI(%1)仺900 h: dummyP INIT MISC VARSHOM$=12)%SAVE.VIEW$=01):REST.VIEW$=04)BELL$=07).CLEAR.VIEW$=28):CLEAR.TO.END.VIEW$=29)spaceline$=" "sp70$=spaceline$,1,70)"inv.vid$=18):norm.vid$=17)%|Ćwindow.count:ww(window.count,4)āi1=1window.count āJ1=14Ćww(i1,j !"#$%&'()*+,-./0123456789:;< version 1.25 09/31/84 * *F **************************************************************** ; Altered for use in WAP /// SIG PD library. D.O. 2/88_ 09/01/84 alter fre for 256K dcopy - allow d2->d1 c BASIC.UT.MAING **************************************************************** *B * BASIC UTILS module - BASIC.UT.MAIN 03/06/84 * */ * (c) D A DataSystems 1984 *B * I*1,23-I^Q=0I/2=I/2):۵`Q=1I/2=I/2):۴b:J=10002::dJ=12000:: z: DUMMY::::"45C";"D A Datasystems"::"45C";"Tools Times Three"::"45C";"(c) Copyright 1983,1984";:61028PRQ=0:I=200-1:61020@TI=14:::"49C";"PLEASE WAIT FOR INITIALIZATION";:200VXI/2=I/2):۵Z\1+I*1,1+I80-DLINE$=3:=0:MIDLINE$=5:=0:MIDLINE$=22:=0:MIDLINE$=22:=16:VERT$! VPOS=5:HPOS=57:PRINT LVERT$+21);13);: RESTORE WRAP,SCROLL,ETCH:JQ=1:I=0201:61020)LI=10:"56C";exppgmname$;:61028yNI=17T$,9)=BOTBRK$CLVERT$=SIDELINE$,1,54):LVERT$,1)=TOPBRK$:LVERT$,54)=BOTBRK$ DRAW FRAME1,180,24%21);01);: WRAP & SCROLL OFF*=0:=0:SIDELINE$:=79:=0:SIDELINE$(=0:=0:TOPLINE$:=24:=0:BOTLINE$=20:=0:MI#CURSLEFT$=08):CURSDOWN$=10)LSIDE$=LEFTRITE$+CURSLEFT$+CURSDOWN$:I=124:SIDELINE$=SIDELINE$+SIDE$:`CLOCKLINE$=CLOCK$:I=15:CLOCKLINE$=CLOCKLINE$+CLOCKLINE$::CLOCKLINE$=" "+CLOCKLINE$,50)?VERT$=SIDE$+SIDE$+SIDE$:VERT$,1)=TOPBRK$:VER,003 SET VARIABLES HEREUTOPLINE$=TOPLEFT$:I=177:TOPLINE$=TOPLINE$+TOPBOT$::TOPLINE$=TOPLINE$+TOPRITE$BBOTLINE$=TOPLINE$:BOTLINE$,1)=BOTLEFT$:BOTLINE$,79)=BOTRITE$BMIDLINE$=TOPLINE$:MIDLINE$,1)=LEFTBRK$:MIDLINE$,79)=RITEBRK$4TOPBRK$=136)) 136,000,000,127,000,000,099,034,034BOTBRK$=137)) 137,034,034,099,000,000,127,000,000LCLOCK$=138)) 138,112,076,066,065,001,002,012,112)RCLOCK$=139):CLOCK$=LCLOCK$+RCLOCK$) 139,003,012,016,032,033,018,01263,000,000|LEFTRITE$=132))~ 132,034,034,034,034,034,034,034,034TOPBOT$=133)) 133,000,000,127,000,000,127,000,000LEFTBRK$=134)) 134,034,034,098,002,002,098,034,034RITEBRK$=135)) 135,034,034,035,032,032,035,034,034 F$)".CONSOLE"hJj 8lTOPLEFT$=128))n 128,000,000,126,002,002,098,034,034pTOPRITE$=129))r 129,000,000,063,032,032,035,034,034tBOTLEFT$=130))v 130,034,034,098,002,002,126,000,000xBOTRITE$=131))z 131,034,034,035,032,032,01)ĂJ1ĂI1 6  CC RR CC RR 03,02,77,02 03,04,77,04  03,06,77,19 03,21,77,21 03,23,14,23 18,23,77,23?ſ` MAKE.FRAME.NEW dJ=12XfCC:BUFF$=CC):I=09*CC-1:CH:BUFF$=BUFF$+CH):I:CONTROL(%17,@BUFopy - change read/write block displays/ 09/01/84 fix for buggy .d1/.d1 256K copyA 09/07/84 INVALID ASSIGNMENT OF BLKLEN% TO 512 CHNG TO 1024- 09/10/84 fix for err9/6004 after dcopy0 09/31/84 fix to allow filecopy to .device* 09/31/8ert disk to be copied to (DESTINATION DISK) into .D2 drive" 6300:WIN$="END"3495 œ3700 =".D1":fromvol$=  œ40000  œ3720 =".D2":tovol$=D ww$="Is it OK to DESTROY contents of "+tovol$:wnum=4:6000:6400  œ40000 win$="NO"œ40000 win$="NO"3495/ dev$=3)+".D2":fromdevnum%=getdnum(@dev$)- dev$=3)+".D1":todevnum%=getdnum(@dev$) 3385 -- .D1 TO .D2 -- clear.view$J =5:"Insert disk to be copied from (SOURCE DISK) into built-in drive"H =7:"InsIVE"M =7:"Insert disk to be copied to (DESTINATION DISK) into BUILT IN DRIVE" 6300:WIN$="END"3495 œ3700 =".D2":fromvol$= œ40000 œ3720 =".D1":tovol$=D ww$="Is it OK to DESTROY contents of "+tovol$:wnum=4:6000:6400 (cmode$>"3")ww$="Invalid selection...":wnum=4:6000:6300:win$="GO"3010:3995X cmode=cmode$)-b cmode3500,3300,3200: d1/d1,d1/d2,d2/d1{  -- .D2 TO .D1 -- clear.view$E =5:"Insert disk to be copied from (SOURCE DISK) into .D2 DR---> to .D1";*( ksize=128" (";swpcnt;" swaps)":3+ =7:=10:"2. copy from .D1 ---> to .D2"30 =9:=10:"3. copy from .D2 ---> to .D1"M: ww$="Select copy mode 1,2,3 please ":wout$=" ":wnum=6:6200:cmode$=win$eN (cmode$<"1"):6200Rwin$<"1"win$>"7"ww$="INVALID FUNCTION selection":wnum=4:6000:6100:2010func$=win$:func=func$)  -- DISK COPY FUNCTION -- BLKLEN%=1024+ WW$=" DISK COPY Function ":wnum=2:6000 4& =5:=10:"1. copy from .D1 . Format a Disk 5. Set @P2"DR=10:=4:"3. Copy a File 6. Catalog a Directory"W=10:=08:"7. QUIT now \7350Efww$=" Select a FUNCTION by number then press RETURN":wnum=4:6000/zww$=" Choose 1 - 7 ":wout$="":wnum=6errfnname$(9)="Close ToFile"(SAVEPFX$=clear.view$;" ------ SELECT FUNCTION -----clear.view$;:66003WW$=" Selecting Program Function ":wnum=2:60009>=10:=2:"1. Copy a Disk 4. Set @P1"9H=10:=3:"21)="Create ToFile"%errfnname$(2)="Get FromFile info"#errfnname$(3)="Set ToFile info"!errfnname$(4)="FromFile open"errfnname$(5)="ToFile open"!errfnname$(6)="FromFile read" errfnname$(7)="ToFile write""errfnname$(8)="Close FromFile" tcat$=".D1"LTernmmap$="6468697073"*Verrname$(01)="Invalid pathname syntax"!Xerrname$(02)="Path not found"#Zerrname$(03)="Volume not Found"!\errname$(04)="File not Found"!^errname$(05)="Directory full"~lastfmtvol$="MYDISK"!errfnname$(nt=4copybuff%(255,bfmax)+fff=:fff>120000ksize=256:ksize=128Iksize=256copybuffx%(255,69),copybuffy%(255,69),copybuffz%(255,69)0infile$="@P1/fromfile":outfile$="@P2/tofile"8infSPEC$=INFILE$:OUTFSPEC$=OUTFILE$:outtag$="tofile"lasPrefix$testing$="YES":):clear.view$;:".D1/RUN.OTHER.SIDE" : DUMMY  INITX(A)=A))+ppfx$(2):ppfx$(1)=".D1":ppfx$(2)=".D1"errname$(5),errfnname$(10)Hfff=:fff<40000bfmax=(280/5)-1:swpcnt=5:bfmax=(280/4)-1:swpc0,7100,7200,7400,9058 diskcopy,diskformat,filecopy,set p1,set p2,catalog300X   endXWW$=pgmname$+" completed ... do you wish to run the program again ? ":WNUM=4:6000 6400yn$="NO"950250=SAVE4 fix for dupe vol situationC 09/31/84 fix to unlock to allow delete of locked copyto file Zœ400001000: INITIALLIZE $1500: inits for each iteration œ40000,2000: SELECT FUNCTION6FUNC<3CLEAR.VIEW$;+func3000,5000,4003495/* dev$=3)+".D1":fromdevnum%=getdnum(@dev$)-, dev$=3)+".D2":todevnum%=getdnum(@dev$)<9 ww$="READY to COPY":wnum=4:6000:6300:win$="END"3495H startblk%=021070R 3800: load array\ 3850: write emf startblk%1z 6600:wnum=4:ww$="DISK COPY Completed ":6000  -- .D1 TO .D1 -- tempvol$="/TEMPDESTVOL"E dev$=3)+".D1":fromdevnum%=getdnum(@dev$):todevnum%=fromdevnum% iter=0swpcnt-1 clear.view$;bell$;:6600V =5:"Insert disk to be copied from (SOURCE DOUTFSPEC$,1,OUTFSPEC$)-OUTTAG$)):intag$,"*")<>0dfltspec$=dfltspec$+"*":dfltspec$=dfltspec$+intag$H~ww$="":WOUT$=DFLTSPEC$:wnum=6:6200:outfile$=win$:outfspec$=outfile$Pwin$,1)="@"qi=win$,3,1)):qi>0qi<3outfile$=ppfx$(qi)+winSVPFX$:INVOL$=INVOL$,INVOL$)-1).slpos=infile$,"/",sl):slpos<>0indir$=indir$+infile$,sl,slpos-sl+1):intag$=infile$,slpos+1):sl=slpos+1:vct=vct+1:4141Chww$="Enter the name of the file to be COPIED TO ":wnum=4:6000 r6500{|DFLTSPEC$=nfSPEC$:wnum=6:6200:infile$=win$:infspec$=infile$O"win$,1)="@"qi=win$,3,1)):qi>0qi<3infile$=ppfx$(qi)+win$,4)%'case$=infile$:7500:infile$=case$1,indir$="":intag$=infile$:sl=1:invol$="":vct=0L-vct=1SVPFX$=:=INDIR$:INVOL$=:=="YES":3585 -- FILE COPY FUNCTION --&WW(WMAIN,4)=15:6600:CLEAR.VIEW$;+WW$=" FILE COPY Function ":wnum=2:6000dupe.vol=011000: textCww$="Enter the name of the file to be COPIED FROM":wnum=4:6000 6500Dww$="":wout$=ic%=writebl(%todevnum%,@copybuffY%(0,i%),%blklen%,%blk%):ERC%<>051000:۾3886:blk%yblk%=2102792:i%=blk%-210:erc%=writebl(%todevnum%,@copybuffZ%(0,i%),%blklen%,%blk%):ERC%<>051000:۾3886:blk%A6700:ww$="Repeat ? ":wnum=4:6000:6400:yn$692:blk%=i%:erc%=writebl(%todevnum%,@copybuff%(0,i%),%blklen%,%blk%):ERC%<>051000:۾3886:i%yxblk%=0701392:i%=blk%-070:erc%=writebl(%todevnum%,@copybuffx%(0,i%),%blklen%,%blk%):ERC%<>051000:۾3886:blk%y}blk%=1402092:i%=blk%-140:er40:erc%=readbl(%fromdevnum%,@copybuffY%(0,i%),%blklen%,%blk%):ERC%<>050000:۾3882:blk%zPblk%=2102792:i%=blk%-210:erc%=readbl(%fromdevnum%,@copybuffZ%(0,i%),%blklen%,%blk%):ERC%<>050000:۾3882:blk%in write all 280 p3884msi%=0=0692:blk%=i%:erc%=readbl(%fromdevnum%,@copybuff%(0,i%),%blklen%,%blk%):ERC%<>050000:۾3882:i%zFblk%=0701392:i%=blk%-070:erc%=readbl(%fromdevnum%,@copybuffx%(0,i%),%blklen%,%blk%):ERC%<>050000:۾3882:blk%zKblk%=1402092:i%=blk%-1+i%=erc%=writebl(%todevnum%,@copybuff%(0,i%),%blklen%,%blk%)ERC%<>051000 3886i%%(=10:=10:"Reading Blocks : ";:*=10:=30:blk%;:%,=11:=10:"Writing Blocks : ";:.=11:=30:blk%;:7< read all 280 >3880nAi%95 error on block read  read em 3880i%=0bfmax2blk%=startblk%+i%>erc%=readbl(%fromdevnum%,@copybuff%(0,i%),%blklen%,%blk%)ERC%<>050000 3882i%  write em 3884i%=0bfmax2blk%=startblk%mvolvhxww$="SOURCE disk not found...check for valid disk...drive door":wnum=4:6000:6300:win$="END"3495z error in tovol pww$="DEST drive not found...is it configured in your system ?":wnum=4:6000:6300:"ENDendEnd",win$)34".d1",tempvol$"ksize=2563950:iter=3:3650-$startblk%=iter*(bfmax+1):3850: write emR.iter=0".d1",tempvol$: since it will have been rewritten with block 2 copy Biter1V6600:ww$="DISK COPY Completed ":wnum=4:6000ot error in froopied to (DESTINATION DISK) into built-in drive";bell$:61007iter>0=".d1":С,8)<>tempvol$,8)3590:3620 œ3720=".D1":tovol$=Dww$="Is it OK to DESTROY contents of "+tovol$:wnum=4:6000:6400 œ40000,"NOnoNo",win$)3695:ISK) into built-in drive";bell$:6100- iter>0=".d1":<>fromvol$3560:3580 œ3700 =".D1":fromvol$= œ40000 ksize=2563900:3585, startblk%=iter*(bfmax+1):3800: read emclear.view$;bell$;:6600Y=5:"Insert disk to be c$,4)clear.view$;'case$=outfile$:7500:outfile$=case$5outdir$="":outtag$=outfile$:sl=1:outvol$="":vct=0Qvct=1SVPFX$=:=OUTDIR$:OUTVOL$=:=SVPFX$:OUTVOL$=OUTVOL$,OUTVOL$)-1)slpos=outfile$,"/",sl):slpos<>0outdir$=outdir$+outfile$,sl,slpos-sl+1):outtag$=outfile$,slpos+1):sl=slpos+1:vct=vct+1:4241Poutvol$<>""outvol$=invol$outvol$,"/copy..temp":dupe.vol=1:dupe.vol=02intag$,"*")=0wild.flg=0:4270:wild.flg=1mintag$,1)<>"*"ww$="Error in wildcard spec f6000 anykey$)wnum=5:ww$=" ":600038 9bell$;:svp=:shp=3<:ww(wnum,1),ww(wnum,2)ww(wnum,3),ww(wnum,4)B21);01);Lclear.view$;QWW$;" ";wout$;*Swout$<>""xi=1wout$)+1:8);: V" ";win$m,2)ww(wnum,3),ww(wnum,4)z21);01);clear.view$;ww$21);13);7:ww(wmain,1),ww(wmain,2)ww(wmain,3),ww(wmain,4)=svp:=shp bell$;#wnum=5:ww$=7)+" ====> ":60001wnum=6:ww$=" Press ANY KEY to CONTINUE":5995-fmtd.err%=tttfmtdx(%drnum%,@lastfmtvol$)`fmtd.err%<>0ww$="ERROR during format procedure... format not complete":wnum=4:6000:6100>k6700:ww$="Another ? ":wnum=4:6000:6400:yn$="YES"5000mprsvp=:shp=3t:ww(wnum,1),ww(wnu))(ch>123)ww$="Improper volume name...RE-ENTER":wnum=4:6000:6100:5080-((ch>96)(ch<123))win$,i,1)=ch-32)i&case$=win$:7500:lastfmtvol$=case$J6600:ww$="READY to FORMAT "+dd$+" as "+lastfmtvol$:wnum=4:6000:6300WIN$="END"wnum=4:6000:6400:win$="NO"5995 œ40000LWW$="Enter volume name up to 15 chars : ":wnum=6:wout$=lastfmtvol$:6200win$=""win$="MYDISK" win$)>15win$=win$,15)#i=1win$):ch=win$,i,1))s(ch<46)(ch=47)((ch>57)(ch<65n$):drnum<1drnum>46600:5022drnum%=drnum)PWW$="INSERT diskette to be formatted into selected drive":wnum=4:6000:6300WIN$="END"5995 œ5070dd$=".D"+drnum)=dd$:fmtvol$=Vww$="Is it OK to DESTROY contents of "+fmtvol$:ORE ?? ":wnum=4:6000:6400:yn$="YES"4000 -- DISK FMTD FUNCTION ---WW$=" DISK FORMAT Function ":wnum=2:6000uww$="Specify drive number for format operation":wnum=4:6000:ww$="Specify 1, 2, 3 or 4 : ":wnum=6:wout$="1":62000drnum=wirrname$((qi+1)/2)I ww$="ERROR...{"+errname$+"} during {"+errfnname$(x2)+"} function."wnum=4:6000:6100wild.flg4307:4900$%.dupe.vol"/copy..temp",outvol$(wild.flgsix.open#6:six.open=0RWW(WMAIN,4)=19:6600:6700:ww$="M4900rcode%),2)<>"57"4600%outvol$,"/copy..temp":dupe.vol=1 œ4585outfile$:outfile$ œ40000 4400 non dupe error2x1=rcode%-256*(rcode%/256)):x2=rcode%/256)Kqi=ernmmap$,x1)):qi=0errname$=x1):errname$=eCopy was SUCCESSFUL":wnum=6:6000wild.flg4307:4900 error codeRCODE%<>3274580cww$="WARNING...TO file exists & will be deleted - do you wish to continue ?":WNUM=4:6000:6400)yn$="YES"outfile$:outfile$:4400wild.flg4307:l$:outfile$=outDIR$+infl$CLEAR.VIEW$;=2:=2:"Copying FROM : " =3:=2:"-------> ";infile$=5:=2:"Copying TO : ""=06:=2:"-------> ";outfile$ 660020RCODE%=0:copyfile(@infile$,@outfile$,@rcode%):RCODE%<>04500*bww$="h$=intag$,2)&#6,indir$:six.open=1:ž#64995C#6;inline$:inline$,10,5))=04307:infl$=inline$,16,15)4INFL$,1)=" "INFL$=INFL$,INFL$)-1):4309SRCH$="*"4320infl$,srch$)<>04320 4307/infile$=inDIR$+inf5POUTDIR$<>""x$=" TO Directory ":#5,outdir$:#5: allow copy to device œ40000 4290 erc=: œ40000ERc=164290,ww$="CANNOT find "+x$:wnum=4:6000:6100 4995wild.flg=043400intag$="*"srch$=intag$:srcor FROM file... must be *xxxxxx":wnum=4:6000:6100:4995aouttag$<>"*"ww$="Error in wildcard spec for TO file... must be *":wnum=4:6000:6100:4995 œ4280\wild.flg=1x$=" FROM Directory ":#5,indir$:#5:x$=" FROM File":#5,infile$:#`win$=""win$=wout$21);13);7:ww(wmain,1),ww(wmain,2)ww(wmain,3),ww(wmain,4)=svp:=shp bell$;wnum=5:ww$=arrow$:6000Vwnum=6:ww$="Type GO to continue or END to quit now ":WOUT$="GO":62005WIN$="GO"WIN$="go"win$="Go"win$="GO":63959win$="END"win$="End"win$="end"win$="END":6395 6300 bell$; wnum=5:ww$=arrow$:6000Hwnum=6:ww$="Enter YES or NO : ":wout$="Yes":6200:2yn$=win$:yn$="hqhrhshthuhv     7w 7 F | ^   [w7 F " h|숭{ hrHqH`hhLML=?@ABCDGA3/1.06REMO COPYFILE G BLOCK READ4Z:"****** ERROR during block READ *****":520008 ERROR DURING BLOCK WRITE5B:"****** ERROR during block WRITE *****":52000 ˾6100:250 `q$,p$clear.view$;rL(=25)(=32)(=37)"VERIFY THAT DISKETTE IS INSERTED & DRIVE DOOR CLOSED and/or VOLUME ON-LINE":6100:O#06T"Unexpected Error Number ";;" in Line Number ";^"program terminating"r900 P ERROR DURINP~'.'ww$="Press ANY KEY to RESUME":wnum=4:6000 'ANYKEY$1'ww$="Press SPACE BAR to pause ":wnum=4:6000'* text for FILE COPYW+@B=3=4997402!E=255TESTING$="YES":۷-G=7fff=:fffcnt=fffcnt+1:fffcnt<50J0:win$="GO"7410:749586600:6100GL xlate case$ to upper'Vxi=1case$):xj=case$,xi,1))(`xj>96xj<123case$,xi)=xj-32)j: ' ON KBD'$'=3210100B'=3testing$="YES" j'10000o't' SPACE BAR LOO0qi<3catdir$=ppfx$(qi)+win$,4)clear.view$; œ7470#6,catdir$:ž#67460 œ4000010190:10000 !#6;catline$:catline$:7457$#6& )7480. /œ400000N36600:ww$="Cannot find "+catdir$:wnum=4:6000:630g PRINT clear.view$;*ww$="Catalog a Directory":wnum=2:6000qww$="Specify the directory that you wish a catalog of ":wnum=4:6000:6500:wout$=prevcat$:ww$="":wnum=6:6200!catdir$=win$:prevcat$=catdir$Owin$,1)="@"qi=win$,3,1)):qi>m=4:6000:6500:ww$="@P"+pfnum)+"=":wout$=ppfx$(pfnum):wnum=6:6200ppfx$(pfnum)=win$ also called from 2000ish=05:=12:70)=05:=13:70)!=10:=12:" @P1 = ";ppfx$(1)!=10:=13:" @P2 = ";ppfx$(2) ------- cataloww$="Setting value for Pseudo-Prefix$ #1":wnum=2:6000pfnum=1:7300  -------- set @p2@*6600:ww$="Setting value for Pseudo-Prefix$ #2":wnum=2:60004pfnum=2:7300 --- set ppfx$(1 or 2)rww$="Enter new value for @P"+pfnum):wnuno"yn$="NO"yn$="No"yn$="NO":6470;<yn$="YES"yn$="yes"yn$="Yes"yn$="YES":6470:6410F_dnww$=" =====>":wnum=5:6000 ww$=" ":wnum=46:6000::, delay a bit.iii=1400:iii: -------- set @p1@6600:L{|xyz`荀566 5̀`566 5``XhhL5|{Ll1`|{Ll7X`|{Ll7~  y`|{Ll  z`|{Llȳ`L `L5EGHIJKGA3/1.01:7SY CONTROL COPYFILE COPYFILE {xwvutsrqpmlkji_\[ZWVTQOLKJGFCBA><98621/+{Llȳ``|{Ll|{Llʿ``,yZ Ty,zZ Tz`|{LlY`gf`,x x` x`~}|{xwvutsrqponmjfcb`[NDCBA@>=7  L##6 >?Bi{Ci|) |=! "LL{@?>8(O\ F9 >{i 5|i6) 6|8 L5{ hhhh0 hWhXXhhHHHH l5m6m6  ЙW5X6X6 ` 5`MD32KA;6hWhXhhhQlhRm e Nb YMH YhLSꈭTXHWH`gGETDNUM GETDNUM  L"--- START OF GETDNUM ---5hhhhhhh5h66 H HHH`--- END OF GETDNUM ---kJH/-+)LNOGA3/1.01:7SY GETDNUM FILWRITE FILWRITEGETRFNM RTRFNM ERROR ^ROR DOARRAY OARRAY  ERROR ?BUFPNT NT DEVINFO DEVINFO MOVESTR FILREAD FILREAD BUF :4 GETRFNM BUFPNT OJNT ERROR ROR DOARRAY e=TPARMSERROR uROR BUFPNT BMOVESTR REQNUM UUM BLDSTRN DSTRN BUF pia RETURN RETADR  GETPARMSFREQNUM BUF "CONTROL CONTROL RETURN RETADR GETPARMS TPARMSERROR ROR STATUS STATUS BLDSTRN ,BUF |F GETPARMSca` hhh5h66HH :5HHH) @  hhh g5ȱg6ȱg@ ɀL g eegghI8e556l6m `  hUhVh8 ㅊ eh֭VHUHk`HFB>;:9853/&" NL64Ch5h6h3lh4m 0/L6H5H`g8640'%76,V^dKA;6hWhXhhhQlhRm e Nb YMH YhLSꈭTXHWH`gca` hhh5h66HH :5HHH) @  hhh g5ȱg6ȱg@ ɀL g eegghI8e556l6m `  hUhVh8 ㅊ eh֭VHUHk`HFB^ READBL VXYZ[\]^_`abcdGA3/1.06REMO READBL  HELLO =".D1""BASIC.UTILS"WRITEBL WRITEBL RETURN $ PARAM0 M0 PARAM1 RAM1 PARAM2 DEVNUM   LENGTH TH DUMMY Y  READBL READBL BLOCK RETURN PARAM0  PARAM1  PARAM2 DEVNUM  LENGTH DUMMY EXPBL EXPBL CMPBL CMPBL BLOCK K (hhhHHHH`JHB@><:86410/-(&px(HH`{rpnlIFEB?32-*&$L hhhh) JJJ ܊HH`zxvtVSQPMED?<'%hhhhhhhhhhhLhh hhhhhhhhhhh h  HH HH`_JHB@><:86410/-(&L hhhh)i ꊈ눌 حPRSTGA3/1.01:7SYLhh hhhhhhhhhhh h  HH HH`_JHB@><:86410/-(&L hhhh)i ꊈ눌 ح  SLtxөЩ(ԩѥѢ` `L L0ƓL` G` ѥ#H` vVH(h`ҠԢ` L` JLҥҩ0   Hh` G&ԥ8`   `HJН݌h Hh݌` JJJJ PF` ɠ&Lɠ%()G`0`L% hvV`) MׅP [I꽌ɪVɭռYռY 꽌ɪ8``80^݌Hh  ݌      EEHJНh {xwvutsrqpmlkji_\[ZWVTQOLKJGFCBA><98621/+hhhhhhhhhhL******LLLLLVLLLLLVLGLJLMLPLSLlʿ``,yZ Ty,zZ Tz`|{LlY`gf`,x x` x`~}|{xwvutsrqponmjfcb`[NDCBA@>=7  L`|{Ll|{1`|{Ll7X`|{Ll7~  y`|{Ll  z`|{Llȳ`{|xyz`荀566 5̀`566 5``XhhL5|{Llhv     7w 7 F | ^   [w7 F " h|숭{ hrHqH`hhLMLLhh h hhhhHHHH`[KICA?=;975210.)'L"--- START OF GETDNUM ---5hhhhhhh5h66 H HHH`--- END OF GETDNUM ---kJH/-+)hqhrhshthuHH`{rpnlIFEB?32-*&$L hhhh) JJJ ܊HH`zxvtVSQPMED?<'%Lhhhhhhh ` G` !Ɠ` G ` LƓ8`0ة `ʎ # HHHH`L-- begin format it --)t D,08  L +L'L"LhhhhhhhhhhL******LLLLLVLLLLLVLGLJLMLPLS [I꽌ɪVɭռYռYeghijklmGA3/1.0 TTTFMTDX READBL READBL EXPBL EXPBL CMPBL CMPBL WRITEBL WRITEBL GETDNUM GETDNUM COPYFILE COPYFILETTTFMTDX TTTFMTDX tk^YXTSNJIG<9632('yvnjihgfea`\[WVTQPONMLKJIA82  ,fQ 566 5  ȹȹȹ Li    Q `HHHhhh`hhhhhL END ---  N G : 7 / , + * ' &    tqhSPLFC1.+( hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LQ 566 5  ȹALID KERNEL FILE: xةw,@  ȱlmi8#)!) >dLԡm#i㰼m#iЕOLԡȱfg#+ u' LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVэ`Lp-- end format it --L! -- block it -- 꽌ɪ8``80^݌Hh  ݌      EEHJНh    `HJН݌h Hh݌` JJJJ PF` ɠ&Lɠ%()G`0`L% hvV`) MׅP  SLtxөЩ(ԩѥѢ` `L L0ƓL` G` ѥ#H` vV0,>!SHOLES 1!1!2@23#3#4$4$5%5%6^67&7&8*8*9(9(0)0)-_-=+=+\|QWERTYUI OP[{]}`~`~ASDFGHJ K L ;:;:'"'"ZXCBASIC UTILITIES BY DARYL ANDERSON TTTFMTDX TTTFMTDX N G : 7 / , + * ' &    tqhSPLFC1.+(tk^YXTSNJIG<9632('yvnjihgfea`\[WVTQPONMLKJIA82 ʈ@LQ 566 5  ȹȹȹ Li    Q `HHHhhh`hhhhhL END ---  )!) >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽) u' LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8##+ )t D,08  L +L'L"Lэ`Lp-- end format it --L! -- block it ---- begin format it --H(h`ҠԢ` L` JLҥҩ0   Hh` G&ԥ8`` G` !Ɠ` G ` LƓ8`0ة `ʎ # HHHH`LVBNM ,<,<.>.>/?/?d0hp Thus, copying from .Profile/Payroll/*Jun to .D1/* would select all files containing the characters "JUN" wit In specifying the file to be copied FROM, you may request ALL FILES 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 wildcads in Basic Utils with very specific formatting requirements. The wildcard 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. a BATCH of files to be copied at once, avoiding the necessity of keying in 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 wildcar -6- Basic Utils D A DataSystems Wildcards Wildcards are a means of allowing you to specify y copy .Profile/Inventory/Data/testfile to .D1/Copytest. 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. substituting the current values of @P1 or @P2 in your spec. Thus if 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 actuall call Pseudo-Prefixes. A PP is simply a "shorthand" way of representing a 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 function X% = EXFN%.READBL(%DEVNUM%,@COPYBUFF%(0),%512,%BLOCK%) 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 Copybuff%(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.   WIPER28);" This program will mass delete all files on a specified subdirectory"::"You may select a Confirm Delete option which will allow you to bypass a ":"particlular file.":#"Pathname for wiping : ";pnam$`:"Do you want Confirm APPLY TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS. THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE TO STATE. -10- PRESS OR IMPLIED, REGARDING THE ENCLOSED COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS NOT PERMITTED IN SOME STATES. THE ABOVE EXCLUSION MAY NOTive purposes) or into memory unless as part of the execution of Basic Utils. When Basic Utils has completed execution Apple software shall not be used by any other program. APPLE COMPUTER, INC. MAKES NO WARRANTIES, EITHER EXnd APPLE BUSINESS BASIC are copyrighted programs of Apple Computer, Inc. licensed to D A Datasystems to distribute for use only in combination with Basic Utils. Apple Software shall not be copied onto another diskette (except for archr. * * * Since Apple Computer has been extremely generous in licensing software allowing us to sell this as a more convenient 'boot disk' we ask that you note the following as well. APPLE SOS aation or exclusion may not apply to you. D A DATASYSTEMS reserves 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 Computen 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 incidental or consequential damages, so the above limit servicing, repair, or correction and any incidental or consequential damages. In no event will D A DATASYSTEMS be liable for direct, indirect, incidental, or consequential damages resulting from any defect in the software, everisk as to its quality and performance is with the buyer. Should the programs prove defective following their purchase, the buyer (and not D A DATASYSTEMS, its distributors or retailers) assumes the entire cost of all necessary respect to this manual or with respect to the software described in this manual, its quality, performance, merchantability, or fitness for any particular purpose. D A DATASYSTEMS software is sold or licensed "as is". The entire -9- Basic Utils D A DataSystems DISCLAIMER OF ALL WARRANTIES AND LIABILITIES D A DATASYSTEMS makes no warranties, either express or implied, with ICE NUMBER is obtained as DEVNUM%=EXFN%.GETDNUM(@DNAME$) where DNAME$ is a string with first char = chr$(device name length) and succeeding chars are device name...e.g. chr$(3)+".D1" For 256K single drive set up four separate arrays and read all then 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. DEVation before each delete ? ";yn$:"NOnoNo",yn$)cnf$="N":cnf$="Y" #1,pnam$ ž#1100 #1;F$(F$,12,3))=0202FIL$=F$,16,15).<FIL$,1)=" "FIL$=FIL$,FIL$)-1):60FQ$=pnam$+"/"+fil$Hcnf$="N"80VK"Confirm de copier2"copyfile.inv"d"infile : ";infile$n"outfile : ";outfile$&copyfile(@infile$,@outfile$,@ee%)#,ee%<>0"ERROR - x'";ee%)::"another ? ";:yn$:yn$yn$="Y"yn$="y"100blk%=startblk%+i%=erc%=writebl(%todevnum%,@copybuff%(0,i%),%blklen%,%blk%)ERC%<>051000i%2P:"ERROR DURING READ":8:"ERROR DURING WRITE":f startblk%z :"DISK COPY Completed "  read em"reading"i%=0bfmax2blk%=startblk%+i%>erc%=readbl(%fromdevnum%,@copybuff%(0,i%),%blklen%,%blk%)ERC%<>050000i%  write em "writing"i%=0bfmax2to (DESTINATION DISK) into .D2 drive"' :"Press any key to copy...":any$ =".d2":=".D1"/* dev$=3)+".D1":fromdevnum%=getdnum(@dev$)-, dev$=3)+".D2":todevnum%=getdnum(@dev$)H startblk%=021070R 3800: load array\ 3850: write empfn.inv"BLKLEN%=1024Hfff=:fff<40000bfmax=(280/5)-1:swpcnt=5:bfmax=(280/4)-1:swpcnt=4copybuff%(255,bfmax) reentry BLKLEN%=1024F "Insert disk to be copied from (SOURCE DISK) into built-in drive"D "Insert disk to be copied  copy.d1.d2 28):"This program will copy the diskette in .D1 onto the diskette in .D2"::"It demonstrates the use of EXFN%.GETDNUM, EXFN%.READBL & EXFN.WRITEBL":"Found in the GETDNUM.INV and RWEXPFN.INV modules." "getdnum.inv","rwexs any key to format...":any$$fmtd.err%=tttfmtdx(%1,@fmtvol$)^,fmtd.err%<>0"FORMATTING ERROR":::" Diskette in .D1 formatted as volume : ";fmtvol$ format.d1fmtvol$="MYDISK""tttfmtdx.inv"[228):"This program will format a diskette in .D1 and demonstrates the usage of the ",<"EXFN.FMTDX function in TTTFMTDX.INV":8d"insert disk to be formatted into built-in drive":'"Preslete for : ";q$;" y/n ";:any$:any$:(any$="Y")(any$="y")80:30 Pœ200RQ$U"....";Q$;" deleted"Z20d=35=82q$:82 "Error # ";:"Errlin - "; BASIC UTILS - IMPLEMENTATION NOTES The Disk Format option of the program and the TTTFMTDX.INV invokable module are tailored specifically to be used to format Apple Disk /// drives, they will not format the MicroSci or other non be related to SOS versions or specific unusual configurations, but until we can force the error we cannot generate a fix. Until we do so we advise you to avoid using the Basic Utils file copy function with the A143. s for a MicroSci A143 drive, for instance. We have recently received a report of problems encountered when using the File Copy option with a MicroSci A143 drive unit. Specifically in a system which also had a Profile hard disk confiured in. This may-standard drive. The CopyDisk option is also specifically tailored to Disk ///s in that it copies exactly 280 blocks. If you are proficient in Basic programming it would be an easy matter to change the copy code to manage a greater number of block