Spot #upr CR&Hugo!ReadMe AGSm}DAbacus A)m Ace Ae-mDAcorn A.m\Avp A5mDCamMicro A'6mTClares A6mlColton A59mDabs_PressA9mDixonDixonAH:mEmmerich A;mGem_Elect A;mII_Ltd AmLLingenuityA3?mTMagenta A@mlMaze A@mMeadow A%AmMinerva AAmMitre ACmOak_PDT ADmSilicon AFm$Watford A)Gm,!ReadMe AGSm}DAbacus A)m Ace Ae-mDAcorn A.m\Avp A5mDCamMicro A'6mTClares A6mlColton A59mDabs_PressA9mDixonDixonAH:mEmmerich A;mGem_Elect A;mII_Ltd AmLLingenuityA3?mTMagenta A@mlMaze A@mMeadow A%AmMinerva AAmMitre ACmOak_PDT ADmSilicon AFm$Watford A)Gm,0283,027-01$&Hugo[HugoDumpLQ A_*m Election87Ab+m EpBas A+m$ FpAss A+m, Info umpFXA8hA \MiniDumpFXAC,m4 RSComms A,m< DumpLQ A_*m Election87Ab+m EpBas A+m$ FpAss A+m, Info umpFXA8hA \MiniDumpFXAC,m4 RSComms A,m< Abacus Abacus HugoHugoReadMe ABhLReadMe ABhL DumpLQ DumpLQ HugoHugoReadMe AJhPReadMe AJhP Election87Election87HugoHugoReadMe A\UhTReadMe A\UhT EpBas EpBas HugoHugoReadMe AI\hXReadMe AI\hX FpAss FpAss HugoHugoReadMe A dh hReadMe A dh h MiniDumpFXMiniDumpFXHugoHugoReadMe AjhXlReadMe AjhXl RSComms RSComms HugoHugoInfo ctor AghpProjector A-mLInfo ctor AghpProjector A-mLAce Ace HugoJHugo!ProjectorA-mTLogos Aj_I][U!ProjectorA-mTLogos Aj_I][UDProjector Projector Hugo Hugo!Boot AO[hx!Run A懶[|!RunImage A[ !Sprites Aʚ[ Colours AzX- EuclidX AZ4!Boot AO[hx!Run A懶[|!RunImage A[ !Sprites Aʚ[ Colours AzX- EuclidX AZ4L!Projector!ProjectorHugoHugo1stWord+ Aj.mdCopySetup Aze2LEmulationsA/mHFORM ix AamVLogistix A04mPCEmulatorA4m,ReadMe Am1stWord+ Aj.mdCopySetup Aze2LEmulationsA/mHFORM ix AamVLogistix A04mPCEmulatorA4m,ReadMe AmAcorn Acorn HugoHugo!1stDMergeA.ml!1stInstalA.mt!1stMail A/m|!1stWord+ AX/m!Boot Aolg0<ReadMe A5~i @!1stDMergeA.ml!1stInstalA.mt!1stMail A/m|!1stWord+ AX/m!Boot Aolg0<ReadMe A5~i @\1stWord+ 1stWord+ HugoHugo!Boot A@qgD !Run Ahg!Sprites Ag$!Boot A@qgD !Run Ahg!Sprites Ag$d!1stDMerge!1stDMergeHugo&Hugo!Boot ADqgD!Run AEhg!Sprites Ag$ !Boot ADqgD!Run AEhg!Sprites Ag$ d!1stInstal!1stInstalHugoHugo!Boot AHqgB$!Run Ahg(!Sprites AI g$,!Boot AHqgB$!Run Ahg(!Sprites AI g$,d!1stMail !1stMail HugoHugo!Boot AMqgC0!Run Ahg4!Sprites A[Y g$8!Boot AMqgC0!Run Ahg4!Sprites A[Y g$8d!1stWord+ !1stWord+ Hugo2HugoReadMe AĽfBPView A/mViewSheet A0mViewSpell AE1mViewStore A2mReadMe AĽfBPView A/mViewSheet A0mViewSpell AE1mViewStore A2m\EmulationsEmulationsHugoHugo!Boot Alg$T!View A0mLibrary AP0mReadMe Adi h!Boot Alg$T!View A0mLibrary AP0mReadMe Adi hView View Hugo)Hugo!Boot AhgDX!Run APiga\!Sprites A[g$`!Boot AhgDX!Run APiga\!Sprites A[g$`!View !View HugoHugoWord A;jddWord A;jddLibrary Library HugoHugo!Boot heetARmg1t!ViewSheetA0mLibrary A 1mReadMe @e !Boot heetARmg1t!ViewSheetA0mLibrary A 1mReadMe @e ViewSheet ViewSheet HugoRHugo!Boot AU5igIx!Run Ahf|!Sprites A/Cg$!Boot AU5igIx!Run Ahf|!Sprites A/Cg$!ViewSheet!ViewSheetHugoHugoSheet AGjaSheet AGjaLibrary Library HugoHugo!Boot pellA!mg-!ViewSpellA1mLibrary A1mReadMe @nH !Boot pellA!mg-!ViewSpellA1mLibrary A1mReadMe @nH ViewSpell ViewSpell HugoHugo!Boot AXigI!Run Amfigg!Sprites Ag$!Boot AXigI!Run Amfigg!Sprites Ag$!ViewSpell!ViewSpellHugoHugoSpell ALQj`Spell ALQj`Library Library Hugo Hugo!Boot toreABng3!ViewStoreAL2mD A2mF A2mI A3mLibrary Ad3mR A3m ReadMe A8j S A3m!Boot toreABng3!ViewStoreAL2mD A2mF A2mI A3mLibrary Ad3mR A3m ReadMe A8j S A3mViewStore ViewStore HugoHugo!Boot ApigI!Run AAhh!Sprites Ang$!Boot ApigI!Run AAhh!Sprites Ang$!ViewStore!ViewStoreHugoHugoD D HugoHugoF F HugoHugoI I HugoHugoStore Afj`Store Afj`Library Library HugoHugoR R HugoEHugoS S Hugo%Hugo!Boot tix Aalg,,!Logistix Aa4m$ReadMe Ai @!Boot tix Aalg,,!Logistix Aa4m$ReadMe Ai @\Logistix Logistix HugoHugo!Boot Aig_0!Run Aig4!Sprites Ackg<8!Boot Aig_0!Run Aig4!Sprites Ackg<8!Logistix !Logistix HugowHugo!Boot A3Vng(L!PC A4m4ReadMe A[f!Boot A3Vng(L!PC A4m4ReadMe A[f\PCEmulatorPCEmulatorHugo;Hugo!Boot t AƮh=P!Run ot Ai lgT!Sprites Au0`\XGenBoot A15m<!Boot t AƮh=P!Run ot Ai lgT!Sprites Au0`\XGenBoot A15m<,!PC !PC HugoHugo!Config AoZ[g_\!Modules AjXgF`!Run2 AmXgh!RunImage Ay[gd l!RunImage2A [g xMemAlloc A]W0 !Config AoZ[g_\!Modules AjXgF`!Run2 AmXgh!RunImage Ay[gd l!RunImage2A [g xMemAlloc A]W0 4GenBoot GenBoot HugoHugoPixPerfectA5mLPixPerfectA5mLAvp Avp HugoHugoReadMe AݮhUpgrade A@\ReadMe AݮhUpgrade A@\DPixPerfectPixPerfectHugoHugoInfo x-3 A)f!Matrix-3 As6m\Info x-3 A)f!Matrix-3 As6m\CamMicro CamMicro HugoHugo!Matrix3 A6mdReadMe Afk!Matrix3 A6mdReadMe AfkTMatrix-3 Matrix-3 HugoHugo!Boot A×Z!Run AZ=!SPRITES AKZ, !Boot A×Z!Run AZ=!SPRITES AKZ, \!Matrix3 !Matrix3 HugoHugoAlphabase A:7mtArtisan A7m|Demo A7mGwriter A8mInfo t Anٟl ProArt A8mSupport A8mAlphabase A:7mtArtisan A7m|Demo A7mGwriter A8mInfo t Anٟl ProArt A8mSupport A8mClares Clares HugoyHugoReadMe A%e'ReadMe A%e'lAlphabase Alphabase Hugo`Hugo!RUN A6[^Art1 A"[)Art3 Aj [ReadMe A,eUPGRADE Al!RUN A6[^Art1 A"[)Art3 Aj [ReadMe A,eUPGRADE AllArtisan Artisan HugoLHugo!Run A- [ReadMe A3eTUPGRADE Aĥ \l!Run A- [ReadMe A3eTUPGRADE Aĥ \llDemo Demo HugoEHugo!Gwriter AS8m!Run Awƫ[?Gra3 A6[>Graph1 A[ReadMe AJeUPGRADE A] \X!Boot A>[!Gwriter AS8m!Run Awƫ[?Gra3 A6[>Graph1 A[ReadMe AJeUPGRADE A] \X!Boot A>[lGwriter Gwriter HugoHugoGraph5b Ad'Graph6b AdGraph5b Ad'Graph6b Ad!Gwriter !Gwriter HugoHugo!Boot Ah X($!Run AvA (Pro3 Aؐ[,Readme A+\4UPGRADE A \8!Boot Ah X($!Run AvA (Pro3 Aؐ[,Readme A+\4UPGRADE A \8lProArt ProArt HugoHugo!RUN AK[N<ReadMe AУe@SUP1 At\)[DSup3 A]%\zHUPGRADE A,\P!RUN AK[N<ReadMe AУe@SUP1 At\)[DSup3 A]%\zHUPGRADE A,\PlSupport Support HugoHugoInfo ream AdfTPipeDream Ak9mInfo ream AdfTPipeDream Ak9mColton Colton HugoNHugo!Boot reamAí f`!PipeDreamA9mReadMe At4'jx|!Boot reamAí f`!PipeDreamA9mReadMe At4'jx|PipeDream PipeDream HugoHugo!Boot Aid!Run A ibh!Sprites A*i`lReadMe ACixt!Boot Aid!Run A ibh!Sprites A*i`lReadMe ACixt!PipeDream!PipeDreamHugoHugoInfo A)fInfo A)fDabs_PressDabs_PressHugohHugoFarmcash A:mFieldfile A:mFPlanner A!;mMilkman A];mreadme Aef<Farmcash A:mFieldfile A:mFPlanner A!;mMilkman A];mreadme Aef<DixonDixonDixonDixonHugoHugo!Run A őX-!RunImage A0mX7readme A![!Run A őX-!RunImage A0mX7readme A![Farmcash Farmcash HugoxHugo!Run AX-!RunImage A~X7readme AT "[!Run AX-!RunImage A~X7readme AT "[Fieldfile Fieldfile Hugo@Hugo!Run AX-!RunImage A~X7readme A'+"[!Run AX-!RunImage A~X7readme A'+"[FPlanner FPlanner HugolHugo!Run A[!RunImage AXh!sprites AXreadme A>"[!Run A[!RunImage AXh!sprites AXreadme A>"[Milkman Milkman HugoHugoInfo AQfInfo AQfEmmerich Emmerich HugoHugoDesk_GamesA9m4DISTIT AS>m<GRAPHDATA A>mDInfo A4f3DIGIT A=m$DIGIT A=m,DISMAP A>m4DISTIT AS>m<GRAPHDATA A>mDInfo A4fInst_OphthInst_OphthHugoBHugoReadMe AjHfReadMe AjHf3DIGIT 3DIGIT HugoHugoReadMe ARf:ReadMe ARf:DIGIT DIGIT Hugo HugoReadMe A;\fReadMe A;\fDISMAP DISMAP HugoHugoReadMe AdfReadMe AdfDISTIT DISTIT Hugo6HugoReadMe Amf ReadMe Amf GRAPHDATA GRAPHDATA HugoHugoInfo A<*fInfo A<*fLendac_DS Lendac_DS HugoHugoInfo nter Al>Presenter A?m\Info nter Al>Presenter A?m\LingenuityLingenuityHugoHugo!Boot nterA܉l !PresenterA?mdReadMe Ap\l0!Boot nterA܉l !PresenterA?mdReadMe Ap\l0TPresenter Presenter HugoHugo!Boot A0l5$!RUN A1$l(!Sprites A&l,!Boot A0l5$!RUN A1$l(!Sprites A&l,\!Presenter!PresenterHugo?HugoInfo nect A*f8U_Connect AI@mtInfo nect A*f8U_Connect AI@mtMagenta Magenta HugoUHugo!U_ConnectA@m|ReadMe Ag"*fL!U_ConnectA@m|ReadMe Ag"*fLlU_Connect U_Connect HugoHugo!Run Ae,3Z@!sprites AZDREADME A3ZH!Run Ae,3Z@!sprites AZDREADME A3ZHt!U_Connect!U_ConnectHugo3HugoInfo ABePInfo ABePMaze Maze Hugo]HugoInfo r AMeMXTrader AtAmInfo r AMeMXTrader AtAmMeadow Meadow HugoHugoReadMe Acǡe`ReadMe Acǡe`Trader Trader HugoHugoAccounts ABmDelta AlBmGamma ABmInfo lAdmnAE,[T SchoolAdmnA CmSigma AYCmAccounts ABmDelta AlBmGamma ABmInfo lAdmnAE,[T SchoolAdmnA CmSigma AYCmMinerva Minerva HugoHugoIN-Lib ASTOtFhNL-Lib AEJVKPL-Lib AxVMReadMe AZVGLSL-Lib A(V`MTSM-Lib A BVDIN-Lib ASTOtFhNL-Lib AEJVKPL-Lib AxVMReadMe AZVGLSL-Lib A(V`MTSM-Lib A BVDAccounts Accounts HugoHugoDeltaConv A%_k2ReadMe A^ DeltaConv A%_k2ReadMe A^ Delta Delta HugovHugoGammaConv A~_+$ ReadMe AC^P GammaConv A~_+$ ReadMe AC^P Gamma Gamma HugoyHugoReadMe AP"Vw\ S-Lib A[V-` ReadMe AP"Vw\ S-Lib A[V-` SchoolAdmnSchoolAdmnHugo!HugoReadMe AK^ SigmaConv Ao\ ( ReadMe AK^ SigmaConv Ao\ ( Sigma Sigma HugoHugoFlyngStartACmInfo A ee FlyngStartACmInfo A ee Mitre Mitre HugoHugo!FlyImportA Set Alias$@RunType_D6A Run %%*0 IconSprites .!Sprites Set Projector$Dir Set Alias$@RunType_D6A Run %%*0 IconSprites .!Sprites RMEnsure Euclid 0.98 RMLoad .EuclidX RMEnsure ColourTrans 0 RMLoad .Colours Run .!RunImage %*0 !>$.!Ace.!Projector.!RunImage 8 (C) Tony Cheal/Ace Computing Nov 1988 Version 0.99 < Should be with version 1.00 Euclid or EuclidX or above (@ Plays back a film in Ace Film format using either the full 26 blown Euclid Module or the Public Domain EuclidX !B%=W%:ș"Wimp_GetWindowState",,B%:ș"Wimp_OpenWindow",,B%   NewSprite !șSO,&13C,S%,"X" R0,R1,R2,R3 :ș"Euclid_Expand",M%!32,DPTR%,SCR%,M%!40 ,DPTR%,SCR% &(M%!363)=0SCR%=0 0șSO,R0,R1,R2,R3 :2B%!4=-3E4:B%!8=-3E4:B%!12=3E4:B%!16=3E4:!B%=W% D"ș"Wimp_UpdateWindow",,B% F% N3ȕF%:X%=B%!4-B%!20:Y%=B%!16-B%!24:RedrawSprite X$ș"Wimp_GetRectangle",,B% F%: b l vMakeSprite 2ș"OS_SWINumberFromString",,"OS_SpriteOp" SO )ș"OS_ReadModeVariable",FM%,4 ,,XR% )ș"OS_ReadModeVariable",FM%,5 ,,YR% *ș"OS_ReadModeVariable",FM%,10 ,,LB% 0SS%=(((FW%>>XR%)*(FH%>>YR%)>>3-LB%)+1000)3 7S%SS%:!S%=SS%:S%!4=0:S%!8=16:S%!12=16:șSO,&109,S% ,șSO,&10F,S%,"X",0,FW%>>XR%,FH%>>YR%,FM%   $RedrawSprite:X%-=FW2%:Y%-=FH2% <<>CM%ș"ColourTrans_SelectTable",FM%,0,-1,-1,CT%:CM%=  CM%=FM%  șSO,&122,S%,"X",X%,Y%   % șSO,&134,S%,"X",X%,Y%,0,0,CT%    * 4+LoadFilm(F$):ȕF$,1)=" ":F$=F$,2): >1F$=""1,"Double Click on a Film to watch it" H-:: 1,"Unable to load film '"+F$+"'" R!ș"OS_File",5,F$ O%,,T%,,L% \+(T%>>8)<>-6621,"Not an Ace Film file" fM%L%:ș"OS_File",&FF,F$,M% p7FW%=M%!20:FH%=M%!24:FM%=M%!28:FW2%=FW%2:FH2%=FH%2 z  file_d6a,, wwwwwwwwwwwwwwwwwpwwpww wwpw wpww wwpw wpwwwwpwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwpwwpwwwwpwwpwwwwpwwpwwwwpwwpwwwwwwwwwwwwwwwwwsmall_d6a ,, wwwwwwwwwGDDGDDw wGDD GDDwwwwwwwwwGDDGDDwwGDDGDDwwwwwwwwwGDD!mogul, qwwwwwwqwwzzzwzqwzwqwqwwwwwqwwww|qwwww|ww|qw|qw|qwwwwwwwwwwwppwwsm!mogul , wGDwzwGDwwGDwwwwGDwwGDwwGDwwGDwwGwGwwwwGDpp@D!projector, wwwwwwwwwpwpw@DDpADqADDDDqDGtwwwGDtDDqGtzwwwJDGDDqqwzwwzzwwDDqwwwwwwwwzwwwwqwwwwwzzzqwwwwz qwwwwwwwwwww qwwww qwwwww wwww qww qwy qwwwwwwwww ww sm!projector , wwww@DwDtwwDDGDwGtzDDw@Dwwwwwww@Dw@Dww@Dw@Dw@Dwwwwwwwww@DX(4@WColourTransColour Selector 0.40 (15 Sep 1988)ColourTransSelectTableSelectGCOLTableReturnGCOLSetGCOLReturnColourNumberReturnGCOLForModeReturnColourNumberForModeReturnOppGCOLSetOppGCOLReturnOppColourNumberReturnOppGCOLForModeReturnOppColourNumberForModeGCOLToColourNumberColourNumberToGCOLReturnFontColoursSetFontColoursInvalidateCacheThe colour module needs RISC OS 1.82 or greater@-" @-;h "sxOb-ikh 5 @PPZFQ@- 5 @@-?C- "4Cc@XW5fx}-SWI not knownBad MODE@- `@- [@-WC-  Hbjj-НP-P-0-j R  q 0rsp qrFd@c@-C- jQP >@-2-  jQH  *@-9{@cC-  Hbj-WНC- ?P`q0{РadChc- C SН@-d@hc 5R QZp@- 5R@      !01"#23$%45&'67()89*+:;,-<=./>?   !$%(),-014589<="#&'*+./2367:;>? @-" " " p`& ^nBP& ^nB^%&d `V`fBV% U1 G2W B"! @-" " " p`& NP& N^%&d `FV% U! G"W B"!  5@O" @"_# a[谏!{ R   @  @P M { -IϏ⼥ ! .^Z---"PH/!wzStack overflow(h 000@P` p00@P `00p@@PP` `p0p@@@@!! Z墤ᢩ*ࢮ* ⊡" @-d@c[0@-@P  --sd?@cC-  -    -  Su Ssʮ H.a^࠱^0 * + ^$nB * +^DnB)* + ^nBរ)-q P`V`VUPE `V*PPeBpWpWUPE pW*RlPPeBpWpW UPE  pW*P bPPeBpWpWUPE pW*T`  ( %X @$pq pW p*@TР0c B %X @pQq pp@T0c0SXb%XȌL+h,l`X+l,d`\P-%h' `V`fB %l'lV`fB,%d't`V`fBp, \ X @- P/_-YZ- p0pl,@lEuclid 1.00 (13 Dec 1988) Public domain Film expander onlyEuclidInitialiseDrawLoadSaveAppendFindCreateDestroySetShowInsertDeleteTranslateZoomRotateListBoundSCloseDownMiscOpCompressExpand(C) Ace Computing 1988eEuclid SWI out of rangeFile not found2Bad picture structureObject not foundnumInvalid object entry numberNo room in picture blockdenUnrecognised object identifierWrong object identifier~Vane sizes do not matchvBad digit in named&o Unknown Euclid_MiscOpalg Screen edges not byte alignedil]Public domain Euclid Film expander onlyQInternal errorR0@-xs,uBQ QO jQB Ace Film_ꡐ_Ꞑ_̏@-#[ 0`  "0" " 0P  "0" " "0" "?C-&`P622 P- 9@ P9 8 ੐!4 X E K02 @ ) Y  2(IY 2@A(.AY Y*Y2(Y 2(YT :&&&H2&(P; T:h @-h@@@ @ h@p`pPpFh@-h  2 P1p l xB|t0@hlp @@A dA@@d3h $ B0 r 0S d  (М@#@UEuclid Logo @@05 aa aaa a aa a a aa(aaa a aaaaaBa aaa&Laaa ) KaXaaaaA(a aa6aaa  aAaa a @aaa0Caa a  @aaaaEaaa aa aaaGa aaa a aaaK a aa a aaa2M a0a&  aaa&Q$a$a&a aaaY$a a aa a a *a a&a aa a a 8ai0aa a &a au"a$a a"ay&a a aa  a&a a aa  aa(aa aa  a0a aaa(aa$a aa B*a aaa*4aaa aaaaaaa aaaaaaaaaa $ aa a a*aa a<a a4a a,(a"2a2a2a  2a,a10' aa a;aa a aa a;ga a$aaaa-i*aaaaa<akBaaaa@iNa a aaaCa a(aa9 aaaa0a8a;*a aa\aa;Baaa a ,aa?\a aa^a?taa a$aAa0a& aAaHaEa,aMaaWaaaaka{aaaaaaaala ajahadaXaLaBa6a,a a+a7a10 a/a%a,a 8aFaPaaXaaa Ja0aa6aDaa `a a&aybaaaakfaaaaePaaaaacJa aaa8a0aaaaa 6_$a(aaaa a[aaaa aaa+aY*a aaaa;a]a aaa;ca a)aa aAaaEa&aa4&a.a4a a aa&a*a aa(a a &a$2a&a a5a$a" a a(a(a"a a aa,a{.aaaa aa.awtaaBasvaaDam`aa a(o,a&aa a(s,a&a aaa awa a a aa a a{a a a aa a&a a aa a a&a a )a aCa )a aG -a(aG / &W44a#"a&a&a&a&a&a&a$ a*a aa a aaa aaaaa a$aa aa&aa a aaaaaa(aa aaa aa a"a aa aaaaaaaaa a a$aaa aa;a"a&aaa.a"a a0aaa.a.a a0aa &a aaaxa.apa a&Taa aaa ,aa a a aa a a a a a a a a aa a a a a  a7aa  aAa aa!a3a 4a;a/a#aa aaa aaaaaa aaa a aa aa a a a a a a a a a aaa aaaaaaaaa a"aaa aaaa aaaa aa a  aQa"a;a a.a)a a 0aa aaaha ada abaaaaTaaa2&a aaaa aa a aa a a a a,aaa aa aa aaaa#aa aa" a a&a7i ga5a%aa aaaaa a a aa aaaaa aaa aaa a aaa aa aaa aaaaaa aa Za)a aaaa aaaa a}a aa a |aaa aaa aa aa a aa aa a a a "a aa aa" a  a"'3  a#aa aa aaa a a a a ! aa$aaea a a8aa ag$a a"ba a eaa aza aea,aaexa a aaeva aaa a aeraa a a aakZa-a a 4aa3aa a4aaAa a ,aGa a aa aSaa aa a_aa a a a a aaa aaaa aa aa aaa a aaa a aa aaa a a a '1 ;a3a/a+ a'a'*aaa a aaaa,aaaaaaa aaaa.aaa .aa' a@aa!a a Bawa a Laqaa aHay"aa &aa aaaaaaaa a,aaaa a aaaaaaaaaa (aa7aqaa0a a=ak,a0aKa k"a*aGai,aaMaa ai 6aaQaagBaaWaaaa k>a_aam0acaaaaasaka aaaawaoaaa a aaa a a a aaaa a aa aa aaa a a aa a aa aaa  a a a a a aa a aaa a a a a !)1 ; } a a`a aaV a aaN&a aaD0a}a aa:8awa aa0Baqa aa&Laka aaRaga aa\a5a%a aada/ aaa a|a+ a aa ara/a aa aja7 a aa a "aBa?a a a aa a*a4aG a a aa aa a_ a a a aHa ak aa a a \a}a a a aka e 8asaac8a}aaa}aaa aaaaaaaaaaaa aaaa a a aaaaaaa a aaa a a a a a aaa aa a a aa aa  a aaa aaa aa aaa!a)/a 7 oa)a)a)a)a)a)a)a)a)a)a)a)aaaaaaaaaaaaa aaa aaa aaaa aa aa aa aaa aa aaa aa aaa aa aaa aa aaa aa aaa aaaaa aaaaama aaaaaia aaaaaia aaa a ia aaaaaia aaaaaaia aaaaaa ia aaa}aaaaia aaa{aaaaaka aaa}aaaawa aauaa}a aasaaa}a aaqaa a{a aaama aa{a aaoaa aa akaaa aeaaa acaaa aa_aaa a]aaa ]aa _a aa aa aaa e aaaai aaam aaaaq aau aa{a 5aaA a5a !a!""$$ aaaaaa$a"a a" aaaaaaaaauaauaauaaauaaauaaawa aaaawaaaaaaaaaa aaaaaaa aaaaaaaaaaaaaaaaaaaaaaaa!a) a /a9aw?;9 53/-)%#"$(a a aaaaaaaaaa aaaaaaaa!aa!aaaaaaaaaaaaaaa aaaaaa aaaaaaaaaaa!a %a+a5a94a= a7a1a+a%"a(a.a2a *a"aa aa" aa auaayaaaa aa aa'a'a'a'a'a#a#a#a#a#a#a%a#a#a!a!a!a!a!"a"aaa!a#aa#aa)a5 a4 Aa9a-a!*a6a 8a 8a 6a 6a 4a .a aaiaaaa aia-a+a-a+a+a+a+a+a)a)a)a'a)a'a'a'a'a'a%a'a%a%a#a%a#a#a#a#a!a!a#a#a'a5a x#) a a aaa aa aaaa aaaa a*a(aaFaBa@a>a:a8a 6aYa,aYa)a)a)a'a)a+a)a)a'a'a'a'a'a'a'a%a'a%a%a'a'a%a%a%a%a a'a#a#a!a#a#a!a!a!a!axaaa aaaa aa(aa aa aaaaaaa aaa "aBaa aaa $aa aa &a a$a"&a(a(a@a>aaa>aa>aa>aa a &a &a&aa aaa a aaaa *a &a  aaaa*a&aa"aaaaa a $aa$aa(a$a$a$aaa aaa$a a$aa$a a$a aGa'a%a#a# a!"a$a$a&a(a*a*a,a*aa.a0a0a0a.a,a.a.a,a,a*aaaaaa a  a a &a aa(a*a (a a a,aaa0aa a aaaa a a aa  &aa(aaaa aa aa&aa aa a aaaaa a a $aa &aa a,a aa&a aa&a a a a#*a0a0a0a.a0a.a0a.a.a.a.a,a.a,a.a,a,a a#aa#a( a aa aaa& aa aaaaaa aaaaa&aaa"aaaa aaaaa aaaa aa aaaaaaa a aaa aa a a aaa aaaa  a T a3$a0a0a0a0a0a.a.a.a.a.a.a,a,a,a,a,a,a*a*aa5-a)a'a%#$a!a aaaa a&a aaa aaaa aa a aaaaaa a aaaa aT(a1a+a%"a&a,a0a.a*a(a&a$a"aa#a%a'a)a-a/a1a3 a5a9a oa7 a/ a+ a' a%a%# a aaa aaa aa aa aa"a aaaaa a aaaa (A 5'aa a(a(a*a,a.a0a.a(a a!a)a/ a7a; a1 a+ a% a%a  a a a a a aa a a aaa a aaa a aaaa a a aTa3 a3-a+a)'a#a!aa!aaaa.24 a, 8a 8a 6a 6a 4a 4a 2a2a 5a/a'a'aa aa aa  a aa aaaa a aaaaa aa a aaa aTaaaaa a aaaa$&a,aa&aa$aaa a(a a(a& a(a0aJ a>a6a*&a .a8a  6a&a%a7a a3 a-a' aaaaaa aaaaaaaaaaaaa a!a aa!aaaa aa$a5a aa aa-a aa aa"#aa aa a*%aaaaa.)aaa,aaaa(aaa" aaaa%aaaa/ aaa1aa a aa"a a($a a"@ aB a a< a a 2 a a*a*a* a(aa: 2* %/99a1a) a%aaaaaaaaaaaaaaaa aaaa!aaaa a a aaaa a$ a+&a aC aa= a"a3 a aa1a + awa1aHau a/ aNau a/a.aas a/a a8aq a2aD as a aa a a>a a1aaa>a>a>a@a@a@aBaDaDaBaDaBaBa2a2a2a2aa>aa6a (aa a a!a(a 8aDaDaDaa aEDaqa a a?8a5a+a!&a0a :aBaJaFaDaBa>aa@a@a8a 2a*a"aa%a- a5a# a1a% a,a,,a..aa aa a.a.a2 a"aa"aa"aa"aa(a0a22a  a 4a 4a 4a 4a *aa a9 a3a+a#"a(a0a 9(a:::aaa aa a 4 a4 a4 6 aaaaa 8 8 8 8 a3a%a&a(a(a(a (a (a *a&a @a@@@@aa"a"a a& a, a,a,a a a(a(aa"a0a21&a*;$aE&aQ&a]&a(a(a(a(a*a*a*a,a`()a) a0a6aa8a0a&a"aa,a4 a aaa aaa a aaa a&a  aa a a a &a,a (a(a (a"a(aa*aaa(a a(aa *aa *aa *aa $aaaaaaaaaa aa a $a 0a 0a`|(/a9a+ a$a$a  $a$a&a&a$a&aaa"a a aaa$aaaa&aaa a&a aa6aa4aa 2aa *a aa a a a& a aa*aa aaa a aa a a aa!a a 'aaa#aa aaa a aa aa aaa (aa0a a 2a |8)oa%a aaaa&a(aa&aa a aa aaa aa a a a a" aaaa aaaaa a aaaa aaaa&a"a(a&a( a$aaaa"aaa "a aa aaa(a*a* a*a a4a a:a(a+aa"a-aa"a-aa1aaa3aa(3aa7a09a;a'a'a%a'aTa%"a(a.a6a a8a 4aa .a a *a1aa &a)a aa &a'a  a$a'aa a$a%aaa "a%aa a%a aa%aa aa)aaa a a/aaaaa a5aaaa aa;a aaaa a aaa "aaaa/aT -a)a)a%a%a#a%a%a%a*a,a(aa.a,aa.a9aa0a+a*aa)a*aa%a,a%aa,a#a a*a#a*aa(aa aa(aa aa&aa aa a&aaaaaaaa aaaaaa aa1a aaaaaaaaaaaaaaaaaaaaaaa %a1aaa a a aaaa a a aaaa a aaaaa a aa aa a aa aaa aaaa a a aaa a aaaa aa a aa aa aaaaaaaa aaaa aaaaaaaaa a)aaaaaa;a a aaaaaa aaaaa aaaaaaaaaaaaaa#a -ac ; a7aa#a(aaa. a a, a aa a a aa aa a a a a aa a a a a a aaa a a aaa aaaa a a a aaa a aa aaaa aa a a a aaa a,a a aaa aa a.aaaaaa ay a.aa aaaa a aaa a aa aaaaaaaaa aaaa aa aaa#a+a 9-aaaa a aa6 a@ aa  aa  a aa a !a2aaa a (.a  a (a aa aa a aaa aa aaaaa a#aeaaaa a a Yaaa a aa a a a aW0 a a a aaa a aa ] a*  aa aa aa"aaaa a aa aa a aiaaa aa aa a ua,aa a aa a aa$aaa a a a$aa a a a aaaa a aaaaa a a aa aa a a aa a a a aaaa a a aaa"a$a!a - aW| !Boot for !1stDMerge version 0.01 IconSprites .!Sprites| !Run for !1stDmerge version 0.01 IconSprites .!Sprites Wimpslot -min 300k set FirstWordPlus$Resources $.Resources.1wp. set FirstWordPlus$Docs &.1wp. run "1dm" (!1stdmerge,, ABDDBAB$DADDBADDBDBADB$DADBDBABDABDADBD$ADBDABD$ABD$AB$DADD$ADBDDABDADBD$DABD$sm!1stdmerge ,, $BDDAD$$DBB$DBBDB$BDBBD$DDD| !Boot for !1stInstal version 0.01 IconSprites .!Sprites| !Run for !1stInstal version 0.01 IconSprites .!Sprites Wimpslot -min 300k set FirstWordPlus$Resources $.Resources.1wp. set FirstWordPlus$Docs &.1wp. run "1pr" (!1stinstal,, @B$BD$D̻@DB$$DD̼̻@"D$@$$DD$D@BB̻@BDB$$D@DB$Dpsm!1stinstal ,,   ̻| !Boot for !1stMail version 0.01 IconSprites .!Sprites| !Run for !1stMail version 0.01 IconSprites .!Sprites Wimpslot -min 300k set FirstWordPlus$Resources $.Resources.1wp. set FirstWordPlus$Docs &.1wp. run "1ml" (!1stmail,,   DB$DDDD@DBDD"D$@DD"DDD@BDD"DDsm!1stmail ,, DDDAAD| !Boot for !1stWord+ version 0.01 IconSprites .!Sprites| !Run for !1stword+ version 0.01 IconSprites .!Sprites WimpSlot -min 400K set FirstWordPlus$Resources $.Resources.1wp. set FirstWordPlus$Docs &.1wp. run "1wp" (!1stword+,, @B$B$D$$D@D$DDBDDD@"D$DD@$$DB$DBB@DD$$D$D@BDB$$D $D$DBDBD@$DB$$BDB@BDDD$DBD@D$Bsm!1stword+ ,, @DADD@DDD@ADDA@| ADFS::0.$.!Boot for 1st WordPlus $.!1stWord+ Using 1st Word Plus under RISC OS This directory contains the components necessary to make existing copies of the Acornsoft 1st Word Plus package (SKB68) operate from the RISC OS Desktop. 1. Floppy disc users Create a new, RISC OS 1st Word Plus word processing disc and a new 1st Word Plus utilities disc by carrying out the steps below: a. Format two new floppy discs. Use one disc to make a backup copy of your current 1st Word Plus word processing disc and the other to make a backup of your 1st Word Plus Utilities disc. (You should use your original 1st Word Plus issue disc if you do not wish to copy any of your current 1st Word Plus files.) Name the word-processing disc New1wp and the utilities disc New1wpUtil. b. Copy the !Boot file, the !1stWord+ application and the !1stMail application from the Support disc to the root directory of disc New1wp. c. Copy the !1stDmerge and !1stInstal directories from the Support disc to the root directory of disc New1wpUtil. To use any of 1st Word Plus, 1stMail, 1stDMerge or 1stInstall, insert the appropriate disc into drive 0 or 1, click on the corresponding floppy disc icon and, when the directory viewer appears, double click on the required icon. In the specific case of 1st Word Plus, you may auto-boot the disc provided that it is loaded in drive 0. As under Arthur 1.2, you may also type one of: 1stWord+ 1stMail 1stDMerge 1stInstall at the Supervisor prompt (*). 2. Hard disc users a. If you have not already installed 1st Word Plus on your hard disc, do so now, using the HDInstall utility provided on your 1st Word Plus Utilities disc. The utility will create directory $.1wp on the hard disc and, if they do not exist already, directories $.Library and $.Resources. b. Copy the !1stWord+, !1stMail, !1stDMerge and !1stInstal applications from the Support Disc to the desired position in your hard disc directory structure. To use any of 1st Word Plus, 1stMail, 1stDMerge or 1stInstall, simply open the directory viewer containing the application(s) and double click on the required icon. As under Arthur 1.2, you may also type one of: 1stWord+ 1stMail 1stDMerge 1stInstall at the Supervisor prompt (*). *SET Copy$Options A ~C ~D F ~L ~N ~P Q R ~S ~T ~V Using Archimedes 6502 Emulation products under RISC OS All Archimedes 6502 emulation products are compatible with RISC OS and may be used in exactly the same manner as under Arthur 1.2. Anyone using original, 640K format discs is, however, advised to produce new working discs in 800K, RISC OS E format. The four major components of the View Family: View ViewSpell ViewSheet ViewStore are also suitable for execution from the RISC OS Desktop, and instructions for creating RISC OS specific versions are provided in the directory for each product. Note that whilst the instructions describe the production of a disc for each component, two or more applications (for example, View and ViewSpell) may be placed on a single disc if required. | ADFS::0.$.!Boot for View $.!View | !Boot file for !View version 0.01 IconSprites .!Sprites| !Run for !View version 0.01 IconSprites .!Sprites WimpSlot -min 100K $.Library.Word (!view,, wwwwwwwwwwwwwwwww||||ݪݪ|ݪ||ݪڪڪڭ|ݪݪݪ||ݪ|ݪݭ||||wwwwwwwwwwwwwwwwwsm!view ,, ݭڭ ݭڭ ݭڭ ݭڭ ݭڭ ݪ ݭ Quit RMensure Tube6502Emulator RMload $.Library.65Tube *EmulateTube *$.Library.VIEW MODE 3 SETUP FJ Using 6502 View under RISC OS This directory contains the components necessary to make existing copies of the Acornsoft View Emulation product (SKM31) operate from the RISC OS Desktop. 1. Floppy disc users Create a new, RISC OS View Emulation disc by carrying out the steps below: a. Format a new floppy disc and name it NewView. b. Copy the !Boot file, the !View application, and the Library directory from the Support Disc to the root directory on disc NewView. c. Copy the VIEW ROM image file from your original View emulation disc to the Library directory on disc NewView. Copy the new 6502 Emulator module to the Library directory on disc NewView. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. d. Set the Auto-boot option on the new disc to RUN by using the command: *OPT 4 2 To use View, insert the new disc into drive 0 and either: auto-boot the disc by pressing SHIFT+BREAK or: click on the floppy disc icon and, when the directory viewer appears, double click on the !View icon. You may also type: Word at the Supervisor prompt (*). 2. Hard disc users a. If you do not have one already, create a Library directory in your hard disc root directory. b. Copy the contents of the Library directory on the Support Disc to the Library directory on your hard disc. Copy the VIEW ROM image file from its current location on the hard disc (or the original View disc) into the hard disc Library directory. Copy the 6502 Emulator module to the hard disc Library directory. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. c. Copy the !View application into the desired position in your hard disc directory heirarchy. To use View: Click on the hard disc icon, open the appropriate directory and, when the directory viewer appears, double click on the !View icon. You may also type: Word at the Supervisor prompt (*). | ADFS::0.$.!Boot for !ViewSheet $.!ViewSheet | !Boot file for !ViewSheet version 0.01 IconSprites .!Sprites| !Run for !Viewsheet version 0.01 IconSprites .!Sprites WimpSlot -min 100K $.Library.Sheet(!viewsheet,, wwwwwwwwwwwwwwwww||ݭݪݪݪ|ݭݭݪݭ|ݪݪݭݪ|ݭݪݭ|ݪݪݭ|ݭݭݭݪ|ݪݪݭݭ|ݭݭݪ|ݪݭݭݭ|ݪݭݪ|ݭڭݪݭ|||wwwwwwwwwwwwwwwwwsm!viewsheet ,, ݪݪ ݭڭڪ ݭݪ ݪݪݪ ݭڪݪ ݭڭڪݪ ݪݪݪ Quit RMensure Tube6502Emulator RMload $.Library.65Tube *EmulateTube *$.Library.ViewSheet MODE 3 Using 6502 ViewSheet under RISC OS This directory contains the components necessary to make existing copies of the Acornsoft ViewSheet Emulation product (SKM07) operate from the RISC OS Desktop. 1. Floppy disc users Create a new, RISC OS ViewSheet Emulation disc by carrying out the steps below: a. Format a new floppy disc and name it NewSheet. b. Copy the !Boot file, the !ViewSheet application, and the Library directory from the Support Disc to the root directory on disc NewSheet. c. Copy the ViewSheet ROM image file from your original ViewSheet emulation disc to the Library directory on disc NewSheet. Copy the new 6502 Emulator module to the Library directory on disc NewSheet. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. d. Set the Auto-boot option on the new disc to RUN by using the command: *OPT 4 2 To use ViewSheet, insert the new disc into drive 0 and either: auto-boot the disc by pressing SHIFT+BREAK or: click on the floppy disc icon and, when the directory viewer appears, double click on the !ViewSheet icon. You may also type: Sheet at the Supervisor prompt (*). 2. Hard disc users a. If you do not have one already, create a Library directory in your hard disc root directory. b. Copy the contents of the Library directory on the Support Disc to the Library directory on your hard disc. Copy the ViewSheet ROM image file from its current location on the hard disc (or the original ViewSheet disc) into the hard disc Library directory. Copy the 6502 Emulator module to the hard disc Library directory. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. c. Copy the !ViewSheet application into the desired position in your hard disc directory heirarchy. To use ViewSheet: Click on the hard disc icon, open the appropriate directory and, when the directory viewer appears, double click on the !ViewSheet icon. You may also type: Sheet at the Supervisor prompt (*). | ADFS::0.$.!Boot for ViewSpell $.ViewSpell | !Boot file for !ViewSpell version 0.01 IconSprites .!Sprites| !Run for !ViewSpell version 0.01 IconSprites .!Sprites WimpSlot -min 100k $.Library.Spell (!viewspell,, wwwwwwwwwwwwwwwww||||ݪ|ݪ||ݪڪڪڭ|ݪ ݪ||ݪ |ݪݭ||||wwwwwwwwwwwwwwwwwsm!viewspell ,, ݪ ݭڭ ݭݪ ݪݪݪ ݭڪݪ ݭڭڪ ݪݪ ݪ Quit RMensure Tube6502Emulator RMload $.Library.65Tube *EmulateTube *$.Library.ViewSpell MODE 3 Using 6502 ViewSpell under RISC OS This directory contains the components necessary to make existing copies of the Acornsoft ViewSpell Emulation product (SKM28) operate from the RISC OS Desktop. Ensure that you have created a RISC OS version of the View word processor before following these instructions. 1. Floppy disc users Create a new, RISC OS ViewSpell Emulation disc by carrying out the steps below: a. Format a new floppy disc and name it NewSpell. b. Copy the !Boot file, the !ViewSpell application, and the Library directory from the Support disc to the root directory on disc NewSpell. c. Copy the ViewSpell ROM image file from your original ViewSpell emulation disc to the Library directory on disc NewSpell. d. Copy the dictionary files: O.Master1 T.Master1 W.Master1 from your original ViewSpell emulation disc to the root directory on disc NewSpell. e. Copy the Word and VIEW files from the Library directory of your RISC OS View disc into the Library directory on disc NewSpell. Copy the new 6502 Emulator module to the Library directory on disc NewSpell. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. To use ViewSpell, insert the new disc into drive 0 and either: auto-boot the disc by pressing SHIFT+BREAK or: click on the floppy disc icon and, when the directory viewer appears, double click on the !ViewSpell icon. You may also type: Spell at the Supervisor prompt (*). 2. Hard disc users a. If you do not have one already, create a Library directory in your hard disc root directory. b. Copy the contents of the Library directory on the Support Disc to the Library directory on your hard disc. Copy the ViewSpell ROM image file from its current location on the hard disc (or the original ViewSpell disc) into the hard disc Library directory. The Library directory should already contain the Word and VIEW files necessary to run the View word processor. Copy the 6502 Emulator module to the hard disc Library directory. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. c. Copy the !ViewSpell application into the desired position in your hard disc directory heirarchy. To use ViewSpell: Click on the hard disc icon, open the applications directory and, when the directory viewer appears, double click on the !ViewSpell icon. You may also type: Spell at the Supervisor prompt (*). | | ADFS::0.$.!Boot for !ViewStore $.!ViewStore | !Boot file for !ViewStore version 0.01 IconSprites .!Sprites| !Run for !ViewStore version 0.01 IconSprites .!Sprites WimpSlot -min 100K $.Library.Store (!viewstore,, wwwwwwwwwwwwwwwww||ݪݪݪڭݪ||ݪݪݪڭݪ|ݪݭݪڭݪ|ݪݪݭݪ| |ݭݪڭ|ݪݭݪڭݪ|ݪݪݪڭݪ|ݪݪڭݪ|ݪݪݪڭݪ|||wwwwwwwwwwwwwwwwwsm!store ,, ݪݭ ݭڭڭ ݭݪ ݪݭ ݭڭ ݭڭڭ ݪݪ Quit RMensure Tube6502Emulator RMload $.Library.65Tube *EmulateTube *$.Library.ViewStore MODE 3 Using 6502 ViewStore under RISC OS This directory contains the components necessary to make existing copies of the Acornsoft ViewStore Emulation product (SKM27) operate from the RISC OS Desktop. 1. Floppy disc users Create a new, RISC OS ViewStore Emulation disc by carrying out the steps below: a. Format a new floppy disc and name it NewStore. b. Copy the !Boot file, the !ViewStore application directory, the Library directory and the empty D, F, I, R, and S directories from the Support Disc to disc NewStore. c. Copy the ViewStore ROM image file from your original ViewStore emulation disc to the Library directory on disc NewStore. Copy the new 6502 Emulator module to the Library directory on disc NewStore. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. d. Copy the ViewStore utilities directory ($.U) from your original ViewStore emulation disc to the root directory on disc NewStore. It is also suggested that the IMPORT utility on the original disc be placed in directory U. e. Set the Auto-boot option on the new disc to RUN by using the command: *OPT 4 2 To use ViewStore, insert the new disc into drive 0 and either: auto-boot the disc by pressing SHIFT+BREAK or: click on the floppy disc icon and, when the directory viewer appears, double click on the !ViewStore icon. You may also type: Store at the Supervisor prompt (*). 2. Hard disc users a. If you do not have one already, create a Library directory in your hard disc root directory. b. Copy the contents of the Library directory on the Support Disc to the Library directory on your hard disc. Copy the ViewStore ROM image file from its current location on the hard disc (or the original ViewStore disc) into the hard disc Library directory. Copy the 6502 Emulator module to the hard disc Library directory. This module is called 65Tube and will be found in directory $.Modules on RISC OS Applications Disc 2. c. Copy the !ViewStore application into the desired position in your hard disc directory heirarchy. If you currently use ViewStore PREFIX commands to access your data files, add them to the commands contained in file $.Library.Store. To use ViewStore: Click on the hard disc icon, open the applications directory and, when the directory viewer appears, double click on the !ViewStore icon. You may also type: Store at the Supervisor prompt (*).  >HFORM V 1.72 18-Jan-89  0  Init ( GetShape 2DisableEscape < Format F Verify PStructure ZRestoreEscape d*RMREINIT ADFS n x: Init MakeParams%=6 VerifyRetries%=1 DefectRetries%=5 Verify%=0 Read%=1 Write%=2 WriteTrack%=4 Restore%=6 Specify%=&F AltDefectBit%=&10 DiscStruc%=&14 Log2SecSize%=8 SecSize%=2^Log2SecSize% OldMapAdd%=0 OldMapSize%=&200 "DirSize%=&800 ,BootAdd%=&C00 6BootSize%=&200 @%MaxDefects%=(BootSize%-64-&C-4)4 JEndDefect%=1 << 29 TOldLWM%=&E00 ^FreeLink%=1 hCrossCheck%=3 rAdfsSwi%=&40240 |AdfsDiscErr%=&108C7 MaxVerifyBad%=16 Patterns%=8 z Buf% &8000, DiscRec% 64+BootSize%, Defect% BootSize%, DirMark% 5, Bad%(MaxVerifyBad%),mc% 100, Pattern%(Patterns%-1) Boot%=DiscRec%+64 BootRec%=Boot%+BootSize%-64 Pattern%(2)=&FFFFFF Pattern%(3)=&6DB6DB Pattern%(4)=0 Pattern%(5)=&2CB2CB Pattern%(6)=&5A5A5A Pattern%(7)=&4D34D3 ; ''"H A R D D I S C F O R M A T T E R (V 1.72)"' 2 Drive%=Ask("Format which drive (4 or 5)",4)  Drive%=4 Drive%=5 MSecsPerTrk%=32:Heads%=1:Cyls%=1:LowCurrentCyl%=1:PreCompCyl%=1:ParkCyl%=1 "RootDirAdd%=&400:Log2Alloc%=10 &IndRootDirAdd%=RootDirAdd% 0/DiscSize%=SecSize%*SecsPerTrk%*Heads%*Cyls% : DNB D!("-ADFS-%DISMOUNT "+Drive%) N XAsm b l: v GetShape InitBootDefects InitDiscRec MoanOp(Restore%,0,0,0) 'Op(Read%,BootAdd%,Boot%,BootSize%) ( Result%<>0 GoodDefects dPB  OldShape )Op(Verify%,0,0,SecSize%*SecsPerTrk%)  ConfirmMake TBC  AskMake  I%=0 BootSize%-4  Boot%!I%=0  I% InitBootDefects Formatted%=(Result%=0)  AskShape A "Do you want to soak test the hard disc for defects (Y/N)";  SoakFlag%=Choose("YN")="Y" *B "Are you certain you want to format drive ";Drive%;" (Y/N)"; 4 Choose("YN")="N" >MoanOp(Specify%,0,0,0) H R: \ OldShape fSecsPerTrk%=BootRec%?1 pHeads%=BootRec%?2 zLog2Alloc%=BootRec%?5 DiscSize%=BootRec%!&10 3Cyls%=DiscSize% (SecSize%*SecsPerTrk%*Heads%) 'LowCurrentCyl%=(BootRec%!-8) &3FF $PreCompCyl%=(BootRec%!-6) &3FF 8ParkCyl%=(BootRec%!-4)(SecSize%*SecsPerTrk%*Heads%) InitDiscRec  :  AskMake   Makes%=0   Make$  Makes%+=1  ;Makes%;". ";Make$  I%=1 MakeParams% $ A$ . I% 8 Make$="OTHER" B8Make%=InputDec("Which make of hard disc ",1,Makes%) L V I%=(Make%-1)*(MakeParams%+1) ` ȕ I%>0 j A$ t I%-=1 ~ N Make$, SecsPerTrk%, Heads%, Cyls%, LowCurrentCyl%, PreCompCyl%, ParkCyl%  Make$;" chosen"  :  ConfirmMake  ) Make$, P1%, P2%, P3%, P4%, P5%, P6% μ Make$="OTHER" "The shape written on the disc does not match any of the standard drive shapes": "known by this program. Do you wish to retain this shape (Y/N)";:=Choose("YN")="Y" q P1%<>SecsPerTrk% P2%<>Heads% P3%<>Cyls% P4%<>LowCurrentCyl% P5%<>PreCompCyl% P6%<>ParkCyl% dDD p "The shape written on the disc matches that of a ";Make$;" disc"'"Do you wish to retain this shape (Y/N)"; =Choose("YN")="Y" :  AskShape  9 : : =&1E6 NewMap%=: DFE :;" @ ";: ș "XFileCore_Create", 0  (> char%=(StrAsk("Old or New map format (O/N)","N")) &DF 2 char%="O" char%="N" <NewMap%=(char%="N") F5SecsPerTrk%=Ask("Sectors per track",SecsPerTrk%) PDiscRec%?1=SecsPerTrk% ZHeads%=Ask("Heads",Heads%) dDiscRec%?2=Heads% n!Cyls%=Ask("Cylinders",Cyls%) x/DiscSize%=SecSize%*SecsPerTrk%*Heads%*Cyls% DiscRec%!&10=DiscSize% >LowCurrentCyl%=Ask("Low current cylinder",LowCurrentCyl%) =0  sector%=sector% 320   sector%=-sector%  A defect%=((cyl%*Heads%+head%)*SecsPerTrk%+sector%)*SecSize%  opt$="B" & AddPhysDefect(defect%) 0 :" RemovePhysDefect(defect%) D N "C": X NewMap% b: AddPhysDefect(InputHex("Disc address in bytes")) l v "If the ADFS gives an error such as 'Disc error 13 at :4/00012A00' then 00012A00 is a logical disc address. The logical to physical disc address mapping depends on the defect list. ";  " When these defects are added to the defect list, it is important that they are added in DESCENDING order BEFORE the list is changed in any other way!" N AddPhysDefect(LogToPhys(InputHex("Logical disc address in bytes")))    opt$="A"  I%=0 DiscStruc%-4 4  BootRec%!I%=DiscRec%!I%  I% InitHardDesc  :  Format =0  I%,J%,cyl%,head%  MoanOp(Specify%,0,0,0) MoanOp(Restore%,0,0,0)   "Formatting" ** I%=0 512-4 4:Buf%!I%=&077F03FF: 4 cyl%=0 Cyls%-1 > 13:cyl%; H head%=0 Heads%-1 R, cyl%=0 head%=0 Formatted% tDH \ J%=cyl% (head%<<24) f< I%=0 (SecsPerTrk%-1)*4 4:Buf%!I%=J% (I%<<14): pH Op(WriteTrack%,(cyl%*Heads%+head%)*SecsPerTrk%*SecSize%,Buf%,512) z0 Result% ;" format error on this track"     :  Verify d SoakFlag% '"PRESSING THE SPACE BAR WILL CAUSE THE SOAK TEST TO END AT THE END OF THAT CYCLE" " add%,ptr%,sector%,head%,cyl% Cycle%=1:ErrorCycle%=-100 (CylSize%=SecSize%*SecsPerTrk%*Heads% !suspects%=0:MaxSuspects%=1000 G CylBuf% CylSize%+4, SusAdd%(MaxSuspects%), SusCount% MaxSuspects%   Cycle%>1  I%=Cycle% Patterns%  I%>1 $ J%=Pattern%(I%) .# J%=(J%>>>1) ((J% 1)<<23) 8 Pattern%(I%)=J% B L J%=(&1000000)-1 V `/ SoakFlag% "Writing pattern &";~J% j2 I%=CylBuf% CylBuf%+CylSize% 3:!I%=J%: t ptr%=0 ~5 Formatted% add%=SecSize%*SecsPerTrk% add%=0  2 CylEnd%=add% - (add% CylSize%) + CylSize%  defect%=Defect%!ptr%  defect%>CylEnd%  length%=CylEnd%-add%   length%=defect%-add%  ! Op(Write%,add%,0,length%)  Result% / add%=(ErrDiscAdd% &1FFFFF00)+SecSize%   add%+=length%  . add%=defect% add%+=SecSize%:ptr%+=4  add%>=DiscSize% ( 2" SoakFlag% "Verifying" < add%=0:ptr%=0 F MoanOp(Restore%,0,0,0) P Z ȕ Defect%!ptr%DiscSize%  length%=DiscSize%-add%   length%=defect%-add%  ! Op(Verify%,add%,0,length%)  Result% # add%=ErrDiscAdd% &1FFFFF00 Try%=0   Try%+=1  MoanOp(Restore%,0,0,0) Op(Verify%,add%,0,&100)  Result%=0 Try%=5  Result% Try%+=1  sector%=add% SecSize% "" head%=sector% SecsPerTrk% ,$ sector%=sector% SecsPerTrk% 6 cyl%=head% Heads% @ head%=head% Heads% J; "Cyl=";cyl%;" Head=";head%;" Sector=";sector%;" "; T sus%=0 ^8 ȕ sus%add%:sus%+=1: h sus%=suspects% r" suspects%=MaxSuspects% | sus%=(MaxSuspects%)-1  suspects%+=1  SusAdd%(sus%)=add%  SusCount%?sus%=0   score%=2^(Try%-1)-1 $ SoakFlag% score%=score%*4  SusCount%?sus%+=score%  SusCount%?sus%>30  "defect ";  SoakFlag%  ("TIME")    & AddPhysDefect(add%) 0 ErrorCycle%=Cycle% : D SoakFlag% N' =0: >500: 13:(39);:13 X b" ;Try%;" retries needed" l v  add%=add%+SecSize%  ! add%=add%+length%+SecSize%   add%>defect%  ptr%+=4   add%>=DiscSize%  SoakFlag%   Key%=(0)  Key%=-1 Key%=32  done%=(Key%=32)  done%=Cycle%>ErrorCycle%+2   Cycle%+=1 * done% 4 >: H Structure R NewMap% \ NewStructure f p OldStructure z  :  OldStructure WriteDefectList WriteOldFsMap WriteRootDir  :  NewStructure Zone0Bits%=60*8 ZoneBits%=SecSize%*8 2 Log2Alloc%<8 Log2Alloc%>12 Log2Alloc%=10 : allocation size loop ; Alloc%=Ask("Large file allocation unit",2^Log2Alloc%)  Log%=7  $ Log%+=1 . Alloc%=2^Log% Log%=13 8, Log%=13 : restart alloc size loop B Log2Alloc%=Log% L MapBits%=DiscSize% Alloc% V! RoundSize%=MapBits% * Alloc% `4 BestZones%=1 << 30 : init to rogue values j BestCylOff%=1 << 30 t DummySpare%=1 1 ~2 SpareBits% = 4*8 ZoneBits%-Zone0Bits%-8*8  CalcZones  LinkBits%=10  LinkBits%+=1  CalcIds  Ids%<=2^LinkBits% A SpareBits%-4*8>0 SpareBits%-4*8<=LinkBits% SpareBits% 5 OddBits%>0 OddBits%<=LinkBits% SpareBits% # LinkBits%>15 Zones%>127 $ "Allocation unit too small"  Log2Alloc%+=1  DummySpare% & : restart alloc size loop    Zones% <= BestZones% * Crucial%=Zones%*SecSize%*2+DirSize% / MapZone%=0 Crucial%=BootAdd%+BootSize% (D Crucial%=EndDefect% (defect%>=MapAdd% defect%=EndDefect% CylOff%0 Crucial%+=Alloc%-Crucial% Alloc% J MapZone%=0 T# RootDirAdd%=BootAdd%+BootSize% ^> IndRootDirAdd%=&200 + (BootAdd%+BootSize%) SecSize% + 1 h r" RootDirAdd%=MapAdd%+MapLen%*2 |# IndRootDirAdd%=&200+Zones%*2+1  DiscRec%?4=LinkBits% DiscRec%?5=Log2Alloc% DiscRec%?9=Zones%  DiscRec%?&A=SpareBits% 256  DiscRec%?&B=SpareBits% 256 DiscRec%!&C=IndRootDirAdd% BootRec%!4=DiscRec%!4 BootRec%!8=DiscRec%!8 BootRec%!&C=DiscRec%!&C " I%=0 Zones%*SecSize%-4 4  Buf%!I%=0  I%  I%=0 60-4 4  Buf%!(I%+4)=DiscRec%!I%  I% &WriteDefectList 0 "Creating Map" : ptr%=0 DDefectStart%=0 N%DiscEndBit%=DiscToMap(DiscSize%) XZoneStart%=Buf% bZoneStartBit%=0 l zone%=0 Zones%-1 v$ !ZoneStart%=1<<(15+FreeLink%*8) ( ZoneEndBit%=ZoneStartBit%+ZoneBits% / UsedZoneEndBit%=ZoneEndBit%-SpareBits%+4*8 $ UsedZoneEndBit%>DiscEndBit% ! UsedZoneEndBit%=DiscEndBit%  ' PreFree%=ZoneStartBit%+FreeLink%*8  ZoneBit%=ZoneStartBit%+4*8  zone%=0 " ZoneBit%=ZoneBit%+Zone0Bits% + length%=(BootAdd%+BootSize%) Alloc% / length% ZoneBit%=ZoneBit%+length% H R \ f ZoneBit%>DefectStart% p, DefectStart%=DiscToMap(Defect%!ptr%) z( DefectStart%>=UsedZoneEndBit%  DefectStart%=ZoneEndBit%  ! DefectEnd%=DefectStart%+1  ptr%+=4   done1%=   done2%= . NextDefect%=DiscToMap(Defect%!ptr%) ) NextDefect%ZoneEndBit%-(LinkBits%+1) . NextDef%=ZoneEndBit%-(LinkBits%+1)   NextDef%=NextDefect%  . NextDef%-DefectEnd%DefectEnd% .% DefectEnd%=NextDefect%+1 8 B ptr%+=4 L done2%= V ` j done2% t0 DefectEnd%-DefectStart%ZoneEndBit% ! DefectEnd%=ZoneEndBit%   done1%=  K DefectEnd%>ZoneEndBit%-(LinkBits%+1) DefectEnd%<>ZoneEndBit%  DefectEnd%=ZoneEndBit%  done1%=  0 DefectEnd%-DefectStart%DefectStart% "PROGRAM ERROR 1": (B DefectStart%-ZoneBit% <= LinkBits% DefectStart%=ZoneBit% 2 DefectStart%>ZoneBit% <- WriteLink(PreFree%,ZoneBit%-PreFree%) F( DefectStart%>=UsedZoneEndBit% P7 WriteLength(ZoneBit%,UsedZoneEndBit%-ZoneBit%) Z' ZoneEndBit%>UsedZoneEndBit% d& WriteLink(UsedZoneEndBit%,1) nB WriteLength(UsedZoneEndBit%,ZoneEndBit%-UsedZoneEndBit%) x  4 WriteLength(ZoneBit%,DefectStart%-ZoneBit%)   PreFree%=ZoneBit%  " DefectStart%UsedZoneEndBit%-(LinkBits%+1)  DefectEnd%=ZoneEndBit%  ! WriteLink(DefectStart%,1) 9 WriteLength(DefectStart%,DefectEnd%-DefectStart%)  ZoneBit%=DefectEnd%   ZoneBit%=ZoneEndBit%   ZoneBit%=ZoneEndBit% " WriteLink(PreFree%,0) , zone%=0 6 ZoneStart%?CrossCheck%=&FF @ J ZoneStart%?CrossCheck%=0 T ^2 ?ZoneStart%=NewMapCheck(ZoneStart%,SecSize%) h# ZoneStart%=ZoneStart%+SecSize% r ZoneStartBit%=ZoneEndBit% | zone%  "Writing map" (MoanOp(Write%,MapAdd%,Buf%,MapLen%) 0MoanOp(Write%,MapAdd%+MapLen%,Buf%,MapLen%) WriteRootDir  :  CalcZones #UsedBits%=SecSize%*8-SpareBits% 1WholeZones%=(MapBits%+Zone0Bits%) UsedBits% .OddBits%=(MapBits%+Zone0Bits%) UsedBits% 8 OddBits% Zones%=WholeZones%+1 Zones%=WholeZones% MapZone%=Zones% 2  MapZone%=0  MapAdd%=0  3 MapAdd%=(UsedBits%*MapZone%-Zone0Bits%)*Alloc% & 0MapLen%=Zones%*SecSize% : D: N CalcIds X)IdsPerZone%=UsedBits% (LinkBits%+1) b=Ids%=IdsPerZone% * WholeZones% + OddBits% (LinkBits%+1) l v:  DiscToMap(discadd%)  bit%,zone% 'bit%=(discadd% Alloc%)+Zone0Bits% zone%=bit% UsedBits% /bit%=bit%+(bit% UsedBits%)*SpareBits%+4*8  = bit% :  WriteLink(off%,link%) . link%>=2^LinkBits% "PROGRAM ERROR 2":  bit%,add%,mask% bit%=off% 8 add%=Buf%+off% 8 mask%=2^LinkBits%-1 1!add%=(!add% (mask%<Buf%?(off%8)+=2^(off%8) H R: \ WriteDefectList f "Writing defect list" p ptr%=0 z check%=0 ȕ Defect%!ptr%>>16) 'check%=(check% (check%>>>8)) &FF "Boot%!ptr%=EndDefect% check% Sum(Boot%,BootSize%) ,MoanOp(Write%,BootAdd%,Boot%,BootSize%)  :  WriteOldFsMap  "Writing free space map"  s%,I% s%=OldMapSize% 2 $* I%=0 OldMapSize%-4 4:Buf%!I%=0: .!Buf%=OldLWM% &100 88Buf%!s%=(DiscSize%-OldLWM%-Defects%*SecSize%) &100 B!!(Buf%+s%-4)=DiscSize% &100 L%!(Buf%+OldMapSize%-5)=(&10000)-1 V!(Buf%+OldMapSize%-2)=3 `Sum(Buf%,s%) jSum(Buf%+s%,s%) t/MoanOp(Write%,OldMapAdd%,Buf%,OldMapSize%) ~ :  WriteRootDir  "Writing root directory"  BF% ' I%=0 DirSize%-4 4:Buf%!I%=0:  NewMap%  $DirMark%="Hugo"   $DirMark%="Hugo"  Buf%!1=!DirMark% BF%=Buf%+DirSize%  NewMap%   BF%!-38=IndRootDirAdd%  " BF%!-38=IndRootDirAdd% &100 ( 2BF%?-35="$" <BF%?-16="$" FBF%!-5=!DirMark% P check%=0 ZCheckPut(!Buf%) dCheckPut(Buf%?4) n I%=BF%-40 x ȕ I%3  CheckPut(?I%)  I%=I%+1  ȕ I%>>16) 'check%=(check% (check%>>>8)) &FF BF%?-1=check% -MoanOp(Write%,RootDirAdd%,Buf%,DirSize%)  :  LogToPhys(add%)  ptr%  ptr%=0 "ȕ add%>=Defect%!ptr% , ptr%=ptr%+4 6 add%=add%+SecSize% @ J =add% T: ^ AddPhysDefect(add%) h ptr%,ptr2%,defect% r Defects%=ptr% & Defect%!(ptr2%+4)=Defect%!ptr2%  ptr2%=ptr2%-4   Defect%!ptr%=add%  Defects%=Defects%+1    "Defect list full" & 0 :: D RemovePhysDefect(add%) N ptr%,ptr2%,defect% Xȕ Defect%!ptr% defect%<=last% good%= H last%=defect% R, defect%= EndDefect%) good% fDefects%=ptr%4 p!check%=check% (check%>>>16) z'check%=(check% (check%>>>8)) &FF T= good% ((defect%&FF) = check%) (sum(Boot%,BootSize%)=Boot%?(BootSize%-1)) :  InitDiscRec  I%=0 64-4 4  DiscRec%!I%=0  I% ?DiscRec%=Log2SecSize% DiscRec%?1=SecsPerTrk% DiscRec%?2=Heads% DiscRec%!&C=IndRootDirAdd% DiscRec%!&10=DiscSize% DiscRec%!&14=(&10000)-1 &$(DiscRec%+&16)="HardDisc"+Drive% DiscRec%?&22=Drive%  : $ InitBootDefects .!Boot%=EndDefect% 8Defects%=0 BInitHardDesc L V: ` InitHardDesc j.BootRec%!-&10= &00000000 : SL xxxxxx t6BootRec%!-&C = &0D0C200A : GPL2 GPL3 SH GPL1 ~9 BootRec%!-&10= &16000000 slow stepping alternative 9 BootRec%!-&C = &0D0CA80A slow stepping alternative 5BootRec%!-8 = LowCurrentCyl% (PreCompCyl%<<16) 7BootRec%!-4 = SecSize%*SecsPerTrk%*Heads%*ParkCyl%  :  Ask(String$,Default%)  X,Y,reply$,value%  :11  String$;" ?"; X= Y=  X,Y);Default%;X,Y);  *FX 15,1  ""reply$  reply$=""  value%=Default% ( 2 value%=(reply$) < F X,Y);value%;3 P = value% Z: d StrAsk(String$,Default$) n X,Y,reply$ x String$;" ?"; X= Y=  X,Y);Default$;X,Y);  ""reply$ # reply$="" reply$ = Default$  X,Y);reply$;3  = reply$ : " InputDec(String$,min%,max%)  reply$,value% * String$;" (";min%;" to ";max%;" ) ";  reply$  value%=(reply$) ! value%>=min% value%<=max%  = value% : " InputHex(String$) , reply$,value% 6 String$;" &"; @ ""reply$ J=("&"+reply$) T: ^ Choose(opt$) h reply$ r | reply$  (reply$)=1 reply$=((reply$)&DF)  opt$,reply$)  =reply$ :  CheckPut(I%) Bcheck%=(check% >>> 13) ((check% (2^13-1)) << (32-13)) I%  :  sum(base%,len%) sum%=0:c%=0  I%=len%-2 0 -1 sum%=sum%+base%?I%+c% + sum%<&100 c%=0 sum%=sum% &FF:c%=1  I%  =sum% &: 0 Sum(base%,len%) :#base%?(len%-1)=sum(base%,len%) D N: X& NewMapCheck(B%,C%)=(NewCheck%) b: l Asm v opt%=0 2 2 P%=mc%  [ OPT opt% .NewCheck%  MOV R0,#0  ADDS R2,R1,R2 \C=0 .loop%  LDR R3,[R2,#-4]!  ADCS R0,R0,R3  TEQS R2,R1  BNE loop%  R3,R3,#&FF  SUB R0,R0,R3  R0,R0,R0,LSR #16 ! R0,R0,R0,LSR #8 !  R0,R0,#&FF ! MOVS PC,R14 !  ] !* opt% !4 !>: !H DisableEscape !R+ș "XOS_Byte",200,1,0 R0,OldEscState% !\5ș "XOS_Byte",247,%10101010,0 R0,OldBreakState% !f !p: !z RestoreEscape !$ș "XOS_Byte",200,OldEscState%,0 !&ș "XOS_Byte",247,OldBreakState%,0 ! !: ! MoanOp(b%, C%, D%, E%) !Pș AdfsSwi%, 0, b% AltDefectBit% (DiscRec%<<6), C% Drive%<< 29, D%, E% ! !: ! Op(b%, C%, D%, E%) !vș AdfsSwi% (1<<17), 0, b% AltDefectBit% (DiscRec%<<6), C% Drive%<< 29, D%, E% Result%, R1%, ErrDiscAdd% ! Result% ! Result% (1 << 31) !( "Error &";~Result% &3FFFFFFF: " "- ((!Result%) &FFFFFF)=AdfsDiscErr% " Result%=Result%?3 "$ ".! "Error &";~!Result%;" "; "8 I%=4 "B ȕ Result%?I% "L Result%?I% "V I%=I%+1 "` "j "t "~ " " " ": "y Manufacturer, Sectors per track, heads, cylinders, low current cylinder, precompensation cylinder, parking cylinder "> 20Mb Western Digital/Tandon, 32, 4, 615, &3FF, &3FF, 663 "> 20Mb Miniscribe, 32, 4, 615, &3FF, 128, 663 "> 20Mb NEC, 32, 4, 612, &3FF, 256, 672 "> 20Mb Olivetti, 32, 4, 612, &3FF, 128, 670 "> 53Mb Rodime, 32, 7, 872, &3FF, 650, 871 "O OTHER, 32, 4, 612, &3FF, 128, 611:REM MUST BE LAST "[ For slow stepping drives you will need to use the alternate lines in PROCInitHardDesc | ADFS::0.$.!Boot for Logistix $.!Logistix | !Boot for !Logistix version 0.01 IconSprites .!Sprites Set File$Type_DFF Logistix | !Run for !Logistix version 0.01 IconSprites .!Sprites WimpSlot -min 500k RMEnsure FPEmulator RMLoad $.Logistix.FPEmulator Dir $.Logistix LGX Desktop @!logistix,, p(wwwwwwwwwwwwwwpwwws73sw3swwwwp(wwwwwwsw7swwwwpw73sw3swwswwwwp(ww7sw7sw7swwwwpww3swww733sp(w73s73sw7swwwwpww7sw7sw3swwwwp(wwwww3s73swwwwpw73swwww7swwwwp(wwwsw3sw3swwwwww3swwsw7swwww(ww7sw3s33swwww"(("("pwwwwwwwwwwwwwwwwwsm!logistix ,, XU%UU%"UXU"UUU%UX%"UU%"U[U"UUX""UU""UX%"UUU"UXU%UU""Ufile_dff,, wwwwwwwwwwwwwwwwwpwwpwwpwwpwHDDDDDDDDDDwpwHDDDDDDDDDDwpwHDDDDDDDDDDwpwHDDDDDDDDDDwpwHDDDDDDDDDDwpwHDDDDDDDDDDwpwKDDDIDDDwpwHDDDDDDDDDDwwHDDDDDDDDDDwwHDDDDDDDDDDwwHDDDDDDDDDDwwwpwwwwwwwwwwwwwwwwwsmall_dff ,, wwwwwwwww3333333933333wwwwwwwww Using Logistix under RISC OS This directory contains the components necessary to make existing copies of the Acornsoft Logistix package (SKB20) operate from the RISC OS Desktop. 1. Floppy disc users Create a new, RISC OS Logistix disc by carrying out the steps below: a. Format a floppy disc and use it to make a backup copy of your current Logistix work disc. (You should use your original Logistix disc 1 if you do not wish to copy any of your current Logistix files). Name the new disc NewLgx. b. Copy the !Boot file and the !Logistix application from the support disc to the root directory of disc NewLgx. c. Delete the floating point emulator module (fpe) from directory $.Logistix on disc NewLgx and replace it with a copy of the new emulator module. The new emulator module is called FPEmulator and it can be found in directory $.!System.Modules on RISC OS applications disc 1. To use Logistix, insert disc NewLgx into drive 0 or 1, click on the corresponding floppy disc icon and, when the directory viewer appears, double click on the !Logistix icon. Logistix will allocate you the largest workspace it can, given the current status of your machine. If you require more workspace, you must use the Task Manager to free more as appropriate. You may also auto-boot the disc provided that it is loaded in drive 0. As under Arthur 1.2, you may also type: Logistix at the Supervisor prompt (*). 2. Hard disc users (with default drive configured as 4) a. If you have not already installed Logistix on your hard disc, do so now, using the HDInstall utility provided on your your original Logistix disc 1. b. Copy the !Logistix application from the Support Disc to the desired position in your hard disc directory structure. c. Delete the floating point emulator module (fpe) from directory $.Logistix on the hard disc and replace it with a copy of the new emulator module. The new emulator module is called FPEmulator and it can be found in directory $.!System.Modules on RISC OS applications disc 1. To use Logistix, simply open the directory viewer containing the application and double click on the Logistix icon. Logistix will allocate you the largest workspace it can, given the current status of your machine. If you require more workspace, you must use the Task Manager to free more memory before you enter Logistix. As under Arthur 1.2, you may also type: Logistix at the Supervisor prompt (*). | ADFS::0.$.!Boot for PCEmulator $.!PC | !Boot for !PC version 0.1 IconSprites .!Sprites | !Run for !PC version 0.02 | RMEnsure MemAlloc 0 RMLoad .GenBoot.MemAlloc WimpSlot -min 16k -max 16k IconSprites .!Sprites Run .GenBoot.!RunImage `L!pc,< wwwwwwwwwwwwwwwwpppppwwwwppppwwppppwwpppwwwwwwwwwwwwp'$$$$$$$$$$rp'$$$$$$tww'rpqpwwwwwwwwwwwwppqpw""""""""""wppwwwwwwwwwwwwwwwsm!pc , qwwwwwwwwqqwwwwqwqwwwqwqwwqqwwwwwwww| This file controls how the application is started. Lines not beginning with | "|" may be edited. Do *NOT* add or remove any lines. | | Application root directory (can be set to AppRoot$Dir) $ | Application start command PC.Emulate | Quit desktop to maximise memory available (Y/N) ? Y | If N, what is minimum amount of memory required in Kbytes ? 0 | This file controls which modules will be killed if the application is | leaving the desktop & is running on a 310/410. | | At the time of release, the list contains *ALL* modules present in RISC OS. | Obviously, some of these cannot be killed and therefore have "|" in front | of them. | | The list can be amended to include any additional modules you may wish to | be removed when the application is run. Remember that the module name is | case sensitive. | | Module names preceeded with "|" will not be killed. It is advised that you | do not delete lines from this file, but simply preceed the module name to be | ignored with "|". | | UtilityModule | FileSwitch Desktop | BASIC SystemDevices FileCore%RAM | FileCore%ADFS | FileCore%Base | ADFS Econet NetFS NetPrint BBCEconet | International InternationalKeyboard Debugger | IIC | SoundDMA | SoundChannels SoundScheduler | WaveSynth StringLib Percussion SpriteExtend Draw FontManager | Obey WindowManager TaskManager PaletteUtil Filer ADFSFiler RAMFSFiler NetFiler ShellCLI Hourglass NetStatus | SpriteUtils | Podule ARMBasicEditor RamFS | This file goes between !RunImage and !RunImage2 in terms of execution. It is | run after the desktop has been quit. | | Do *NOT* change the following line Echo <22><0> | | The following lines can be amended to set the required size or free space | as required. Do *Help MemAlloc for more information on the available | commands and their parameters. If you do not want a particular part of | memory changed, prefix the line with "|" rather than deleting the line. | ScreenSize 80 SystemSize 0 RMASize 0 FontSize 0 SpriteSize 0 RAMFSSize 0 | | The 12 in the next line can be changed to enter the screen mode of your own | choice. | Echo <22><12> | | Do *NOT* change the following line Run .!RunImage2 @@@ 00PBASIC -quit @00009000,00009910 d  > !RunImage  initialise (&i%=(".GenBoot.!Config") 2t$=#i% : Copyright <t$=#i% : Version Ft$=#i% : blank line Pt$=#i% : descriptor Zar$=#i%: application root dt$=#i% : descriptor n(as$=#i%: application start command xt$=#i% : descriptor aq$=#i%: quit desktop flag t$=#i% : descriptor aw$=#i%: wimpslot value #i% aq$="N" . ș"Wimp_SlotSize",-1,-1 ,,f%:f%=f%/1024  f%<(aw$) f%=(aw$) 3 ("%WimpSlot -min "+(f%)+"k -max "+(f%)+"k") % ("%Set AppRoot$Dir ")  ("%Dir ")  ("%Dir "+ar$) (as$)  ,ș"Wimp_Initialise",200,&4B534154,"Boot"  error  ramfs "check_tasks , prequit 6 @! ș"Wimp_Poll",1,message r% J Ȏ r% T 17,18: receive ^ 19 : ack h r quit% |2stuff("%Run "+path$+".GenBoot.!Run2"+12+13) ș"Wimp_CloseDown"  : initialise  b%  quitblk 20  message 256 quit%=:quitref=0 7ș"OS_ReadVarVal","Obey$Dir",message,255,0,3 ,,b%  message?b%=13:path$=$message  :  ramfs "ș"OS_ReadRAMFsLimits" s%,e%  s%<>e% . ș"OS_FSControl",28,"RAM::0.*",,1 ,,,s% & s%<>0 0F w("Continuing will result in the loss of data in the RAM disc") :) ș"OS_FSControl",27,"RAM::0.*",,%11 D N X b: lcheck_tasks v tasks%,task_max% task_max%=5 )ș"OS_FSControl",13,"net"+0,1 ,,i% i%<>0 task_max%+=1 )ș"OS_FSControl",13,"ram"+0,1 ,,i% i%<>0 task_max%+=1 #ș"Wimp_ReadSysInfo",0 tasks% tasks%>task_max% P w("Continuing will result in the loss of any unsaved data in the desktop")   :  prequit !quitblk=20 quitblk!12=0  quitblk!16=0 &ș "Wimp_SendMessage",18,quitblk,0  quitref = quitblk!8 * 4: > ack HȎ message!16 R$0: message!8=quitref quit%= \ f p: z receive Ȏ message!16 %0: message!8<>quitref quit%=   :  error  !message=0 ( $(message+4)=$+" at line "+()+0 & ș"Wimp_ReportError",message,2,""  ș"Wimp_CloseDown"   : stuff(s$)  i%=1s$ # ș"OS_Byte",138,0,(s$,i%,1)) $ . 8: B w(s$) L!message=0 V$(message+4)=s$+0 `7ș"Wimp_ReportError",message,%10111,"WARNING" ,r% jr%=2 ș"Wimp_CloseDown": t "+@@@ 00PBASIC -quit @00009000,0000996Cp l  > !RunImage2   setup ( finalise 2 <: F setup PZ%=2 Z init dadjust_directory ni%=(path$+".!Config") xt$=#i% : Copyright t$=#i% : Version t$=#i% : blank line t$=#i% : descriptor )ar$=#i%: application root directory t$=#i% : descriptor (as$=#i%: application start command t$=#i% : descriptor page_size=8 adjust_modules page_size=8 tidy_modules  : init C% 2048 %ș"OS_UpdateMEMC",0,0 page_size page_size=page_size &C Ȏ page_size " 4: page_size=8 , 8: page_size=16 612: page_size=32 @ J P%=C% T ^: hadjust_directory r buff%,b% | buff% 256 5ș"OS_ReadVarVal","Obey$Dir",buff%,255,0,3 ,,b% buff%?b%=13:path$=$buff% b%=path$,".") root$=path$,b%)+"$" *("Set AppRoot$Dir "+path$,path$-8))  : adjust_modules  mn%,in%,z%,cont%,c$ "mn%=0:in%=0:z%=0:cont%=:c$=""  ȕ cont% 2 ș"XOS_Module",12,mn%,in% ,mn%,in%,p%,w%;f%  cont%=((f% 1)=0)  (w%<>0)  x% 8  !x%=z%:z%=x%:x%!4=p% & 0 : ȕ z%<>0 D s%=z%!4 N s%+=s%!16 X n$="" b ȕ ?s%<>0 l n$+=?s% v s%+=1  ! okay_to_kill(n$) kill(n$)  z%=!z%   : ݤokay_to_kill(n$)  i%,f%,m$ i%=(path$+".!Modules") f%= ȕ #i% (f%)  m$=#i%  m$=n$ f%=   #i% =f%  : *kill(n$) 4 p%,i%,text,code > p%=P% Hi%=0 Z% Z% R P%=p% \ [ OPT i% f B code p .text z EQUS n$+0  ALIGN  .code  MOV R0, #4  ADR R1, text " SWI "XOS_Module" ]   : tidy_modules  [ OPT Z%  MOV R0, #8 " SWI "XOS_Module" ]  : $finalise . i%,t$ 8command("%DIR "+root$) Bcommand("%DIR "+ar$) Lexit(as$) V `: jcommand(n$) t p%,i%,text,code ~ p%=P% i%=0 Z% Z%  P%=p%  [ OPT i%  B code  .text  EQUS n$+(13)  ALIGN  .code  ADR R0, text  SWI "XOS_CLI" ]    : exit(s$)  i%,p% ( p%=P% 2i%=0 Z% Z% < P%=p% F [ OPT i% P! ADR R0, command Z SWI "XOS_CLI" d .command n EQUS s$+0 x]  s$="GO "+~(C%)+12+13  i%=1s$ # ș"OS_Byte",138,0,(s$,i%,1))  Ș  (LMemAlloc MemAlloc util 0.11 (06 Dec 1988)esiSystemSizeeD\RMASize$<ScreenSizeB SpriteSizefFontSizeDMFgRAMFSSize_hBRMAFreelCSpriteFreeup]FontFree tho @-+(*SystemSize allows you to set the system heap size in Kbytes. If it is not possible to obtain this amount of memory, the optional * command will be executed. Syntax: *SystemSize [<*command>]e @-**RMASize allows you to set the RMA size in Kbytes. If it is not possible to obtain this amount of memory, the optional * command will be executed. Syntax: *RMASize [<*command>]@-.*ScreenSize allows you to set the screen memory size in Kbytes. If it is not possible to obtain this amount of memory, the optional * command will be executed. Syntax: *ScreenSize [<*command>]@-*n*SpriteSize allows you to set the system sprite size in Kbytes. If it is not possible to obtain this amount of memory, the optional * command will be executed. Syntax: *SpriteSize [<*command>]@-+6L*FontSize allows you to set the font cache size in Kbytes. If it is not possible to obtain this amount of memory, the optional * command will be executed. Syntax: *FontSize [<*command>] ge@-**RAMFSSize allows you to set the RAM disc size in Kbytes. If it is not possible to obtain this amount of memory, the optional * command will be executed. Syntax: *RAMFSSize [<*command>]fre@-*-QJ -\ *RMAFree allows you to set the free space in the RMA in Kbytes. If it is not possible to do this, the optional * command will be executed. Syntax: *RMAFree [<*command>]on@-*-. BQJ -\ *SpriteFree allows you to set the free space in the system sprite area in Kbytes. If it is not possible to do this, the optional * command will be executed. Syntax: *SpriteFree [<*command>] @-+@- BQJ -\ H*FontFree allows you to set the free space in the font cache in Kbytes. If it is not possible to do this, the optional * command will be executed. Syntax: *FontFree [<*command>]a@-!%P P P PP P P P @-\ @a@-*@q@-0 Using the PC Emulator under RISC OS This directory contains the components necessary to make existing copies of the Acorn PC Emulator (AKA42) operate under RISC OS. The new start-up sequence employs a memory optimisation technique designed to free the maximum amount of RAM on 1Mb systems. As a result, the application will not start if there is unsaved data in the Desktop or in the RAM Filing System. Note that there is no mechanism for returning to the RISC OS environment once the PC Emulator has been entered - you must reset the machine at the end of each session. 1. Floppy disc users Create a new, RISC OS PC Emulator disc by carrying out the steps below: a. Format a new floppy disc and use to make a backup copy of your PC Emulator disc. Name the backup NewPCEm. b. Copy the !PC application and the !Boot file from the Support Disc to the root directory of disc NewPCEm. To use the PC Emulator, insert the new disc into drive 0 and either: auto-boot the disc by pressing SHIFT+BREAK or: click on the floppy disc icon and, when the directory viewer appears, double click on the !PC icon. As under Arthur 1.2 you may also type: PC.Emulate at the Supervisor Prompt (*) if you wish to run the PC Emulator without any memory optimisation. In each case, insert your original MS-DOS boot disc when prompted to do so. 2. Hard disc users a. If you have not already installed the PC Emulator on your hard disc, do so now, following the instructions supplied in the original package. b. Copy the !PC application from the Support Disc to the desired position in your hard disc directory heirarchy. To use the PC Emulator, click on the hard disc icon, bring up the appropriate directory viewer and double click on the !PC icon. As with floppy disc, you may also start the PC emulator without memory optimisation by typing: PC.Emulate at the Supervisor prompt (*). GENERAL INFORMATION The subdirectories in this branch of the Support Disc relate to the following Acorn / Acornsoft products: First Word Plus Logistix PC Emulator and the following 6502 Emulation products: View ViewSpell ViewSheet ViewStore In each case, it is important to read the instructions contained in file ReadMe in each directory; this file contains instructions for both floppy disc and hard disc users. In addition, you should note the following general points: 1. All references to files on the Support Disc relate to the directory you are currently viewing, except where explicitly stated. 2. It is assumed that all operations described for each product will be carried out using the facilities provided in the RISC OS Desktop - users with a particular preference can achieve the same results using the *COPY command. Regardless of the method chosen, it is suggested that system variable Copy$Options be set as follows: *SET Copy$Options A ~C ~D F ~L ~N ~P Q R ~S ~T ~V The command may be typed at the Supervisor prompt but, for convenience, the variable may be set by double clicking on file CopySetup in this directory. 3. New discs, where required, should be formatted in the new ADFS E format. 4. A copy of the hard disc formatting program HFORM is included in this directory. Hard disc owners should use this latest version in preference to any previous versions of HFORM. Instructions for using HFORM are included in the User Guide. AVP's Desktop Publishing package : PIXEL PERFECT Current version - 1.04 (Dec.88) Version 1.04 functions correctly under RISC_OS with no modification. To execute 1.04 click the left mouse button over the PixPerfect icon but be sure to exit using the 'Exit' option in the 'Desk' menu to restore CMOS RAM. Lesser versions than 1.04 need to be modified in the following manner : Click the middle mouse button on the Archimedes logo and select the 'Exit' option by clicking the left button of the mouse over the word 'Exit'. Type the word BASIC to the '*' prompt and then type : 10*EXEC :0.!BOOT SAVE ":0.PixPerfect" with the Pixel Perfect master disc in drive 0. The program will now execute from the RISC_OS Desktop environment by double clicking the left button of the mouse over the 'PixPerfect' icon. We strongly advise that you upgrade to 1.04 if you have not done so, a list of the extra features appears in the edit file 'Upgrade'. AVP's Desktop Publishing package : PIXEL PERFECT UPGRADE INFORMATION - Current Version : 1.04 (Dec.88) The following features have been added since version 1.01 was released : 1. Scolling option in 'View page' allows complete page to be viewed. 2. Mannesmann Tally printer dump. 3. Option to choose which drive to access for data. 4. Finer control over scrolling. 5. Option to enter CLI commands. 6. Greater control with importing text. 7. Current CMOS RAM settings saved to disc and set back on exit. 8. General improvements throughout the program. We advise that you take advantage of this FREE upgrade serice. Contact AVP : 02912 625439 EXT. 408 Cambridge Microsystems - Product Information Current Products MATRIX-3 - This is a very powerful package based on the spreadsheet concept. The package provides the usual facilities together with some more advanced facilities opening up a wide new range of possible applications. Firstly, Matrix-3 provides a three dimensional array of cells. All the cell range type of functions (e.g. SUM,MAX etc) can be used on three dimensional cell ranges. Similarly, the manipulative commands such as REPLICATE can also be used on three dimensional ranges of cells. The provision of three dimensions does simplify the modelling of all sorts of applications from simple accounting through statistical analysis to complex engineering. Secondly, the concept of the simple cell formula has been extended in to provide large cell programs using a simple language syntax. This facility enables very powerful data manipulation procedures to be quickly developed. The current version will operate under Risc OS (see ReadMe file in directory Matrix-3) and is available from the address shown below. The price is 109.25 (including VAT, post and packing). Future Products A new version of Matrix-3 is under development which will be fully compatible with the Risc OS Multi-tasking Wimp. As well as having a new 'desktop look' it will provide a number of new facilites. The new version will be fully compatible with files created with the current version and will be available at the same price. Users of the current version will be offered an upgrade (including a manual update) in return for their original issue disc and the sum of 20.00. Cambridge Microsystems intends to launch a range of Podule based Logic Analysers during 1989. The first version will an entry level product aimed at the education market. It will provide 16 channels with a 6MHz maximum sample rate. For further information on any of our products please contact Neil Johnson on 0223 66553 or write to: Cambridge Microsystems, 19 Panton Street, Cambridge. CB2 1HL IconSprites .!Sprites Set Alias$@RunType_D69 /.!Run -load %0 Set Alias$@RunType_D68 /.!Run -exec %0 Set Alias$@RunType_D67 /.!Run -config %0 Set File$Type_D69 "M3Spread" Set File$Type_D68 "M3Exec" Set File$Type_D67 "M3Conf" | > !Matrix3.!Run | | Task description for Matrix3 version 2.15 under Risc OS | RMEnsure FPEmulator 2.70 RMLoad System:Modules.FPEmulator RMEnsure FPEmulator 2.70 Error You need FPEmulator 2.70 or later | Set Matrix3$Dir Set Matrix3$Lib Wimpslot -min 300K Run ".!RunImage" %0 %1 0 file_d68,, wwwwwwwwwwwwwwwwwwwwwwww wwww wwww wwww wwww wwww wwww wwww wwww wwww wwwwwwww wwww wwwwwwwwwwwwwwwwwwwwwwwww!matrix3, ݪݪwwݭݪwwݪݪwwݭݭݪwwݭݪݭݪwwݭݭݪݪwwݭݭݪwwݭݭݪwwݭݪwwݭݪwwݭݪwwݭݪwwݭݪwwݭݪwwݭݪwwݭݪwwݭݪwsmall_d67 ,, wwwwwwwww      wwwwwwwwwsm!matrix3, ݭݭݭݭݭݪݪݭݭݭݭݭݭݭݭݭݭݭݭݭݭfile_d69,, wwwwwwwwwwwwwwwwwwwwwwww wwww wwww wwww wwww wwww wwww wwww wwww wwww wwww wwww wwww wwwwwwwwwwwwwwwwwwwwwwwwẁfile_d67,, wwwwwwwwwwwwwwwwwwwwwwww wwww wwww wwww wwww wwww wwww wwww wwww wwww wwwwwwww wwww wwwwwwwwwwwwwwwwwwwwwwwww̘small_d69 ,, wwwwwwwww      wwwwwwwwwsmall_d68 ,, wwwwwwwww      wwwwwwwww Using Matrix-3 under Risc OS By implementing the following procedure you can run your existing version of Matrix-3 from the Wimp. Matrix-3 will 'take over' the screen and operate in dedicated mode. By performing a Matrix-3 exit command you can return to the Wimp. What you need to do Copy the directory !Matrix3, with its contents, to a point in your filing system where you want to see Matrix-3 as an application. This can be on floppy, hard disc or Econet. You should also arrange for the directory !System to be present so that the FPEmulator is available for Matrix-3. The next stage is to copy the following Matrix-3 files from the directory Matrix3Lib in your existing structure, to the directory !Matrix3:- Logo M3Conf M3Help Mat3 Matrix3 The file Matrix3 should be renamed as !RunImage. The directory !Matrix3 will now behave as a standard application directory. If you double click SELECT on the !Matrix3 directory icon then Matrix-3 is loaded using the default configuration file M3Conf. The file !Sprites contains icons for three new file types which have been allocated to Matrix-3 as follows: Type D69 (M3Spread) - Spreadsheet file Type D68 (M3Exec) - Execute file Type D67 (M3Conf) - Configuration file If you assign these types to your Matrix-3 files you can double click on the file icon to load Matrix-3 and automatically action the file. e.g. Double click on a type 'D69' file 'abc' will load Matrix-3 containing the spreadsheet file 'abc'. Once loaded, Matrix-3 is operated normally, i.e. as under Arthur 1.2 AlphaBase RISCOS conversion Due to undocumented alterations in the way RISCOS operates, it is not possible to give a simple conversion routine. Registered users of Alphabase should contact us for further information. ECHO <22><&8C> WIMPSLOT -MIN 200K -MAX 200K SET ART$PATH DIR BASIC ART4 QUIT *WIMPSLOT -MIN 200K -MAX 200K *ART3   26::" at line ";: ș 26,0,0 A% B%=(A% %1100 ) >> 2 ( Ȏ B% 2 0 :pagesize%=4 < 1 :pagesize%=8 F 2 :pagesize%=16 P 3 :pagesize%=32 Z dș 6,161,16 A,B,B n (B %10000 )<>0 x Z%="!oldCMOS"  I%=0 255  A%=#Z%  ș 6,162,I%,A%  #Z%  *DELETE !oldCMOS  *SET art$path :0.!Artisan @# ".ART4" T ^ ensure hZ%="!oldCMOS" r I%=0 255 | ș 6,161,I% A%,A%,A%  #Z%,A%  #Z% B%=B %10000 ș 6,162,16,B% ș 6,161,134 A,A,font% ș 6,161,143 A,A,screen% ș 6,161,145 A,A,system% ș 6,161,146 A,A,rma% ș 6,161,147 A,A,sprite% font%=(font% 2)*pagesize% &screen%=screen%*pagesize% 0system%=system%*pagesize% :rma%=rma%*pagesize% Dsprite%=sprite%*pagesize% N screen%=0 X. pagesize% =8 screen%=80 screen%=160 b v*CONFIGURE LANGUAGE 0 1("CONFIGURE SCREENSIZE "+(160 pagesize%)) /("CONFIGURE SYSTEMSIZE "+(0 pagesize%)) ("CONFIGURE FONTSIZE 0") ("CONFIGURE RMASIZE 0") ("CONFIGURE DRIVE 0") A%=(--(95*1024))/1024 A%=A%-(160-screen%) A%=A%-(40-system%) A%=A%+sprite% A%=( A% pagesize%)  A%>63 A%=63 $("CONFIGURE SPRITESIZE "+(A%))  (-52)    ensure   *^ =67785 26::3,10)"Please ensure disc is NOT write protected and reboot disc": 4 *OPT 4 3 > *OPT 4 2 H 7** ?******** Artisan RISCOS conversion To convert your ARTISAN disc for use with RISCOS, Take the following steps using a backup copy of your ARTISAN disc. 1) Using the desktop, delete the files ART1 and ART3 from the ARTISAN disc 2) Copy the contents of this directory onto the ARTISAN disc. 3) Double click on the file UPGRADE on the ARTISAN disc. Your ARTISAN disc can now be run either by pressing as normal or in the standard RISCOS manner fron the desktop. If you wish to install ARTISAN on a hard disc, use the desktop to copy the directories ARTISAN and !Artisan. N.B When you run ARTISAN from the desktop, it is up to you to allocate the amount of sprite space required by using the task manager and adjusting the sliders. *DIR :0 *CDIR !Artisan *BASIC LOAD"Art5" 85HIMEM=PAGE+(150*1024):REM BBB 20140IFRES%=1 MODE12:OSCLI"FX4":OSCLI"FX200":QUIT:REM BBB 20150MODE12:OSCLI"FX4":P%=LOMEM:[:OPT 2:MOV R0,#&C8:MOV R1,#&03:MOV R2,#&00:SWI "XOS_Byte":MOV R0,#&03800000:LDR R1,[R0]:STR R1,[R1,-R1]:SWI "XOS_EnterOS":TEQP PC,#&FC000003:MOV PC,#0:]:CALLLOMEM SAVE"Art5" LOAD"Art4" RENUMBER 105 END=(HIMEM-(32*1024)):REM BBB 2950 REM BBB 2960 W%=PAGE+(150*1024):!W%=&6880:REM BBB SAVE"Art4" *RENAME !Run !Artisan.!Run *RENAME !Palette !Artisan.!palette *RENAME Art4 !Artisan.Art4 *RENAME Art5 !Artisan.Art5 *RENAME Art6 !Artisan.Art6 *RENAME Articons !Artisan.Articons *RENAME CursorDefs !Artisan.CursorDefs QUIT QUIT ECHO <22><&8C> WIMPSLOT -MIN 200K -MAX 200K RMENSURE FASTLOADSAVE 1.00 RMLOAD .FASTRM SET ALIAS$SCREENLOAD FASTLOAD %0 SET ALIAS$SCREENSAVE FASTSAVE %0 RMENSURE DISPLAY 1.00 RMLOAD .DISPLAY DIR URD @ BASIC .DEMOCODE Artisan Support Demo disc RISCOS conversion To create a RISCOS compatible version of the ARTISAN SUPPORT disc demo, Take the following steps using a backup copy of your SUPPORT disc. 1) Create a demo disc by running INSTALL on the Support disc 2) Copy the contents of this directory onto this Demo disc. 3) Double click on the file UPGRADE on the Demo disc. Your Demo disc can now be run either by pressing as normal or in the standard RISCOS manner from the desktop. If you wish to install the SUPPORT disc on a hard disc, use the desktop to copy the directory !Support DIR :0 QUIT CDIR !Demo RENAME !Run !Demo.!Run DELETE !BOOT RENAME CRUSADE !Demo.Crusade RENAME DATA1 !Demo.Data1 RENAME DATA2 !Demo.Data2 RENAME Dem3 !Boot SETTYPE DEMO FFE RENAME DEMO !Demo.Demo RENAME DEMOCODE !Demo.DemoCode RENAME DISPLAY !Demo.Display RENAME EAGLE !Demo.Eagle RENAME ESCHER !Demo.Escher RENAME ESCHER1 !Demo.Escher1 RENAME FASTRM !Demo.FastRM BASIC LOAD "!BOOT" 195*DIR !Demo 410*CONFIGURE DRIVE 0 SAVE "!Boot" LOAD "!Demo.DemoCode" 5ONERROR QUIT 3000QUIT SAVE "!Demo.DemoCode" QUIT QUIT K N%-=1 L E%= =E%-(24*1024) K N%-=1 L E%= =E%-(24*1024) A HARD% P%=:[:OPT 2:MOV R0,#&C8:MOV R1,#&03:MOV R2,#&00:SWI "XOS_Byte":MOV R0,#&03800000:LDR R1,[R0]:STR R1,[R1,-R1]:SWI "XOS_EnterOS":TEQP PC,#&FC000003:MOV PC,#0:]:֒ 12:Ș ECHO <22><&8C> WIMPSLOT -MIN 640K DIR BASIC Graph5b *  26::" at line ";: ș 26,0,0 C% (B%=(C% %1100 ) >> 2 2 Ȏ B% < 0 :pagesize%=4 F 1 :pagesize%=8 P 2 :pagesize%=16 Z 3 :pagesize%=32 d nș 6,161,16 A,B,B x(B %10000 )<>0  Z%="!oldCMOS"  I%=0 255  B%=#Z%  ș 6,162,I%,B%  #Z%  *DELETE !oldCMOS  *DIR !Gwriter *URD @  "GRAPH5B"  ensure Z%="!oldCMOS"  I%=0 255  ș 6,161,I% A%,A%,A%  #Z%,A% " ,#Z% 6 erflag%= @B%=B %10000 Jș 6,162,16,B% Tș 6,161,134 A,A,font% ^ș 6,161,143 A,A,screen% hș 6,161,145 A,A,system% rș 6,161,146 A,A,rma% |ș 6,161,147 A,A,sprite% ș 6,161,144 A,A,ramfs% font%=(font% 2)*pagesize% screen%=screen%*pagesize% system%=system%*pagesize% rma%=rma%*pagesize% sprite%=sprite%*pagesize% ramfs%=ramfs%*pagesize%  screen%=0 - pagesize% =8 screen%=80 screen%=160  A%=(-)/1024 A%=A%-(160-screen%) A%=A%+system% Q%< 12A%=A%+rma% A%=A%+ramfs%  A%<208 &>26,12:13,15)"Please reduce sprite size and reboot disc" 0*CONFIGURE NOBOOT : D N*CONFIGURE LANGUAGE 0 X1("CONFIGURE SCREENSIZE "+(160 pagesize%)) b*CONFIGURE SYSTEMSIZE 0 l*CONFIGURE FONTSIZE 0 v*CONFIGURE RMASIZE 0 *CONFIGURE RAMFSSIZE 0 *CONFIGURE DRIVE 0  (-52)   ensure  ^ =67785 26::3,10)"Please ensure disc is NOT write protected and reboot disc":  *OPT 4 3  *OPT 4 2  7** ?******** QUIT  *BASIC VDU28,0,0,0,0 SYS "XOS_Module",4,"Fontmanager" SYS "XOS_Module",4,"Debugger" SYS "XOS_Module",4,"Stringlib" SYS "XOS_Module",4,"Soundscheduler" SYS "XOS_Module",4,"Percussion" SYS "XOS_Module",4,"ARMBasicEditor" SYS "XOS_Module",4,"SystemDevices" SYS "XOS_Module",4,"Econet" SYS "XOS_Module",4,"Netfs" SYS "XOS_Module",4,"Netprint" SYS "XOS_Module",4,"Podule" QUIT RMLOAD ArcBuffer *WIMPSLOT -MIN 500k *gra3 Graphic Writer RISCOS conversion To convert your Graphic Writer disc for use with RISCOS, Take the following steps using a backup copy of your Graphic Writer disc. If you have an early copy of Graphic Writer before 1.05, This sequence may not work. Contact us for further information. 1) Using the desktop, delete the files Graph1 and gra3 from the Graphic Writer disc 2) Copy the contents of this directory onto the Graphic Writer disc. 3) Double click on the file UPGRADE on the Graphic Writer disc. Your Graphic Writer disc can now be run either by pressing as normal or in the standard RISCOS manner fron the desktop. If you wish to install Graphic Writer on a hard disc, use the desktop to copy the directory !GWriter N.B If you run Graphic Writer from the desktop, It is your responsibility to allocate as much application workspace as you require. You should do this in the normal way using the task manager. *DIR :0 *BASIC LOAD"GRAPH5B" 75 N%-=1 76 E%=HIMEM 215END=E%-(24*1024) SAVE"Graph5b" LOAD"Graph6b" 16820IF HARD% P%=LOMEM:[:OPT 2:MOV R0,#&C8:MOV R1,#&03:MOV R2,#&00:SWI "XOS_Byte":MOV R0,#&03800000:LDR R1,[R0]:STR R1,[R1,-R1]:SWI "XOS_EnterOS":TEQP PC,#&FC000003:MOV PC,#0:]:CALLLOMEM ELSE MODE12:QUIT SAVE"Graph6b" *CDIR !Gwriter *ACCESS * WR *RENAME X!Boot !GWriter.!Boot *RENAME !Run !GWriter.!Run *RENAME !Default !GWriter.!Default *RENAME !Default !GWriter.!Default *RENAME !Default !GWriter.!Default *RENAME Blankdoc !GWriter.Blankdoc *RENAME Graph5b !GWriter.Graph5b *RENAME Graph6b !GWriter.Graph6b *RENAME GWI2 !GWriter.GWI2 *RENAME NewModeCd4 !GWriter.NewModeCd4 *RENAME NewRelCodb !GWriter.NewRelCodb *RENAME NOEMBEDS !GWriter.NOEMBEDS *RENAME NOEMBEDS !GWriter.NOEMBEDS *RENAME NOEMBEDS !GWriter.NOEMBEDS *RENAME TREES !GWriter.TREES *RENAME WESTERN !GWriter.WESTERN QUIT QUIT SET File$Type_400 GwText SET File$Type_401 GwGraph SET File$Type_402 GwMaster SET File$Type_403 GwVdu SET File$Type_404 GwMulti Using Clares products under RISC OS The directories in this section of the Support disc relate to Clares products for Archimedes computer systems. With the exception of Alphabase, all products can be upgraded so that they can be used from the RISC OS Desktop and each directory contains a ReadMe file giving the necessary instructions. Whilst we have made every effort ensure that the instructions are accurate, we cannot guarantee that they will function for every version of each package. Users who experience any difficulty should contact us direct - where appropriate, we will provide an upgrade to the latest version of a product for a small handling charge. Clares Micro Supplies 98 Middlewich Road Northwich Cheshire CW9 7DA Tel: 0606 48511 ICONSPRITES .!Sprites SET FILE$TYPE_DE2 ProArt SET FILE$TYPE_ECF ECFData SET FILE$TYPE_DDA ColSet SET FILE$TYPE_DD9 MagicPen SET FILE$TYPE_DD8 ProFont SET FILE$TYPE_DD7 Bezier SET RUNFILE "" SET BLOGGS SET ALIAS$@RUNTYPE_DE2 SET RUNFILE <37>0<13>RUN .!RUN|WimpSlot -min 0 -max 0 Set Art$Prefix SET Art$Resource .Resources RMENSURE ProArtisan 1.00 RMLOAD .ProArtSLDR RMENSURE Bezier 1.00 RMLOAD .Bezrm ECHO <22><&8F> Wimpslot -min 432K OBEY .CONFIGSYS  > :ProArtisan.Pro3  26::" at line ";: ș 26,0,0 A% (B%=(A% %1100 ) >> 2 2 Ȏ B% < 0 :pagesize%=4 F 1 :pagesize%=8 P 2 :pagesize%=16 Z 3 :pagesize%=32 d nș 6,161,16 A,B,B x (B %10000 )<>0 ș 6,162,16,B%  Z%="!oldCMOS"  I%=0 255  C%=#Z%  ș 6,162,I%,C%  #Z%  *DELETE !oldCMOS  *SET runfile "" 3 *SET Art$Prefix adfs::ProArtisan.$.!ProArt = *SET Art$Resource adfs::ProArtisan.$.!ProArt.Resources f *IF os$="1.20" THEN EXEC :ProArtisan.!ProArt.CONFIGSYS ELSE OBEY :ProArtisan.!ProArt.CONFIGSYS    ensure Z%="!oldCMOS"  I%=0 255 " ș 6,161,I% A%,A%,A% , #Z%,A% 6 @#Z% JB%=B %10000 Tș 6,162,16,B% ^ș 6,161,134 A,A,font% hș 6,161,143 A,A,screen% rș 6,161,145 A,A,system% |ș 6,161,146 A,A,rma% ș 6,161,147 A,A,sprite% font%=(font% 2)*pagesize% screen%=screen%*pagesize% system%=system%*pagesize% rma%=rma%*pagesize% sprite%=sprite%*pagesize%  screen%=0 . pagesize% =8 screen%=80 screen%=160  *CONFIGURE LANGUAGE 0 1("CONFIGURE SCREENSIZE "+(320 pagesize%)) ("CONFIGURE FONTSIZE 0") ("CONFIGURE RMASIZE 0") ("CONFIGURE DRIVE 0") ("CONFIGURE SPRITESIZE 0") "("CONFIGURE FILESYSTEM ADFS") &A%=(--(180*1024))/1024 0A%=A%-(320-screen%) :A%=A%+system% DA%=A% +sprite% NA%=( A% pagesize%) X("CONFIGURE SYSTEMSIZE 0") b (-52) l v ensure  ^ =67785 26::3,10)"Please ensure disc is NOT write protected and reboot disc":  *OPT 4 3  *OPT 4 2  7** ?******** > ReadMe ProArtisan RISCOS conversion ProArtisan is already RISCOS compatible. If you have version 1.05, you can gain the extra feature of version 1.06 by performing the following actions. 1) Using the desktop, delete the files $.Pro3 !ProArt.!Run and !ProArt.!Boot on the ProArtisan disc 2) Copy the files !Run and !Boot in this directory to directory !ProArt on the ProArtisan disc and UPGRADE and Pro3 into the $ directory. 3) Double click on the file UPGRADE on the ProArtisan disc. 4) Delete UPGRADE Clicking on a ProArtisan picture file will now cause ProArtisan to be run with the picture already loaded. N.B If you run ProArtisan from the desktop, It is your responsibility to allocate as much application workspace as you require. You should do this in the normal way using the task manager. *DIR :0 *BASIC LOAD"!PROART.PRO5" 831*IF runfile <> "" THEN PROLOAD 832*SET runfile "" 25756*FX200 32640PROCA(16,-128,364,-80,&301D,0,0,"Version 1.06") SAVE"!ProArt.Pro5" QUIT QUIT ECHO <22><&8C> WIMPSLOT -MIN 200K -MAX 200K DIR URD @ OBEY LOADER > ReadMe Artisan Support disc RISCOS conversion To convert your ARTISAN SUPPORT disc for use with RISCOS, Take the following steps using a backup copy of your SUPPORT disc. 1) Using the desktop, delete the files SUP1 and SUP3 from the SUPPORT disc 2) Copy the contents of this directory onto the SUPPORT disc. 3) Double click on the file UPGRADE on the SUPPORT disc. 4) If you do not have our ArcBuffer, use ArcEdit to remove the reference to 'Buffer' from the file !Support.Loader ( or buy ArcBuffer!! ) Your SUPPORT disc can now be run either by pressing as normal or in the standard RISCOS manner fron the desktop. If you wish to install the SUPPORT disc on a hard disc,use the desktop to copy the directory !Support QUIT SET ALIAS$SCREENLOAD FASTLOAD %0 SET ALIAS$SCREENSAVE FASTSAVE %0 RMLOAD !Support.Buffer RMLOAD !Support.FASTRM RMLOAD !Support.IntFix *sup3   26::" at line ";: ș 26,0,0 C% (B%=(C% %1100 ) >> 2 2 Ȏ B% < 0 :pagesize%=4 F 1 :pagesize%=8 P 2 :pagesize%=16 Z 3 :pagesize%=32 d nș 6,161,16 A,B,B x(B %10000 )<>0  Z%="!oldCMOS"  I%=0 255  B%=#Z%  ș 6,162,I%,B%  #Z%  *DELETE !oldCMOS  *DIR !Support  *URD @  "Support"  ensure Z%="!oldCMOS"  I%=0 255  ș 6,161,I% A%,A%,A%  #Z%,A%  #Z% " erflag%= ,B%=B %10000 6ș 6,162,16,B% @ș 6,161,134 A,A,font% Jș 6,161,143 A,A,screen% Tș 6,161,145 A,A,system% ^ș 6,161,146 A,A,rma% hș 6,161,147 A,A,sprite% rș 6,161,144 A,A,ramfs% |sprite%=sprite%*pagesize% *CONFIGURE LANGUAGE 0 1("CONFIGURE SCREENSIZE "+(160 pagesize%)) *CONFIGURE DRIVE 0 1("CONFIGURE SPRITESIZE "+(32 pagesize%))  (-52)   ensure  ^ =67785 26::3,10)"Please ensure disc is NOT write protected and reboot disc":  *OPT 4 3  *OPT 4 2  7** ?******** *DIR :0 *NAMEDISC 0 Support BASIC LOAD"SUPPORT" 106END=HIMEM-(32*1024) 7590IF larE% THEN OSCLI"FX200":MODE12:QUIT ELSE P%=LOMEM:[:OPT 2:MOV R0,#&C8:MOV R1,#&03:MOV R2,#&00:SWI "XOS_Byte":MOV R0,#&03800000:LDR R1,[R0]:STR R1,[R1,-R1]:SWI "XOS_EnterOS":TEQP PC,#&FC000003:MOV PC,#0:]:CALLLOMEM SAVE QUIT CDIR !Support ACCESS * WR RENAME CRUSADE !Support.CRUSADE RENAME DATA1 !Support.DATA1 RENAME DATA2 !Support.DATA2 RENAME Dem2 !Support.Dem2 RENAME Dem3 !Support.Dem3 RENAME DEMO !Support.Demo RENAME DISPLAY !Support.Display RENAME EAGLE !Support.Eagle RENAME ESCHER !Support.Escher RENAME ESCHER1 !Support.Escher1 RENAME FASTRM !Support.FastRM RENAME Fonts !Support.Fonts RENAME intfix !Support.Intfix RENAME LOADER !Support.Loader RENAME OBJSUPPORT !Support.ObjSupport RENAME PRINTPAT !Support.PrintPat RENAME SUPICONS !Support.Supicons RENAME SUPPORT !Support.Support RENAME !RUN !Support.!Run QUIT QUIT PipeDream PipeDream provides powerful word processing, spreadsheet and database facilities in a simple, easily learnt manner. PipeDream is available for the Acorn Archimedes, the IBM PC and compatibles and is built into the Z88 computer. PipeDream is also file compatible with View Professional on the BBC Computer. Features load file, insert file save file, save selected columns or rows load/save LOTUS 1-2-3 files 536,870,912 columns by 536,870,912 rows sort in ascending/descending order, alphabetically, numerically, chronologically search and replace with wild cards linking files to pass numbers between documents user defined colour displays foreign character editing and printing copy, move, delete blocks word count save cursor position, go to old cursor position redefine keys swap case insert/delete column/row page breaks on screen multi-file documents print mail-shots printer drivers, microspacing, foreign characters highlights load/save files directly to Z88 filing system on-screen Bold, underlined and italics on-screen superscripts and subscripts Display formats leading and trailing characters left alignment centre alignment right alignment /left/centre/right/ English/American date formats fixed rows and columns decimal places, minus/brackets SpellCheck PipeDream SpellCheck is the spelling checker for use with PipeDream. SpellCheck links in with PipeDream so that all features are available from an extra PipeDream menu. Automatic checking as you are typing can be switched and off. Complete documents can be checked at any time. Other features include: 93,000 word main dictionary checking at 40,000 words per minute user dictionaries anagrams browse facility with wildcards dump (spool) words with wildcards merge word list with user dictionary If you would like more complete information please phone us on 0954 211472 or write to us at: Colton Software Broadway House 149-151 St Neots Road Cambridge CB3 7QJ %$.!Pipedream | > !PipeDream.!Boot Set PipeDream$Dir Set Alias$@RunType_DDE Run .!Run %%*0 Set File$Type_DDE PDream IconSprites .!Sprites | > !PipeDream.!Run Set PipeDream$Dir WimpSlot -min 450k RMReInit InternationalKeyboard RMKill InternationalKeyboard RMEnsure FPEmulator 2.60 RMLoad .FPEmulator Set Alias$@RunType_DDE Run .!Run %%*0 Set File$Type_DDE PDream IconSprites .!Sprites Load $.Library.pd 8000 Echo <26> Pointer 0 Go 8000 ; %*0 d!pipedream, file_dde,, wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww Using PipeDream under RISC OS The contents of this directory can be used to create a version of PipeDream which can be executed from the RISC OS Desktop. 1. Floppy disc users a. Format a new floppy disc and make a backup copy of your current PipeDream working disc. Name the new disc NewPd. b. Copy the !PipeDream application from the Support disc to the root directory of disc NewPd. c. Copy the Floating Point Emulator module from directory !System.Modules on Applications disc 1 into directory !PipeDream on disc NewPd. To use PipeDream from the Desktop, simply insert disc NewPd into drive 0 or drive 1, click on the corresponding disc drive icon and, when the directory viewer appears, double click on the !PipeDream icon. You may also auto-boot disc NewPd provided that it is loaded in drive 0. 2. Hard disc users a. If you have not already installed PipeDream onto your hard disc, do so now, using the instructions supplied with the original package. b. Copy the !PipeDream application from the Support disc to the desired location in the hard disc directory hierarchy. Copy the Floating Point Emulator module into the !PipeDream application as described in paragraph c. above. To use PipeDream from the Desktop, open the appropriate hard disc directory viewer and double click on the !PipeDream icon. Using PipeDream under RISC OS The contents of this directory can be used to create a version of PipeDream which can be executed from the RISC OS Desktop. 1. Floppy disc users a. Format a new floppy disc and make a backup copy of your current PipeDream working disc. Name the new disc NewPd. b. Copy the !PipeDream application from the Support disc to the root directory of disc NewPd. c. Copy the Floating Point Emulator module from directory !System.Modules on Applications disc 1 into directory !PipeDream on disc NewPd. To use PipeDream from the Desktop, simply insert disc NewPd into drive 0 or drive 1, click on the corresponding disc drive icon and, when the directory viewer appears, double click on the !PipeDream icon. You may also auto-boot disc NewPd provided that it is loaded in drive 0. 2. Hard disc users a. If you have not already installed PipeDream onto your hard disc, do so now, using the instructions supplied with the original package. b. Copy the !PipeDream application from the Support disc to the desired location in the hard disc directory hierarchy. Copy the Floating Point Emulator module into the !PipeDream application as described in paragraph c. above. To use PipeDream from the Desktop, open the appropriate hard disc directory viewer and double click on the !PipeDream icon. Dabs Press : General Information All Dabs Press Archimedes products have been tested for compatibility with RISC OS, as shown in the table below: Product: Runs from Desktop Runs from SHIFT+BREAK Arcendium Yes Yes Alerion No No Instigator Yes Yes Archimedes Basic Compiler Yes No Assembly Language Progs Disc No Yes The Alerion Game has copy protection incompatible with RISC OS and a modified version will is planned to be available from March 1989. Queries and Dabs Press Technical support to 061 766 8423. SET FC$Dir RUN .!RunImage >:4.$.!FC.!RunImage *EXEC $.LIBRARY.FARMCASH :RISC-OS Farmcash: FLOPPY USERS: Format a new blank disc and create the directory !FC Use the procedures as outlined in your manual. Copy the contents of this directory into the new directory on your new disc then press the function key 12 For single drive users enter COPY :0.$.Farmcash.* :0.$.!FC.* PQ and follow the instructions on the screen, your destination disc being the newly formatted disc. Then place your working disc in the drive and enter COPY :0.$.* :0.!FC.* RQP the destination disc being the newly formatted disc. For twin drive users, place your newly formatted disc in drive 1 and copy the contents of this directory to :1.!FC Place your working Farmcash disc in drive 0 and the newly formatted disc in drive 0 and copy everything to :1.!FC HARD DISC USERS: Create a directory !FC on the hard disc. Copy the contents of this directory into the new directory. SET FF$Dir RUN .!RunImage >:4.$.!FF.!RunImage *EXEC $.LIBRARY.FieldFile :RISC-OS Fieldfile: FLOPPY USERS: Format a new blank disc and create the directory !FF Use the procedures as outlined in your manual. Copy the contents of this directory into the new directory on your new disc then press the function key 12 For single drive users enter COPY :0.$.Fieldfile.* :0.$.!FF.* PQ and follow the instructions on the screen, your destination disc being the newly formatted disc. Then place your working disc in the drive and enter COPY :0.$.* :0.!FF.* RQP the destination disc being the newly formatted disc. For twin drive users, place your newly formatted disc in drive 1 and copy the contents of this directory to :1.!FF Place your working Farmcash disc in drive 0 and the newly formatted disc in drive 0 and copy everything to :1.!FF HARD DISC USERS: Create a directory !FF on the hard disc. Copy the contents of this directory into the new directory. SET FF$Dir RUN .!RunImage >:4.$.!FF.!RunImage *EXEC $.LIBRARY.FieldFile :RISC-OS Farmplanner: FLOPPY USERS: Format a new blank disc and create the directory !FP Use the procedures as outlined in your manual. Copy the contents of this directory into the new directory on your new disc then press the function key 12 For single drive users enter COPY :0.$.Fplanner.* :0.$.!FP.* PQ and follow the instructions on the screen, your destination disc being the newly formatted disc. Then place your working disc in the drive and enter COPY :0.$.* :0.!FP.* RQP the destination disc being the newly formatted disc. For twin drive users, place your newly formatted disc in drive 1 and copy the contents of this directory to :1.!FP Place your working Farmplanner disc in drive 0 and the newly formatted disc in drive 0 and copy everything to :1.!FP HARD DISC USERS: Create a directory !FP on the hard disc. Copy the contents of this directory into the new directory. SET Milkman$Dir WimpSlot -min 160k SET MM$DT SET MM$PROGS IconSprites .!Sprites Run .!RunImage  G%=-2 S%=0 (Z%=0 2Ț"MMPROCS" 7*DIR &.!MILKMAN LIBRARY.MILKLOGO"   Dsprite2,, pwwwwwwwwwwwwwwww@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dt@Dtwwwwwwwwwwwwwwww!milkman,, wwwwwwwwwwwwwwwwww"!"!"!!"!sm!milkman ,, ~pwwww :RISC-OS Milkman: FLOPPY USERS: Format a new blank disc and create the directory !Milkman Use the procedures as outlined in your manual. Copy the contents of this directory into the new directory on your new disc then press the function key 12 For single drive users enter COPY :0.$.Milkman.* :0.$.!Milkman.* PQ and follow the instructions on the screen, your destination disc being the newly formatted disc. Then place your working disc in the drive and enter COPY :0.$.* :0.!Milkman.* RQP the destination disc being the newly formatted disc. For twin drive users, place your newly formatted disc in drive 1 and copy the contents of this directory to :1.!Milkman Place your working Milkman disc in drive 0 and the newly formatted disc in drive 0 and copy everything to :1.!Milkman HARD DISC USERS: Create a directory !Milkman on the hard disc. Copy the contents of this directory into the new directory. DIXON & DIXON Farming Programs: Farmcash An accounts program specifically for farmers. With simple entry of transactions, stock control, audit trail, cash flow, enterprises. Data can be passed to Fieldfile and Farmplanner. Fieldfile A data base for fields enabling complete maintainance of fields and the monitoring of crop performances with commodity control. Can be linked with Farmcash and Farmplanner. Farmplanner For complete business planning up to three years ahead. Instant recalculations based on changing circumstances. Budgets, Gross margins, capital, labour Can be linked with Farmcash and Fieldfile. Milkman A complete program for profesional milk roundsmen. Features include standing orders and variations. Roundsbook and daily loads, individual pricing, Sorting and printing on delivery or collection Detailed or summary receipts with personal messages and display of promotional stock. Weave Design Programs The Weave Design Programs link to the Harris NC LOOM. In cloth design you find the ideal application of the principles of CAD/CAM. The production of a textile involves the selection and control of thousands of yarns to produce a fabric of particular appearance, strength and 'feel'. The program can analyse the structure of a cloth and calculate how the loom should be set up to produce it. The plans can be edited or entered conventionally and communicated to the loom. Colour pictures of cloth simulation at various scales can be viewed and printed out along with documentation. Weave sampling can be monitored and designs recorded by the system. The textile designer and student are given full rein to develop their ideas with ease through Archimedes graphics. Operates unchanged under RISC OS; available from HARRIS LOOMS division of Emmerich (Berlon) Ltd, Wotton Road, Ashford, Kent TN23 2JY. Tel: (0233) 622684 Fax: (0233) 45801 Mbx: LNK 94012612. >!Run ! Run file for Wimpy Invaders  (C)1988 GEM Electronics ( code &2090 2)"LOAD $.!WimpyInv.!RunImage "+~code 3!(code+&DA0)=&EA00002E 4?(code+&1FBA)="Q" 5?(code+&1FBB)="U" 6?(code+&1FBC)="I" 7?(code+&1FBD)="T" 8?(code+&1FBE)="!" < code+&7E0 sm!wimpyinv ,  Oe̙Oe̜ !wimpyinv, wwwwwwwwwwwwwwwwwwww{wwwwwwwwwxwwww{ww{ww{xwTvww뾈xwTvxwTvw̌wwTv̈xwGTfww̈wwwwwww{wwwwwzwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{wwwwwwwwwwwwwwwTvwwwwwwwwwwwwwwwTvwwwwww Desktop Games Unfortunately "Desktop Games" will not work under RISC OS as it relies on the original, Arthur 1.2 Desktop. We are currently considering writing an enhanced, RISC OS version, which will be available at a discount to existing owners. As a consolation, however, the hidden game - Wimpy Invaders - will not only work but will also return you to the RISC OS desktop! To install Wimpy Invaders, format a new clean disc, and drag the !WimpyInv icon onto it. Now type: *LOAD $.Desktop.Sprites.PegSprites 9000 from your Desktop Games disc *SAVE $.!WimpyInv.!RunImage 9000 +2090 from the Support disc The game should now be installed. Double click on the "!WimpyInv" icon to run the game.GEM ELECTRONICS Word Up Word Down A new concept in word games, Word Up Word Down has game play similar to that other famous word game, but is played on a 3-dimensional board game, where letter tiles can be stacked on top of each other, as well as in the familiar crossword fashion. To add another strategy element to the game, the game board contains base squares of different strengths - if the stack of letters is greater than the strength of the base square they are on, the stack will collapse. The program also features digitised sound and speech, a 33000+ word dictionary, 1 to 6 players with computer play, rotating 3-dimensional board plus many user-definable options. There is also a hidden game! Word Up Word Down functions under RISC OS without modification, both by means of auto-boot and from the Desktop. Star Trader A strategic space adventure of epic proportions. It is your mission to search the universe for the nine segments of a deactivation code to save your star system. These segments are scattered on planets throughout the universe, with your objective being to trade between neighbouring star systems in order to fund your mission, whilst still being wary of the enemy convoys frequenting certain areas of the universe. There are 800 unique planets to search, spanning 112 star systems. The program also features digitised speech and sound, 20 different types of spacecraft, real-time combat and docking sequences and realistic trading with market fluctuations. Star Trader is NOT for the arcade button-blasting freak. Early versions of Star Trader will occasionally produce an error during execution under RISC OS on a 1Mb machine. DeskTop Games Current versions of DeskTop Games will not operate under RISC OS, although a RISC OS version is being considered. Directory Desk_Games contains instructions for extracting the 'hidden game' from your original DeskTop Games disc. Word Up Word Down and Star Trader retail for 17.95 inclusive. For further information please write to: GEM Electronics, 17, Tandragee Road, Portadown, Craigavon, United Kingdom. BT62 3BQINTELLIGENT INTERFACES EXPANSION CARDS The Intelligent Interfaces range of IEEE488 Interface, 16 Bit Parallel I/O, Dual RS423 Serial and 12 Bit Analogue I/O Expansion Cards for the Archimedes Computer System can be used with either the Arthur 1.2 or RISC OS Operating Systems. No modifications or upgrades are required. IEEE488 INTERFACE An Archimedes Computer System fitted with an IEEE488 Interface Expansion Card can communicate with up to 14 test and measurement instruments eg DVM's (digital voltmeters), plotters, digital oscilloscopes, spectrum analysers, function generators, counters, logic analysers, programmable power supplies etc. Areas of application in test and measurement include industrial and academic research and development laboratories. ATE (automatic test equipment) systems, control systems, production test systems, data exchange with Hewlett Packard Computers, connecting peripherals eg plotters and printers. The combination of Acorn 32-bit RISC Technology and Intelligent Interfaces hardware and software design results in an extremely fast data transfer rate (around 250 Kbyte/s). The computer can be configured as system controller or as a simple talker/listener. As the system controller the computer can send REN (remote enable)and IFC (interface clear) and then operate as the controller in charge. It can then address itself and other devices to talk and listen and input and output data. All addressed commands eg GTL (Go To Local) and all universal commands eg LLO (Local Lockout) can be sent. The computer can conduct both serial and parallel polls and pass control to another device. As a talker/listener the computer can, when addressed by the controller in charge, input and output data. It can specify the serial poll STB (status byte) and RQS (request service) from the controller in charge by sending SRQ (service request). The computer can take part in a serial poll and be remotely configured to take part in a parallel poll. It can become controller in charge if control is passed to it by the controller in charge. Software in ROM on the Expansion Card extends the operating system to enable IEEE488 interface operation and presents a simple low level software interface for assembler programmers. For those programming in BASIC an ultra high level software interface is provided by a library of BBC BASIC Procedures and Functions supplied on disc. Libraries of procedures for FORTRAN 77, ISO Pascal and ANSI C are available separately. 16 BIT PARALLEL I/O The 16 Bit Parallel I/O Expansion Card provides two separate 16 bit input/output ports. Each port can be configured as either one 16 bit input or output port with two handshake lines or as two separate 8 bit input or output ports each with two handshake lines. All the data and handshake lines are fully buffered. Other facilities include four 16 bit counter/timers and two 8 bit shift registers. A relocatable module extends the operating system to enable data input and output and presents a simple low level software interface for assembler programmers. To simplify the use of the Expansion Card from BASIC, a library of procedures and functions is supplied on disc. A similar library is supplied to enable the use of the Expansion Card from FORTRAN 77. DUAL RS423 SERIAL INTERFACE The Dual RS423 Serial Interface Expansion Card provides two additional RS423 serial interfaces for communicating with RS423 or RS232 devices eg printers, plotters, instruments, etc. Each interface has independently programmable transmit and receive baud rates from 50 to 38400 baud and independently programmable data formats (5,6,7 or 8 data bits plus parity - odd, even, no or force parity - 1, 1.5 or two stop bits). The two standard 9-pin D type connectors used have the same pin assignments as the built-in RS423 Serial Interface of the computer. Software in ROM on the Expansion Card extends the operating system to enable the use of the additional RS423 serial interfaces. 12 BIT ANALOGUE I/O In development INTELLIGENT INTERFACES LTD 43b WOOD STREET STRATFORD-UPON-AVON WARWICKSHIRE CV37 6JQ TEL: 0789 415876 FAX: 0789 299600 TELEX: 312242 MIDTLX G Index RISC OS directory names are limited to a maximum of 10 characters; this file gives the full company name for each of the contributors to the content of this support disc. Directory name Company Name Abacus Abacus Training Limited Ace Ace Computing Acorn Acorn Computers Limited / Acornsoft Avp AVP Computing CamMicro Cambridge Micro Systems Limited Clares Clares Micro Supplies Limited Colton Colton Software Dabs_Press Dabs Press DixonDixon Dixon and Dixon Emmerich Emmerich (Berlon) Ltd Gem_Elect GEM Electronics II_Ltd Intelligent Interfaces Limited Inst_Ophth Institute of Ophthalmologists Lendac_DS Lendac Data Systems Limited Lingenuity Lingenuity (Lindis International Limited) Magenta Magenta Research Limited Maze Maze Technology Meadow Meadow Computers Minerva Minerva Systems Limited Mitre Mitre Software Limited Oak_PDT Oak Professional Software Limited Silicon Silicon Vision Limited Watford Watford Electronics Limited Using 3DIGIT under RISCOS No changes are needed to run 3DIGIT under RISCOS. 3DIGIT may be run by pressing SHIFT/BREAK, or selecting the !BOOT or 3DIGIT programs using the Filer. You may either permanently reconfigure the computer as described in the 3DIGIT instruction manual,or use the task manager to allocate a minimum of: 80K screen memory (or 160K for multi-sync mode 20 reconstructions). 48K system sprites. Remember to reserve some extra sprite space for 3D animation. 3DIGIT 3Dshape files appear as Data in the Filer display. 3D reconstruction screens appear as Sprites. Using DIGIT under RISCOS No changes are needed to run DIGIT under RISCOS. DIGIT may be run by pressing SHIFT/BREAK, or selecting the !BOOT or DIGIT programs using the Filer. You may either permanently reconfigure the computer as described in the DIGIT instruction manual,or use the task manager to allocate a minimum of: 80K screen memory (or 160K for multi-sync mode 20 video pictures). 48K system sprites. DIGIT shape or data files appear as Data in the Filer display. Video screens appear as Sprites. Using DISMAP under RISCOS No changes are needed to run DISMAP under RISCOS. DISMAP may be run by pressing SHIFT/BREAK, or selecting the !BOOT or MENU programs using the Filer. You may either permanently reconfigure the computer as described in the DISMAP instruction manual,or use the task manager to allocate a minimum of: 80K screen memory. 48K system sprites. DISMAP data files appear as Data in the Filer display. DISMAP screens appear as Sprites. Using DISTIT under RISCOS No changes are needed to run DISTIT under RISCOS. DISTIT may be run by pressing SHIFT/BREAK, or selecting the !BOOT or MENU programs using the Filer. You may either permanently reconfigure the computer as described in the DISTIT instruction manual,or use the task manager to allocate a minimum of: 80K screen memory. 48K system sprites. DISTIT data files appear as Data in the Filer display. Using GRAPHDATA under RISCOS No changes are needed to run GRAPHDATA under RISCOS. GRAPHDATA may be run by pressing SHIFT/BREAK, or selecting the !BOOT or MENU programs using the Filer. You may either permanently reconfigure the computer as described in the GRAPHDATA instruction manual,or use the task manager to allocate a minimum of: 80K screen memory. 48K system sprites. GRAPHDATA data files appear as Data in the Filer display. GRAPHDATA screens appear as Sprites. Image Analysis Software from the Institute of Ophthalmology The Institute provides a number of software packages for digitisation, measurement and display from images: DIGIT is used to digitise and measure objects traced on a digitiser tablet or recorded in video with the Watford Video Digitiser. A full range of measurements is provided e.g. counts, linear distances, and area, perimeter, line length, maximum, minimum and mean Feret (caliper) diameters, and shape factors of irregular objects. Objects are recorded as files which may be edited, displayed, zoomed and printed. Measurements may be printed, saved, edited, and displayed as histograms with mean and standard deviation. DIGIT disc, manual and connecting lead: 150 (no VAT). 3DIGIT provides 3D reconstruction of objects traced with DIGIT, e.g. from microscope sections or map contours, with section alignment. The reconstruction may be rotated around the x,y,z axes with control of magnification, position and perspective, and depth shading or red/green stereo display. Reconstructions may be printed, or edited with a digitiser art program. Measurements of surface area, volume and volume density are made. 3DIGIT disc and manual: 50 (no VAT). DISTIT is used to quantify 2 dimensional arrays of objects recorded with DIGIT (e.g. cells or particles in microscope sections) to show whether they are regularly or randomly arrayed. DISTIT disc and manual: 50 (no VAT). DISMAP draws contour maps of the 2 dimensional distribution of objects recorded with DIGIT, e.g. cells or particles across sections or cell sheets. A digitiser art program is used to edit the maps. DISMAP disc and manual: 50 (no VAT). GRAPHDATA is a general purpose package for rapid recording, reading, display and editing of graphs using the digitiser tablet. GRAPHDATA disc and manual: 30 (no VAT). Institute of Ophthalmology, Judd Street, London, WC1H 9QS. Tel.01-387 9621 extn. 224 (Dr B.P.Hayes). PlutArch The PlutArch podule from Lendac Data Systems connects an Archimedes to a high-resolution Pluto graphics board. PlutArch combines the power of an Archimedes with the broadcast-quality graphics of a Pluto board. PlutArch works with Pluto 2 and Pluto 2i boards. Pluto boards have a resolution of 768H x 576V, 256 colours on-screen from a palette of 16.7 million, a real-time video digitising input, hardware zoom and pan, and up to 1 MByte of frame buffer memory. The PlutArch podule is connected to Pluto through an 8-bit parallel interface and contains an onboard module ROM which takes care of all the details of controlling Pluto. The PlutArch module also contains extensions to the Pluto command set which give the user anti-aliased fonts, and fast loading and saving of screens and sprites. PlutArch comes with BASIC, C and ARM assembler libraries. PlutArch is available from: Lendac Data Systems Ltd, Unit 31, IDA Enterprise Centre, Pearse St., Dublin 2, IRELAND Phone: 0001 710796 Lingenuity Lingenuity is the product division of Lindis International Limited. We produce a range of software and hardware products for Archimedes computer systems. For further information, please contact us at: Wood Farm Linstead Magna Halesworth Suffolk IP19 0DU Tel: 098 685 476 *!Presenter| > !Presenter.!Boot IconSprites .!Sprites | > $.!Presenter.!run WimpSlot -min 128k -max 192k IconSprites .!Sprites SET Presenter$Resources $.Resources.Presenter SET Presenter$Data $.Graphs SET Presenter$Screens $.Artisan RUN $.Graphs.Presenter sm!presenter, ww w w w w w{zw wwwwwwwww!presenter, ww wpw ww wpw w wp{ w wpz ww wpw wwwwwwwwwwwwwwwwwwpw wwUUUUUUUUUU wwwwwwwwwwwwwwwww@ Using Presenter under RISC OS The contents of this directory can be used to create a version of Presenter which can be executed from the RISC OS Desktop. 1. Floppy disc users a. Format a new floppy disc and make a backup copy of your current Presenter disc. Name the new disc NewPresent. b. Copy the !Boot file and the !Presenter application from the Support disc to the root directory of disc NewPresent. To use Presenter from the Desktop, insert disc NewPresent in drive 0 or drive 1, click on the corresponding disc drive icon and, when the directory viewer appears, double click on the !Presenter icon. You may also auto-boot disc NewPresent provided that it is loaded in drive 0. 2. Hard disc users a. If you have not already installed Presenter onto your hard disc, do so now, using the instructions supplied with the original package. b. Copy the !Presenter application from the Support disc to the desired location in the hard disc directory hierarchy. To use Presenter from the Desktop, open the appropriate hard disc directory viewer and double click on the !Presenter icon. Magenta Research produced the first commercial communications package for the Archimedes: U_Connect. U_Connect II will be released in a RISC-OS compatible form, after considerable re-design of the user interface, to meet the requirements of, and take advantage of, the new multi-tasking WIMP environment. We view RISC-OS as the best thing to happen in Acorn since sliced Hovis, and we are considering a variety of new applications for the Archimedes, under the general category of system maintenance and productivity tools. First will be a Back-Up Utility, especially important for Hard-Disk and Network users, supporting file compression, and flexible specification options. Another product is a Telephone Book, with all the normal features of an address book database, plus dialling the number via a suitable modem connected to the RS423 port. We are also hoping to produce several programmers aids, including an interactive Help system for C and Assembler programmers. Magenta is always interested to here from anyone who has written software for the Archimedes - especially WIMP based, using assembler or 'C'. Magenta Research Ltd AMP House Dingwall Road CROYDON CR0 9XA Tel: 01-680-7179 | > !U_Connect.!Run | *unset Con$Flag Set UC$Path Set UF$Path .Data WimpSlot -min 250K -max 250K Run ".ConStart" !u_connect, wwwwwwwwwwww wwww wwwwww wwwwww wwwwwsm!u_connect, xwwwxwwwxwwxxw{w{wwwwxwwwwwU_Connect 1.02 will function under RISC-OS, with the following restrictions: * Multi-tasking is not available when running U_Connect. * DCD & DSR status is not seen correctly by the software - you may need to alter your modem driver(s), or go Online manually. * ALT-key combinations no longer function. * RS423Fix module is NOT required to be loaded. To 'see' U_Connect as a RISC-OS application, take these steps: * Rename your U_Connect Resources directory to '!U_Connect'. * Create a subdirectory !U_Connect.Data and move all the 'UserData' files (ie .*) to it - easiest from the DeskTop. * From the Desktop, the !U_Connect directory should appear as a large blue capital U. If you have problems running the program, check that the contents of the !Run file match your setup. * If you get an 'Out of Memory' error increase the 'wimpslot' allocation in the !Run file. Version 2 of U_Connect will be 100% RISC-OS compatible, and significantly re-designed. U_Connect 1.02 will function under RISC-OS, with the following restrictions: * Multi-tasking is not available when running U_Connect. * DCD & DSR status is not seen correctly by the software - you may need to alter your modem driver(s), or go Online manually. * ALT-key combinations no longer function. * RS423Fix module is NOT required to be loaded. To 'see' U_Connect as a RISC-OS application, take these steps: * Rename your U_Connect Resources directory to '!U_Connect'. * Create a subdirectory !U_Connect.Data and move all the 'UserData' files (ie .*) to it - easiest from the DeskTop. * From the Desktop, the !U_Connect directory should appear as a large blue capital U. If you have problems running the program, check that the contents of the !Run file match your setup. * If you get an 'Out of Memory' error increase the 'wimpslot' allocation in the !Run file. Version 2 of U_Connect will be 100% RISC-OS compatible, and significantly re-designed. MAZE TECHNOLOGY MAZE Technology's first product for the Archimedes is the SideFAX-II Desktop utility Set. This set is an enchanced version of that supplied with the Sideset(D) Task-switching system, which is currently available for the Master 128 and Model-B BBC microcomputers. The utilities have, however, been re-designed to complement and/or replace those desktop utilities supplied as standard with the Archimedes and have had new facilites added to take advantage of the extra power of the Archimedes. SideFAX-II provides ;- - A 9999 yr Calendar/Diary - An Address book - A notepad-editor - A user-extendible context-sensitive HELP-book. - A full-function scientific calculator with HEX operation - Additional User Data-books Each of these utilities is available from the RISC OS desktop and Pops-up with an easy-to-use interface, permitting the mouse and/or the keyboard to be used. The Diary, Address-book, Notepad and Help-book are in fact special forms of 'Data-books': These are free-format, general purpose, card-index type databases; the 'User Data-book' facility enables the user to have any number of these databases accessible from the RISC OS desktop. Extensive facilities such as searching, data-transfer, file-locking, and password protection are available for use on these 'Data-books'. Powerful printing facilites are also included, so that, for example, information may be printed out in a variety of user-determined formats, such as ; Filofax type pages, telephone lists, address labels, etc. SideFAX-II can also be used for such things as mailing-lists, pupil records, computerised subject guides and application specific pop-up Help files etc., without the need for programming skills. for Archimedies 305 and above, available 2nd Quarter 1989, Price - TBA MAZE Technology, 20 Woodlands Rd, Walthamstow. E17 3LE Telephone : 01-520-9753 MEADOW COMPUTERS 11, London Street, Whitchurch, Hants, RG28 7LH Tel: (0256) 892008 Small Business Systems 'MICRO-TRADER' Fully integrated professional accounts program consisting of Sales Purchase and Nominal ledgers. Prints Invoices and Statements. Includes facilities for audit trail, trial balance, profit & loss account and balance sheet. Designed by a businessman to meet the needs of the businessman, the program uses the advanced RISC OS facilities to provide a fast and easy to use program that covers all the day to day requirements of your business. This large capacity complete accounts program is only 200 + VAT. 'MICRO-STOCK' Stock control program that can be run stand alone or integrated with 'Micro-Trader' accounts. Stores prices, descriptions and and quantities held on up to 4000 stock items each accessed by a user defined stock code. The Archimedes' power ensures astonishingly fast access and searching times. Prints Invoices and Credit Notes, and povides detailed reports on stock holdings and valuation. 75 + VAT. 'MICRO-MAILER' Mail-Merge program allows access to the 'Micro-Trader' ledgers to print label runs and circular letters. Includes a user defined database for storing additional names and addresses. Frequently used lists of names and addresses can be stored on disc for future use. 30 + VAT. EXTENDED PAYROLL Micro-Aid Extended Payroll is fully integrated with 'Micro-Trader' accounts. All tax and N.I. codes (except M.O.D personnel) are covered for up to 400 employees. prints payslips from the payroll run and weekly/monthly summaries. Cash and cheque payments are updated directly to the 'Micro-Trader' ledgers. 49.95 + VAT. Phone or write for a FREE FACT SHEET with full details of these programs MEADOW COMPUTERS 11, London Street, Whitchurch, Hants, RG28 7LH Tel: (0256) 892008 Small Business Systems 'MICRO-TRADER' 'MICRO-STOCK' 'MICRO-MAILER' The 'Micro-Trader' range of products requires some modification to run correctly under RISC OS. Due to compatibility problems with the Mode 7 screen, corruption will occur with some screens, but the program will perform correctly. Limited use of the program is possible, but it is not possible to create an Invoice in the Sales, Purchase or Stock ledgers. In order to overcome the problems, a new range of programs is being provided which not only overcome the problems but also offer substan- tially improved facilities. This upgrade is available to all existing users free of charge. When you wish to upgrade your program, please return your latest Main Program Disc and Data Disc to the address above and they will be upgraded to the latest standard. It is recommended that the upgrade should be carried out as close as possible to the RISC OS upgrade. Please contact Meadow Computers for further information on the programs and upgrades. 6 > IN-Lib - Invoicing library - see PROCprinthelp printhelp ( cls1 2" PROCEDURES" F0'" Name Description" ZK'" vars Sets up de%,CALC,calc$,rmswi%,mode%,scrh% & back%" d@" define Sets up character definitions for boxes" nE" h(INT) Displays header. INT gives which sub-heading" xJ" menu(INT) Displays option menu. INT gives no. of lines down" (" start of menu" H" mcheck(STR,INT) Checks ext$ for STR. Returns modified STR & INT" ?" and INT if that option not available" =" w Sets up scrw%, wid%, colours 128 & 7" " b Bleeps" &" p(STR) Does a *(STR)" @" graph Displays no.of records available & used" " graph1 " " graph2 " D" cls Clears screen leaving heading & bottom line" 9" calc Carries out calculation of calc$" @" ch(STR) Chains program STR in correct directory" 8" help Displays help strings on screen" 2" pl(STR) Prints STR on bottom line" :" chmode Allows user to change screen mode" >" iddir Sets Invoicing DATA directory current" ,'" Functions" @0'" Name Description" T:'" ipdir Returns prefix for program files" ^3" default is &.INVOICING." h6" iddir Returns prefix for data files" r8" default is &.INVOICING.DATA." |4" locate(STR) Checks for file STR on disc" 2" ArfVar(STR) Reads Arthur variable STR" F" ofile Returns name of opened file or no file string" G" date(INT) If INT=0 then date returned in **/**/** format" E" if INT=1 then date returned as dd mmm yyyy" 1" case(STR) Forces STR to upper case" <" spc_strip(STR) Removes all leading spaces from STR" ," e(STR,INT,STR) Asks for user input" ''':genhelp ''"Press any key";:A%=:   vars ș &80301 sd% ade%=0:CALC=0:calc$="":rmswi%=900:f$="":mode%=12:scrh%=31:back%=136:find$="":pr$="#1":proff:  define !23,136,0,24,56,127,56,24,0,0 &!23,137,0,24,28,254,28,24,0,0 0#23,138,24,24,24,24,126,60,24,0 :#23,139,0,24,60,126,24,24,24,24 D 23,161,0,0,0,24,24,24,24,24 N23,162,0,0,0,31,0,0,0,0 X 23,163,0,0,0,31,24,24,24,24 b23,164,0,0,0,248,0,0,0,0 l!23,165,0,0,0,248,24,24,24,24 v23,166,0,0,0,255,0,0,0,0 !23,167,0,0,0,255,24,24,24,24 23,168,24,24,24,24,0,0,0,0 #23,169,24,24,24,24,24,24,24,24 23,170,24,24,24,31,0,0,0,0 #23,171,24,24,24,31,24,24,24,24  23,172,24,24,24,248,0,0,0,0 $23,173,24,24,24,248,24,24,24,24  23,174,24,24,24,255,0,0,0,0 $23,175,24,24,24,255,24,24,24,24 $23,228,60,96,48,60,102,102,60,0 '23,255,0,126,126,126,126,126,126,0   ch(a$)  a$=pdir+a$ a$ *ݤipdir:T$ 48T$=ArfVar("Delta$IPPrefix"):T$="":T$="&.INVOICING" >T$,1)<>"."T$=T$+"." H=T$ \ݤiddir:T$ f=T$=ArfVar("Delta$IDPrefix"):T$="":T$="&.INVOICING.DATA" pT$,1)<>"."T$=T$+"." z=T$ ݤsddir:T$ 9T$=ArfVar("Delta$SDPrefix"):T$="":T$="&.SALES.DATA" T$,1)<>"."T$=T$+"." =T$ ݤmddir:T$ >T$=ArfVar("Delta$MDPrefix"):T$="":T$="&.STOCKFILES.DATA" T$,1)<>"."T$=T$+"." =T$ iddir:"dir "+iddir): sddir:"dir "+sddir): mddir:"dir "+mddir): +ssetdir(T$):T$=""T$="*":sddir:T$ $+msetdir(T$):T$=""T$="*":mddir:T$ .+isetdir(T$):T$=""T$="*":iddir:T$ 8 Lݤlocate(f$) Vc% `c%=(f$):c%>0#c%:= j= ~ݤArfVar(A$) sd%,L%:sd%-1  =292:=""::,$ ș&23,A$,sd%,200,0,3,,L%  sd%?L%=13  =$sd%  h(z%):w:cls:h2  pl(""): ;z%<99userdate(0):back%:0:28*wid%-(A$/2),3);date$  a$="" centre(a$) /vdu20:0,3)(16*wid%)9*wid%-(a$/2),3)a$ ( <menu(I%) =menu2(I%) > menu3 ? @ Amenu2(I%) BI%=2 Fp("Select Option ")::26 H3dbox2(19,24,40,16,255) IGmenu4(I%):I%=2:p("Select Option ")::26:3dbox2(4,24,40,16,255) PJ%=I%:menu$="":A$ Z A$<>64 dB$=A$,2):A$=A$:C%=A$ nB$,"?")>0mcheck(B$,C%) xB$=A$,2):A$="Esc":C%=27  C%<>323*wid%,I%)A$"."; 6*wid%,I%)B$; menu$=menu$+C% O%=-C%O%=I% I%=I%+1:C%=42    menu3  31,0,O% #("SD10 "+(1+O%-J%)+","+menu$)   'ݤofile:A$="No File Open":S%=0:=A$  *SDstat ="File="+$sd% *mcheck( B$, C%):B$=B$,B$,"?")-1) &ext$,C%)=0:C%=32:B$=B$+" (N/A)" " , 6Ow:26,10,8:scrw%=:28,0,scrh%-1,scrw%,3:wid%=1:scrw%>44wid%=2:128:7: Jb T *SDbeep ^ h rp(A$):SD03(A$) |   graph3 *SD13 1,transfl  back% )scrw%-20,scrh%-7)" Transactions " 128 (scrw%-18,scrh%-6)"Free :";recs%-R% "scrw%-18,scrh%-5)"Used :";R% 4R%>0(recs%-R%)/R%*100<5scrw%-19,scrh%-6)"";  Ecls:vdu20:26:0:ȓȐ0,80,1279,25*32-4:28,0,scrh%-3,scrw%,5: cls1:128:7:26,12: $calc:SD08("Eval: ",200,calc$) &&a$="0":calc$=$sd%:calc$<>""calc2 0:w:cls:3dbox2(1,28,78,24,8):5,6);:*SDdh calc$,wid% :.5,10);:$sd%="= "+a$,16):*SDdh $sd%,wid% D SD06("") N$G%=G%&DF:G%=80cls:calc$"="a$ X3:w:cls:O%=-"?":  calc2  .=6::a$=calc$:CALC=a$:: :,$ CALC=calc$:a$=CALC:  graph /m%(0)=-:ș rmswi%,10 I%,,T%:m%(1)=T%-I% $m%(2)=-:ș rmswi%,10 ,,m%(3) $b%=0:I%=02:b% H R pl(a$) \ p(a$) f back%:7 p ݤe(A$,len%,B$) SD08(A$,len%,B$)  =$sd%   chmode *mode%=e("New mode (9,12) ",2,mode%) !setmode(mode%):13,8:scrw%=   disp 26::back%:7 0,Z%-1)(scrw%+1) $81,Z%-1)"Accounts used :";R%" (";recs%-R%-1" Left)" .graph2(24,scrh%-Z%+1,1) 8*SDwindow ,,,Z% Bpl("Select option") L: `findac(a$):pl("") j found=: t;a$<>"":$sd%=a$: D%=0:pr$=case(e("Account ",20,pr$)) ~pr$="END OF BATCH"G%=255 xG%=27:("SDgrec 1") $sd%>R% $(sd%+1)>R% mess("Account not open"):A%=0 ?sd%="#":A%=facnum A%=facname  A%=1 G%=27 G%=255 A%=1found=  ݤfacname *SDselectkey Adr0 find$=pr$:*SDdup D%,pr$ G%D%=0:b:=0 text:*SDgfield acno al$=$sd% *SD33 N% 8 G%&80 mess("Account has been deleted"):=0::=1 ݤfacnum $sd%=case($(sd%+1)) Bal$=$sd%,1):al$<"A"al$>"Z" al$="":ac%=$sd% ac%=$(sd%+1) (,ac%=0mess("Invalid account number"):=0 2*SDlocate ac% <text:*SDgfield acno FKal$<>""al$<>?sd% ("SDview 18,7"):mess("Invalid account letter"):=0 P al$=$sd% Z *SD33 N% d8 G%&80 mess("Account has been deleted"):=0::=1 xmess(a$):pl(a$) b:*SD05 SD03("")  7ݤstring(temp):@%:@%=&1020200:temp=temp/100:=temp ݤrev(a$):b$,i% 'b$="":i%=14:b$=a$,i%,1)+b$::=b$ valid flag%= *SD13 &36 G%1:flag%=  flag% G%=G%1:*SD14 G%,&36  *SD43 " 6 fix @ *SD13 &36 J G%=G%1 T*SD14 G%,&36 ^ *SD43 h |ok(a$):*SD13 &36,a$ G%=G%254:*SD14 G%,&36,a$  0ݤrd:X%,A%:X%=252:A%=128:=&FF (&FFF4/256) ptest:G%=0 ȕ pr=0 G%<>27 *mess("Reset Printer, Press ") G%=19flushit & SD03("") 0 :G%=27:*FX21,3 D X flushit b *FX21,3 l*FX5 v pron:28,78,30,78,30,2  proff:3,26,31,78,30  pcode(P%) 2 P%=11,18,1,27,1,69 P%=21,27,1,70 P%=3 1,27,1,70,1,15 P%=41,27,1,70,1,18 P%=5 1,27,1,45,1,1 P%=61,27,1,45,1,0 P%=7 1,27,1,87,1,1 P%=8 1,27,1,87,1,0 * > getp H f%,i% Rf%=(":0.SM-pval") \ i%=119 f#f%,P$(i%) p z#f%  zzz *SDclose ? *SDopen Acfile ok("Acfile") *SDopen Invoice $ok("Invoice") .*SDopen Transfl 8ok("Transfl") B*SDclose ? L `3graph2(x%,y%,z%):D%=x%*32:wid%=1D%=D%+(D%/4) j0:*SDfile acfile ,*SDlocate t% 6 J throw T 1,12 ^lc%=0:line%=0: r getnum(pr$,len%,def$,real) |@% pr$=pr$+" " @%=&102020A  SD08(pr$,len%,def$) $sd%=spc_strip($sd%) ) ?sd%="-" mess("Negative number!")  L%=$sd% G%=27(L%>0?sd%<>"-")  G%=27 $sd%=($sd%) Rreal $sd%=string(.5+ival($sd%)):C%=$sd%,"."):$sd%=$sd%,C%-1)+$sd%,C%+1)  userdate(z%) Z$,X$,M%,M$,D%,D$ 'z%=1Z$=$,5,11)date$=date(Q%): &X$=Z$,4,3) 0 Z$,1)="0" Z$=Z$,10) :7M%="***JanFebMarAprMayJunJulAugSepOctNovDec",X$)/3 DM%<10M$="0"+M% M$=M% N"D%=Z$:D%<10D$="0"+D%D$=D% Xdate$=D$+"/"+M$+"/"+Z$,2) b"SD08("Enter date : ",8,date$) ldate$=$sd% vQ%=chdate(date$)  @ݤchdate(a$):d%=a$:m%=a$,4,2):y%=a$,2):*SDdays d%,m%,y% =G% ݤdate(F%):date$ date$=strdate(F%) m%=3*date$,4,2) R=date$,2)+" "+"**JanFebMarAprMayJunJulAugSepOctNovDec",m%,3)+" 19"+date$,2) ݤstrdate(a%) *SDdate a%  =$sd%  d2(z%) *SDdate z%  day%=$sd% *mon%=$sd%,4,2) 4year%=$sd%,2) > R vars1 \recs%=0:lastF%=0:disctot=0 ffix%=:vaton%=:oncard%= p7calc$="":CALC=0:com$(5),vat%(5,2),top$(3),di$(3,3) z2F%=(iddir+"I-Parms"):I%=05:#F%,com$(I%): I%=03:#F%,top$(I%):  pl%=z I%=04:#F%,a$: 'I%=05:#F%,a$:a$=""vat%(I%,0)=-1 6:I%=05:#F%,a$:vat%(I%,0)=0:vat%(I%,0)=100*a$ :vx%=z:vy%=z I%=18:#F%,a$: #F%,d1$,d2$ 'I%=03:J%=03:#F%,di$(I%,J%):: cols%=z:col$(cols%) I%=0cols%:#F%,col$(I%): I%=cols%6:lin%=z: #F%,pr$:st%=z:tel%=z #F%:ed%=:raise%=:*fx12,1  *SD24 1  *SD27 $)inv$=$sd%:com$(2)=""G%=0:acadr%=G%: .*SD24 0,acfile 8*SD25 acfile BG%>Z%G%=Z% Lacadr%=G%: V `ݤz:#F%,a$:=a$ H ------------------------------------------------------------------  genhelp <'"General procedures for System DeltaPlus Applications" <"----------------------------------------------------"' "1.General" '"PROCsdreset" G"Behaves as *SDreset but with nicer messages if in >80 col. mode." '"FNnumer(int%)" C"Formats int% into string for numeration (eg 1st,2nd,7th etc)" '"FNzpadt(int%,wid%)" 5"Zeropads ABSint% to wid% chars, returns string" ''"2.Date Handling" '"FNdays(day%,mon%,year%)"  L"Returns 'date number' for given date (No. days since arbitrary point)" <'"PROCdate(date%,RETURN day%,RETURN mon%,RETURN year%)" 4"Converts 'date number' to day, month and year" ('"FNdayw(date%)" 2:"Returns 3 char. day of week for given 'date number'" <'"FNformdate(date%,type%)" F6"Converts 'date number' to string of type type%:" P" Type 1 = 01/01/1980" Z" 2 = 1st Jan 1980" d!" 3 = Tue 1st Jan 1980" n" 4 = Jan 1st 1980" x!" 5 = Tue Jan 1st 1980" " Others are all 01/01/80" '"FNday(date%)" ."Returns day of month from 'date number'" '"FNmonth(date%)" ."Returns month (1-12) from 'date number'" '"FNyear(date%)" +"Returns year (AD) from 'date number'" '"FNtoday" 1"Returns 'date number' read from CMOS clock"   sdreset ș&80301sd%:colours T%,X%,Y%,A%:X%=:Y%= :26,10,8  <79  *SDreset   T%=:ș"OS_Byte",229,1,A%  T%= T%  *SDbeep JSD06("Insert original DeltaPlus disk in drive :0 and press any key ") %G%=27:1:0,"Protection Failure" " SD03("") , 6 @*SDreset E B colours JT% T *SDbeep ^GSD06("OK - Remove disk (replace if necessary) and press any key ") h SD03("") r |ș"OS_Byte",229,A%  X%,Y%);:: +ݤdays(D%,M%,Y%):"SDdays D%,M%,Y%":=G% (date(Z%, D%, M%, Y%):*SDdate Z% #D%=sd%!40:M%=sd%!44:Y%=sd%!48: ݤnumer(T%):T%=T% ;(T%10)<1(T%10)>3((T%100)>9(T%100)<15):=T%+"th"  =T%+"*stndrd",(T%10)*2,2) $ݤzpad(N%,T%)=T%,"0")+ÔN%,T%) 5ݤdayw(Z%)="FriSatSunMonTueWedThu",(Z%7)*3+1,3) &ݤformdate(Z%,T%) 0=0Z%>1E6Y%+=1900 D ȎT% N31:=zpad(D%,2)+"/"+zpad(M%,2)+"/"+zpad(Y%,4) X22:=numer(D%)+" "+T$,M%*3,3)+" "+zpad(Y%,4) b@3:=dayw(Z%)+" "+numer(D%)+" "+T$,M%*3,3)+" "+zpad(Y%,4) l24:=T$,M%*3,3)+" "+numer(D%)+" "+zpad(Y%,4) v@5:=dayw(Z%)+" "+T$,M%*3,3)+" "+numer(D%)+" "+zpad(Y%,4)  0=zpad(D%,2)+"/"+zpad(M%,2)+"/"+zpad(Y%,2) "ݤday(Z%):"SDdate Z%":=sd%!40 $ݤmonth(Z%):"SDdate Z%":=sd%!44 ݤyear(Z%):"SDdate Z%" 6Z%<1E6ORsd%!48>100sd%!48<0:=sd%!48:=sd%!48+1900 ݤtoday:?sd%=1:ș7,14,sd% %=days(~sd%?2,~sd%?1,~?sd%)  4setmode(T%) >T1% H7ș "OS_ReadModeVariable",T%,2 ,,T1%:T1%<>31T%=12 R T1%= \ f p T1%= z:<>25:,$  T1% #T%>15T%=12:T%>11T%=9:T%=1   T1%= T%  mode%=T%  30,10,8 T%=12:T1%=  >30  palset  Bvdu20:128:7 L 7:128 V j palset t19,0,16,0,0,0 ~19,1,16,240,0,0 19,2,16,0,240,0 19,3,16,240,240,0 19,4,16,0,0,240 19,5,16,240,0,240 19,6,16,0,240,240 19,7,16,240,240,240 19,8,16,240,240,0 19,9,16,192,192,0 19,10,16,160,160,0 19,11,16,128,128,0 19,12,16,96,96,0 19,13,16,64,64,0 19,14,16,32,32,0  19,15,16,0,0,0  (3dbox(X1,Y1,X2,Y2,C) 2 F <"C>127C<255 F=0:C-=128 F=1 FB=12 P B2=14 Z F 10 13 d" X1,Y2:X1,Y1:&55,X1+B2,Y2-B nX1+B2,Y1+B:&55,X1,Y1 x F 13 10 !X2,Y2:X2,Y1:&55,X2-B2,Y2-B X2-B2,Y1+B:&55,X2,Y1  F 11 12 !X1,Y2:X2,Y2:&55,X1+B2,Y2-B X2-B2,Y2-B:&55,X2,Y2  F 12 11 &X1,Y1:X1+B2,Y1+B:&55,X2-B2,Y1+B X2,Y1:&55,X1,Y1  C<>-1 #C=256vers=9:C=1: C=256:C=8 3C=255vers=9:C=0:7:128: C=255:C=8:0:136  C 3ȓȐX1+B2+2,Y1+B+4,X2-X1-(B2*2+4),Y2-Y1-(B*2+8)   r comm2 |cls:3dbox2(1,28,78,24,8) 2ș"OS_Byte",229,0,I%:$sd%:ș"OS_Byte",229,I% SD06(""):cls:vdu20   commbox 3dbox(0,16,1279,76,256) 28,1,30,78,30  SD08(P$,L%,D$)  commbox *SD08 P$,L%,D$,w  :26  SD03(P$) &X% 0 commbox :*SD03 P$,w D X%=: N26:X%+1,30);: bSD06(P$) l commbox v*SD06 P$,w  26:: SD09(P$) P$="":P$="Sure (Y/N) ? " SD03(P$):::*SD05 #G%<>89 G%<>78G%<>27:*SDbeep G%=89G%=78G%=27  SD03("")  26: 3dbox2(x1,y1,w,h,c) O3dbox((x1*8*2)-16,((31-y1)*8*4)-16,((x1+w)*8*2)+15,((31-(y1-h))*8*4)+15,c) 28,x1,y1,x1+w-1,y1-h+1 c=80:136    colours *vers=9: 4*SDcolour 1,0 >*SDcolour 2,8 H*SDcolour 3,8 J*SDcolour 4,0 R*SDcolour 5,7 \*SDcolour 6,4 f zݤvers:$sd%,a:*SD55  a=("&"+$(sd%+2)): a<10:a=9 =a   report  @%=&907:6,3,4,15::*fx229,1 ( 255)=17:  h(99) %3dbox2(1,28,78,24,8):0:136:30 ::60,22)"Line "; SD06(""):G%<>27-2: A$="Program Terminated" 19*wid%-A$,6);:*SDdh A$ *SDclose ? '  *fx229 *fx4   %filcol:vers>9:*SDcolour 103,8 vers>9:*SDcolour 104,7   h2 3dbox(0,928,574,1023,8) (3dbox2(33,3,46,1,8):26 2ȓȐ528,924,30,30 <$13:574,942:BY-14,-14:81,0,14 F$12:526,942:BY-14,-14:81,0,14 P$10:526,938:BY-14,-14:81,14,0 Z*0:ȓȐ0,880,508,44:ȓȐ576,944,703,79 d,22,948:ș"OS_SpriteOp",256+28,,"dpa",0 n-802,944:ș"OS_SpriteOp",256+28,,"inv",0 x 26:  delta(A$)  0<0  T%:T%=   :T%= T% "ArfVar("Delta$Boot")=A$ )*unset Delta$Boot ,-1:"Cannot load System DeltaPlus module" 6'"This module must be on the disk." @'"Please re-try.": J T:"set Delta$Boot "+A$:"Exec "+ipdir+"!IN-Start":*gos ^ h r *SDbbc |*unset Delta$Boot   comm:I% 28,1,30,78,1  O%=-"*" SD08("*",200,"") $sd%="": .SD03("Press SHIFT"):3dbox2(1,28,78,24,8)  vers>9 (T$:T$=28+1+28+78+5:*SDvdu 3,T$ 28,1,30,78,30 *SD47 $sd%,w 26  &614:ș"OS_Byte",229,0,I%:$sd%:ș"OS_Byte",229,I% 015:SD06("") : Dcls:vdu20: l vݤpr:X%,Y%:G%=27:=0 ,rd>3:Y%=rd-3:2,1,0,1,0,1,0,3:Y%=rd X%=:=0::>750 rd>Y% =X%+:=rd>Y%  evaluation *SD55 *SDupper $sd%,"EVALUATION")=0: !3dbox2(20,23,40,17,8):1 ! 13,1);:*SDdh "WARNING" !40:1,4)"The System DeltaPlus you are using is" ! ," an EVALUATION copy only and has some" !*-" features restricted. This is suitable" !4," for an over-view of this application" !>+" but you MUST install a full version" !H+" (by using the !COPY utility on your" !R-" System DeltaPlus disk) if you wish to" !\'" make proper use of the package." !f !p-" This evaluation version will time-out" !z," after a sensible period has elapsed," !})" which may corrupt your test data." ! SD06("") ! cls: ; > NL-Lib - Nominal Ledger library - see PROCprinthelp  printhelp ( cls1 2" PROCEDURES" < F0'" Name Description" P ZK'" vars Sets up de%,CALC,calc$,rmswi%,mode%,scrh% & back%" d@" define Sets up character definitions for boxes" nE" h(INT) Displays header. INT gives which sub-heading" xJ" menu(INT) Displays option menu. INT gives no. of lines down" (" start of menu" H" mcheck(STR,INT) Checks ext$ for STR. Returns modified STR & INT" ?" and INT if that option not available" =" w Sets up scrw%, wid%, colours 128 & 7" " b Bleeps" &" p(STR) Does a *(STR)" @" graph Displays no.of records available & used" " graph1 " " graph2 " D" cls Clears screen leaving heading & bottom line" 9" calc Carries out calculation of calc$" @" ch(STR) Chains program STR in correct directory" 8" help Displays help strings on screen" 2" pl(STR) Prints STR on bottom line" :" chmode Allows user to change screen mode"  "'" Functions" , 60'" Name Description" @ J3'" pdir Returns drive & directory" T4" locate(STR) Checks for file STR on disc" ^2" ArfVar(STR) Reads Arthur variable STR" hF" ofile Returns name of opened file or no file string" rG" date(INT) If INT=0 then date returned in **/**/** format" |E" if INT=1 then date returned as dd mmm yyyy" 1" case(STR) Forces STR to upper case" <" spc_strip(STR) Removes all leading spaces from STR" ':genhelp ''"Press any key";:A%=:    vars ș &80301 sd% ade%=0:CALC=0:calc$="":rmswi%=900:f$="":mode%=12:scrh%=31:back%=136:find$="":pr$="#1":proff:   define %23,135,24,&66,96,248,96,96,254,0 !23,136,0,24,56,127,56,24,0,0 !23,137,0,24,28,254,28,24,0,0 #23,138,24,24,24,24,126,60,24,0 #23,139,0,24,60,126,24,24,24,24 & 23,161,0,0,0,24,24,24,24,24 023,162,0,0,0,31,0,0,0,0 : 23,163,0,0,0,31,24,24,24,24 D23,164,0,0,0,248,0,0,0,0 N!23,165,0,0,0,248,24,24,24,24 X23,166,0,0,0,255,0,0,0,0 b!23,167,0,0,0,255,24,24,24,24 l23,168,24,24,24,24,0,0,0,0 v#23,169,24,24,24,24,24,24,24,24 23,170,24,24,24,31,0,0,0,0 #23,171,24,24,24,31,24,24,24,24  23,172,24,24,24,248,0,0,0,0 $23,173,24,24,24,248,24,24,24,24  23,174,24,24,24,255,0,0,0,0 $23,175,24,24,24,255,24,24,24,24 $23,228,60,96,48,60,102,102,60,0 '23,255,0,126,126,126,126,126,126,0    ch(a$) a$=npdir+a$ a$   ݤpdir:T$ 1T$=ArfVar("Delta$SLPrefix"):T$="":T$=":0.$"  T$,1)<>"."T$=T$+"." *=T$ 4 >ݤlocate(f$) H C%,T% RNT%=::C%=(f$):#C%:C%>0T%= "Mount <"+f$+">, Press a key...";:G%=: \ T%= f=T% p zݤArfVar(A$) sd%,L%:sd%-1  =292:=""::,$ ș&23,A$,sd%,200,0,3,,L%  sd%?L%=13  =$sd%  h(z%):w:cls1 h2 *PRINTTAB(18*wid%-1,2)SPC(scrw%-POS+1)  Ȏ z%  1:A$="Main menu"  2:A$="Audit Trails"  3:A$="Journal List"  4:A$="Reports"  5:A$="Balance Sheet/P&L" $ 6:A$="Analysis" . 7:A$="Entries" 8 8:A$="Parameters" B 9:A$="" L 10:A$="Processing" V 11,99:A$="Checking System" ` 12:A$="Cash Book" j 13:A$="Balance Sheet" t 14:A$="Profit & Loss" ~ 15:A$="Trial Balance"  16:A$="Integration"  17:A$="Account Masks"  18:A$="Period End"  19:A$="Accounts"  20:A$="Spreadsheet" :A$=ofile  centre(A$) A$="Nominal Ledger" :PRINTTAB(28*wid%-(LENA$/(3-wid%)),0);:*SDdh A$,wid%-1 Az%<99userdate(0):0:back%:36+11*wid%-(date$/2),3);date$    centre(a$) 3vdu20:26:0,3)(16*wid%)8*wid%-(a$/2),3)a$  ( 2menu(I%) <menu2(I%) F menu3 P Z dmenu2(I%) nI%=2 xp("Select Option ")::26 3dbox2(19,24,40,16,255) J%=I%:menu$="":A$  A$<>64 B$=A$,2):A$=A$:C%=A$ B$,"?")>0mcheck(B$,C%) B$=A$,2):A$="Esc":C%=27  C%<>323*wid%,I%)A$"."; 6*wid%,I%)B$; menu$=menu$+C% O%=-C%O%=I% I%=I%+1:C%=42    menu3  31,0,O% "#("SD10 "+(1+O%-J%)+","+menu$) , 6 @'ݤofile:A$="No File Open":S%=0:=A$ J *SDstat T="File="+$sd% ^ h*mcheck( B$, C%):B$=B$,B$,"?")-1) r&ext$,C%)=0:C%=32:B$=B$+" (N/A)" |  Nw:26,10,8:scrw%=:28,0,scrh%-3,scrw%,5:wid%=1:scrw%>44wid%=2:vdu20:  b:*SDbeep   p(A$):SD03(A$)    graph3 *SD13 1,ntrans  128:7 1,3)" Transactions " )136:0:R%>0(L%-R%)/R%*100<5129:7 $2,4)" Free :";L%-R%" ":0:136 2,5)" Used :";R% & 0 :Icls:15:vdu20:26:0:ȓȐ0,80,1279,25*32-4:28,0,scrh%-3,scrw%,5: D Ncls1:vdu20:26,12: X b$calc:SD08("Eval: ",200,calc$) l calc1 v&a$="0":calc$=$sd%:calc$<>""calc2 :w:cls:3dbox2(1,28,78,24,8):5,6);:*SDdh calc$,wid% .5,10);:$sd%="= "+a$,16):*SDdh $sd%,wid%  SD06("") $G%=G%&DF:G%=80cls:calc$"="a$ 3:w:cls:O%=-"?":    calc2  .=6::a$=calc$:CALC=a$:: :,$ CALC=calc$:a$=CALC:   graph /m%(0)=-:ș rmswi%,10 I%,,T%:m%(1)=T%-I%  $m%(2)=-:ș rmswi%,10 ,,m%(3) $b%=0:I%=02:b%# BY 180,0: BY 0,12: BY 0,-24 H 0,I%*2+1 R/ȓ Ȑ 1052,100-32*I%,180*m%(I%)/m%(I%+2),24 \33*wid%-6,I%+28)A$; f p z ݤcase(a$) a$="":=a$ $sd%=a$:*SDupper  =$sd%  ݤspc_strip(a$) $sd%=a$:*SDstrip  =$sd%   pl(a$)  p(a$)  back%:7   ݤe(a$,len%,b$) SD08(a$,len%,b$) $ =$sd% . 8 chmode B L*mode%=e("New mode (9,12) ",2,mode%) V mode%=9 mode%=12 `$setmode(mode%):26,10,8:scrw%= j t ~ disp 26::136:0 =2,10)"Accounts used :";R%-del%" (";L%-R%+del%-1" Left)" graph4(24,21,1) *SDwindow 1,28,78,Z% *SDgfield acno D%=0:*SD38 255 text :vers>9:3dbox2(1,28,78,17,8) 3dbox2(1,28,78,17,0) G%<>12:*SDscroll 18,7 G%=12:*SDview 18,7 :  findac(a$):pl("") *SDwindow  found=: :a$<>""$sd%=a$: D%=0:pr$=case(e("Account ",20,pr$)) (pr$="END OF BATCH"G%=255 2xG%=27:("SDgrec 1") $sd%>R% $(sd%+1)>R% mess("Account not open"):A%=0 ?sd%="#":A%=facnum A%=facname < A%=1 G%=27 G%=255 FA%=1found= P Z d ݤfacname nfind$=pr$:*SDdup D%,pr$ xG%D%=0:b:=0 text:*SDgfield acno al$=$sd% *SD33 N% 8 G%&80 mess("Account has been deleted"):=0::=1  ݤfacnum $sd%=case($(sd%+1)) ?al$=?sd%:al$<"A"al$>"Z" al$="":ac%=$sd% ac%=$(sd%+1) ,ac%=0mess("Invalid account number"):=0 *SDlocate ac% text:*SDgfield acno Kal$<>""al$<>?sd% ("SDview 18,7"):mess("Invalid account letter"):=0 al$=$sd%  *SD33 N% 8 G%&80 mess("Account has been deleted"):=0::=1  "mess(a$):pl(a$) , b:*SD05 6 SD03("") @ J T7ݤstring(temp):@%:@%=&1020200:temp=temp/100:=temp ^ hݤrev(a$):b$,i% r)b$="":i%=1a$:b$=a$,i%,1)+b$::=b$ | valid(a$) flag%= *SD13 &35 :G%=2valid1 A$="Not a Nominal Ledger file!":flag%= G%=G%1:*SD14 G%,&36 *SD43   valid1:*SD13 &36 *G%1A$=a$+" files corrupted.":flag%=   ok(a$):*SD13 &36,a$ G%=G%&FE:*SD14 G%,&36,a$   &0ݤrd:X%,A%:X%=252:A%=128:=&FF (&FFF4/256) 0 :ptest:G%=0 Dȕ pr=0 G%<>27 N*mess("Reset Printer, Press ") XG%=19flushit b SD03("") l vG%=27:*FX21,3   flushit *FX21,3 *FX5   pron:28,78,30,78,30,2 -1 -3:3,26,12   proff:3,26,31,30,scrh%   pcode(P%) P%=11,18,1,27,1,69 P%=21,27,1,70 *P%=3 1,27,1,70,1,15 4P%=41,27,1,70,1,18 >P%=5 1,27,1,45,1,1 HP%=61,27,1,45,1,0 RP%=7 1,27,1,87,1,1 \P%=8 1,27,1,87,1,0 fP%=9 1,27,1,70,1,14 pP%=10 1,27,1,70,1,20 zP%=11 1,27,1,"4" P%=12 1,27,1,"5"   >getp:F%=(nddir+"nparms"):I%=124:#F%,p$(I%)::#F%:  >putp:F%=(nddir+"nparms"):I%=124:#F%,p$(I%)::#F%:  zzz *SDclose ? *SDopen naccs ok("naccs") *SDopen ntrans ok("ntrans") *SDclose ?   $3graph2(x%,y%,z%):D%=x%*32:wid%=1D%=D%+(D%/4) .3vdu20:ȓ D%+180*R%/L%,32*y%+12,180-180*R%/L%,4 8D%+180,32*y%+6: BY 0,20 B4 L!ȓ Ȑ D%,32*y%+4,180*R%/L%,20 V5z%vdu20:N%<=R% D%+180*N%/L%,32*y%+8: BY 0,12 ` j t3graph4(x%,y%,z%):D%=x%*32:wid%=1D%=D%+(D%/4) ~6vdu20:0:ȓ D%+180*R%/L%,32*y%+12,180-180*R%/L%,4 D%+180,32*y%+6: BY 0,20 4 !ȓ Ȑ D%,32*y%+4,180*R%/L%,20 5z%vdu20:N%<=R% D%+180*N%/L%,32*y%+8: BY 0,12    help  *SDstat  Z%=12 3dbox2(1,Z%-2,78,6,8) 0:136:I%=0:X%,Y%   Z$  #X%=20*(I%4)+3*(I%8):Y%=(I%4) X%<=scrw%help1 A$="*"  A$,"*")>0 (SD03("Enter option ") 2 < F help1 P*A$=Z$,1):B$=Z$,2):A$="@"A$="escape" ZA$="!"A$="Del" dKA$>135:A$="SHFT-"+A$ A$>"Z"A$=(A$-32)+A$,2)A$>"@"A$="CTRL-"+A$ n)A$=17+132+17+8+A$+17+136+17+0 xx1%=-7*(mode%>9) 7X%+x1%,Y%)A$X%+x1%+7+2*(I%8),Y%)B$,scrw%-+1);  I%=I%+1   .text:ac$="0000"+D%,4):*SDtext ac$,17,1   :pval(val,len,brkt,real,just): temp,minus,@%:@%=&900 =minus=(val<0):val=val:temp=(val):real val<100 temp=3 % just (len+2*real-temp+minus);  minus "-(",1+brkt,1); .real (val/100)".""00"+val,2);: val; ") ",2+minus*brkt,1);   ݤread:*SDgfield day "d%=$sd%:*SDgfield mnth ,m%=$sd%:*SDgfield year 6y%=$sd%:*SDdays d%,m%,y% @ =G%-2E6 J TBݤchdate(a$):d%=a$:m%=a$,4,2):y%=a$,7,2):*SDdays d%,m%,y% ^ =G%-2E6 h rݤdate(F%):date$ |date$=strdate(F%) m%=3*date$,4,2) R=date$,2)+" "+"**JanFebMarAprMayJunJulAugSepOctNovDec",m%,3)+" 19"+date$,2)  ݤstrdate(a%) *SDdate a%+2000000  =$sd%  ݤival(a$) a$,".")=0a$=a$+".00" a$=a$+2-a$+a$,"."),"0") =(a$,a$-3)+a$,2))  messwind(x%,y%) cls 53dbox2((80-x%)2-1,((24-y%)2)+5+y%,x%+1,y%+1,8)  & 0 :grec(t%,z%) Dz%>0:*SDfile naccs Nt%>0:*SDlocate t% Xt%=0:*SDgrec 0 b l v throw p$(13)="TEST":1,12  lc%=0:   getnum(pr$,len%,def$,real) @% pr$=pr$+" " @%=&102020A  SD08(pr$,len%,def$) $sd%=spc_strip($sd%) ) ?sd%="-" mess("Negative number!")  L%=$sd% G%=27(L%>0?sd%<>"-")  G%=27  $sd%=($sd%) Rreal $sd%=string(.5+ival($sd%)):C%=$sd%,"."):$sd%=$sd%,C%-1)+$sd%,C%+1)   * 4userdate(z%) >Z$,X$,M%,M$,D%,D$ H'z%=1Z$=$,5,11)date$=date(Q%): RX$=Z$,4,3) \ Z$,1)="0" Z$=Z$,10) f7M%="***JanFebMarAprMayJunJulAugSepOctNovDec",X$)/3 pM%<10M$="0"+M% M$=M% z"D%=Z$:D%<10D$="0"+D%D$=D% date$=D$+"/"+M$+"/"+Z$,2) "SD08("Enter date : ",8,date$) date$=$sd% Q%=chdate(date$)      H ------------------------------------------------------------------  genhelp <'"General procedures for System DeltaPlus Applications" <"----------------------------------------------------"' "1.General" '"PROCsdreset" G"Behaves as *SDreset but with nicer messages if in >80 col. mode." $'"FNnumer(int%)" .C"Formats int% into string for numeration (eg 1st,2nd,7th etc)" 8'"FNzpadt(int%,wid%)" B5"Zeropads ABSint% to wid% chars, returns string" L''"2.Date Handling" V'"FNdays(day%,mon%,year%)" `L"Returns 'date number' for given date (No. days since arbitrary point)" j<'"PROCdate(date%,RETURN day%,RETURN mon%,RETURN year%)" t4"Converts 'date number' to day, month and year" ~'"FNdayw(date%)" :"Returns 3 char. day of week for given 'date number'" '"FNformdate(date%,type%)" 6"Converts 'date number' to string of type type%:" " Type 1 = 01/01/1980" " 2 = 1st Jan 1980" !" 3 = Tue 1st Jan 1980" " 4 = Jan 1st 1980" !" 5 = Tue Jan 1st 1980" " Others are all 01/01/80" '"FNday(date%)" ."Returns day of month from 'date number'" '"FNmonth(date%)" ."Returns month (1-12) from 'date number'"  '"FNyear(date%)" +"Returns year (AD) from 'date number'" '"FNtoday" (1"Returns 'date number' read from CMOS clock" 2 < F sdreset PT%,X%,Y%,A%:X%=:Y%= Z:26,10,8 d <79 n *SDreset x colours   T%=:ș"OS_Byte",229,1,A%  T%= T%  *SDbeep JSD06("Insert original DeltaPlus disk in drive :0 and press any key ") %G%=27:1:0,"Protection Failure"  SD03("")   *SDreset E  colours T%  *SDbeep GSD06("OK - Remove disk (replace if necessary) and press any key ") " SD03("") , 6ș"OS_Byte",229,A% @ Jș&80301sd% TX%,Y%);: ^ h r/ݤdays(D%,M%,Y%):"SDdays D%,M%,Y%":=G%-2E6 | 0date(Z%, D%, M%, Y%):*SDdate Z%+2000000 #D%=sd%!40:M%=sd%!44:Y%=sd%!48:  ݤnumer(T%):T%=T% ;(T%10)<1(T%10)>3((T%100)>9(T%100)<15):=T%+"th"  =T%+"*stndrd",(T%10)*2,2)  $ݤzpad(N%,T%)=T%,"0")+ÔN%,T%)  5ݤdayw(Z%)="FriSatSunMonTueWedThu",(Z%7)*3+1,3)  ݤformdate(Z%,T%) =0Z%>1E6Y%+=1900  ȎT% 31:=zpad(D%,2)+"/"+zpad(M%,2)+"/"+zpad(Y%,4) &22:=numer(D%)+" "+T$,M%*3,3)+" "+zpad(Y%,4) 0@3:=dayw(Z%)+" "+numer(D%)+" "+T$,M%*3,3)+" "+zpad(Y%,4) :24:=T$,M%*3,3)+" "+numer(D%)+" "+zpad(Y%,4) D@5:=dayw(Z%)+" "+T$,M%*3,3)+" "+numer(D%)+" "+zpad(Y%,4) N X0=zpad(D%,2)+"/"+zpad(M%,2)+"/"+zpad(Y%,2) b l*ݤday(Z%):"SDdate Z%+2000000":=sd%!40 v,ݤmonth(Z%):"SDdate Z%+2000000":=sd%!44 #ݤyear(Z%):"SDdate Z%+2000000" 6Z%<1E6ORsd%!48>100sd%!48<0:=sd%!48:=sd%!48+1900  ݤtoday:?sd%=1:ș7,14,sd% %=days(~sd%?2,~sd%?1,~?sd%)  sdopen(T$) "SDopen "+T$:"SDfile "+T$  *SDfirst  *sd13 &36  *SDinit 6T%:SD06("OK. Insert your backup, press any key") :vdu20::  setmode(T%)  T1% 7ș "OS_ReadModeVariable",T%,2 ,,T1%:T1%<>31T%=12  T1%= * 4 > T1%= H:<>25:,$ R T1% \#T%>15T%=12:T%>11T%=9:T%=1 f p T1%= zT%  mode%=T%  30,10,8 T%=12:T1%=  >30  palset   ݤnpdir:T$ 6T$=ArfVar("Delta$NPPrefix"):T$="":T$="&.NOMINAL" T$,1)<>"."T$=T$+"." =T$  ݤpddir:T$ "."T$=T$+"." =T$ $ .ݤsddir:T$ 89T$=ArfVar("Delta$SDPrefix"):T$="":T$="&.SALES.DATA" BT$,1)<>"."T$=T$+"." L=T$ V `ݤnddir:T$ j;T$=ArfVar("Delta$NDPrefix"):T$="":T$="&.NOMINAL.DATA" tT$,1)<>"."T$=T$+"." ~=T$  pddir:"dir "+pddir): sddir:"dir "+sddir): nddir:"dir "+nddir):  +ssetdir(T$):T$=""T$="*":sddir:T$ +nsetdir(T$):T$=""T$="*":nddir:T$ +psetdir(T$):T$=""T$="*":pddir:T$  vdu20:128:7  7:128    palset  19,0,16,0,0,0  19,1,16,240,0,0 ( 19,2,16,0,240,0 2 19,3,16,240,240,0 < 19,4,16,0,0,240 F 19,5,16,240,0,240 P 19,6,16,0,240,240 Z 19,7,16,240,240,240 d 19,8,16,240,240,0 n 19,9,16,192,192,0 x 19,10,16,160,160,0  19,11,16,128,128,0  19,12,16,96,96,0  19,13,16,64,64,0  19,14,16,32,32,0  19,15,16,0,0,0    3dbox(X1,Y1,X2,Y2,C)  F # C>127C<255 F=0:C-=128 F=1  B=12  B2=14  F 10 13 # X1,Y2:X1,Y1:&55,X1+B2,Y2-B  X1+B2,Y1+B:&55,X1,Y1  F 13 10 "" X2,Y2:X2,Y1:&55,X2-B2,Y2-B , X2-B2,Y1+B:&55,X2,Y1 6 F 11 12 @" X1,Y2:X2,Y2:&55,X1+B2,Y2-B J X2-B2,Y2-B:&55,X2,Y2 T F 12 11 ^' X1,Y1:X1+B2,Y1+B:&55,X2-B2,Y1+B h X2,Y1:&55,X1,Y1 r$ C=256vers=9:C=1: C=256:C=8 |4 C=255vers=9:C=0:7:128: C=255:C=8:0:136  C 4 ȓȐX1+B2+2,Y1+B+4,X2-X1-(B2*2+4),Y2-Y1-(B*2+8)    commbox 3dbox(0,16,1279,76,256) 28,1,30,78,30   SD08(P$,L%,D$)  commbox *SD08 P$,L%,D$,w  :26   SD03(P$) &X% 0 commbox :*SD03 P$,w D NX%= X26:X%+1,30);: b lSD06(P$) v commbox *SD06 P$,w  :26:  SD09(P$) vers>9 commbox:*SD09 P$,w    P$="":P$="Sure (Y/N) ? " SD03(P$):::*SD05 (G%<>"Y" G%<>"N" G%<>27:*SDbeep  G%="N" G%="Y" G%=27  SD03("")  26:   3dbox2(x1,y1,w,h,c):15 *O3dbox((x1*8*2)-16,((31-y1)*8*4)-16,((x1+w)*8*2)+15,((31-(y1-h))*8*4)+15,c) 428,x1,y1,x1+w-1,y1-h+1 >c=80:136 H R \ colours fvers=9: p*SDcolour 1,0 z*SDcolour 2,8 *SDcolour 3,8 *SDcolour 4,0 *SDcolour 5,7 *SDcolour 6,4    ݤvers:$sd%,a:*SD55 ! a=("&"+$(sd%+2)): a<10:a=9  =a  delta(A$)  0<0  T%:T%=   :T%= T% ArfVar("Delta$Boot")=A$ $*unset Delta$Boot .-1:"Cannot load System DeltaPlus module" 8'"This module must be on the disk." B'"Please re-try.": L V:"set Delta$Boot "+A$:"Exec "+npdir+"!NL-Start":*gos ` j t *SDbbc ~*unset Delta$Boot   ݤstrac(T$):T$=T$,2) ȕT$=48:T$=T$,2): =T$  h2 3dbox(0,928,574,1023,8) 3dbox2(33,3,46,1,8):26 ȓȐ528,924,30,30 $13:574,942:BY-14,-14:81,0,14 $12:526,942:BY-14,-14:81,0,14 $10:526,938:BY-14,-14:81,14,0  *0:ȓȐ0,880,508,44:ȓȐ576,944,703,79 ,22,948:ș"OS_SpriteOp",256+28,,"dpa",0 -702,944:ș"OS_SpriteOp",256+28,,"nom",0 ( 26: 2 <comm:I% F28,1,30,78,1 P O%=-"*" ZSD08("*",200,"") dcomm2:$sd%=$(sd%+1) n$sd%="": x.SD03("Press SHIFT"):3dbox2(1,28,78,24,8)  vers>9 (T$:T$=28+1+28+78+5:*SDvdu 3,T$ 28,1,30,78,30 *SD47 $sd%,w 26  614:ș"OS_Byte",229,0,I%:$sd%:ș"OS_Byte",229,I% 15:SD06("")  cls:vdu20:  ݤpr:X%,Y%:G%=27:=0 ,rd>3:Y%=rd-3:2,1,0,1,0,1,0,3:Y%=rd X%=:=0::>750 rd>Y% =X%+:=rd>Y%  "sort(s%,e%,d%,t%) ,I%,J%,K%,M%,P%,I$,L$ 6M%=(e%-s%)2 @ ȕM%>0 JJ%=s%:K%=e%-M% T ȕJ%<=K% ^ I%=J% h P%=I%+M% r ȕI%>=s% |I$=sort(I%,t%) L$=sort(P%,t%)  I$<>L$ (I$+" but you MUST install a full version" !H+" (by using the !COPY utility on your" !R-" System DeltaPlus disk) if you wish to" !\'" make proper use of the package." !f !p-" This evaluation version will time-out" !z," after a sensible period has elapsed," !|)" which may corrupt your test data." ! SD06("") ! cls: ! !filcol:vers<10: !*SDcolour 103,8 !*SDcolour 104,0 ! < > PL-Lib - Purchase Ledger library - see PROCprinthelp  printhelp ( cls1 2" PROCEDURES" < F0'" Name Description" P ZK'" vars Sets up de%,CALC,calc$,rmswi%,mode%,scrh% & back%" d@" define Sets up character definitions for boxes" nE" h(INT) Displays header. INT gives which sub-heading" xJ" menu(INT) Displays option menu. INT gives no. of lines down" (" start of menu" H" mcheck(STR,INT) Checks ext$ for STR. Returns modified STR & INT" ?" and INT if that option not available" =" w Sets up scrw%, wid%, colours 128 & 7" " b Bleeps" &" p(STR) Does a *(STR)" @" graph Displays no.of records available & used"