O`8 HN0Cp ThNuTHIS DISK HAS BEEN IMMUNIZED AGAINST MOST VIRUSES BY THE 'ULTIMATE VIRUS KILLER' VERSION 6.3 BY RICHARD KARSMAKERS, *THE* ATARI VIRUS KILLER!!!puke'(*** <O`  O`'! #@%`')+-/1 3@5`79=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{}@` @ ` @ ` @ ` / @ ` ǀ ɠ @ ` ׀ ٠  @`/@`!Aa   /a!!#A%a')+-/1!3A5a79;=A!OEaGIKMOQ!SAUaWY[]_/cAeagikmoq!sAuawy{}%Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa/Aa " B b  !"!O!b!!!!"!""#B"%")"+"-"/#7##;=#$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y*[%%&acB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")O)b))))*/*B*b****+"+B+b+++++,", O`  O`'! #@%`')+-/1 3@5`79=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{}@` @ ` @ ` @ ` / @ ` ǀ ɠ @ ` ׀ ٠  @`/@`!Aa   /a!!#A%a')+-/1!3A5a79;=A!OEaGIKMOQ!SAUaWY[]_/cAeagikmoq!sAuawy{}%Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa/Aa " B b  !"!O!b!!!!"!""#B"%")"+"-"/#7##;=#$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y*[%%&acB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")O)b))))*/*B*b****+"+B+b+++++,",DOC_DISK003AUTO 2S_MODS SWR2S_PIC SWRT}AEGIS SWR;BATMAN SWRBATTLE SWRBBC_EM SWRBBUGGYBOYSWRRCAL_GAMESWRhCHESS SWR DBMASTERSWRDOC SWR}FIGHTER SWR GIST SWRGOLDRUNRSWR? S_BINDERSWRCuMANUAL SWRŻNEO SWRx0PROTEXT SWR BQUAKE SWRROCKFORDSWRSDI SWR7SOLVES SWR&uSOLVES2 SWR-<STARTREKSWR6STONES SWR 9F15EAGLESWRO<K ARCADE SWR?MMTETRIS SWR)]cTHE_PAWNSWR,_X TIMEWORKSWR.bVDU_3 SWR5"WHIRLY SWR9/Z_KRAKENSWR<Q2ERRAMEXSWR 0d"CAL_PIC1SWRa}CAL_PIC2SWR}ESKTOP INFH ESKTOP INF8. .. MUSIC PRG4 DOC_3 PRG2 (#`*O*m#n - ЭЭ// Bg?<JNAO Hy~?<&NN\VB9B9B9|ABg/?<1NAB9a#H!NuR9| 9|f||VB9B9B9Nupgwp`8Ha LNua 6969Vf)a`"<eS rAC^"""rA B(B(B( aQa)??`|C^$#jCj"Q <( R( J<c&<f B( ` @`C:ER$#npNuJ9)gR9R9R9(B9(BA 9($#z$#~0J9+f6S(J(kBJ(!fJ($f`*S(a`>R(`J('gB('U(``\ (g B(B(B9/B(B(!B($B(QB(WCRz#n ??xp9/R9/&ynR<fpza^B9/`ΰ<fB9Vp`<f V`<c*R<c @<R<f pz`<c?@ R<_c<f|!B($|R`<~f|$B(!`ް<}f <@R@.a"`<|f <`ذ<{f B(|(@[T`<zf [3TB(Z//a (Qgf(@Jg(J(f (<CnJ('gT(aCRz9/ёph h36h*R(*`(c)Wally Beben 1988 music for Atari STJ(gJ(Zg/ K8~UQ9>*_J(Qg4S(TJ(Tf ?`]9>9?>J(fJ(Nf hN``0hN`H(N-9-,(C 0Q3rS9-J9-kryr`J(-jS(0J(0f&R(-jR(0(09,cS(-J(6g S(6`|CD~3v9,(Sk09vyr3v`(0SJk09vyr3v`09vC8~2L`J(g\H(*C<f h*`(C 0C8~2R(*L`J(g ( ((( nt( cF(a2CD~0EPJ93g R2`R2E8~4`$CD~MJ~8Qg2J(`g`C@(Kg\DcJ(if(H(?g(c(H`"|i(f(Hg(c(H`B(i(H`B(iJ(gJ(WfV((KJf|W(?``<gX( ĜJg (H(?g<(B@H`,|Wp(H(EJk@H`B(HBS9(k`L//B$< a$"S9+j *+VNu<<?abNuaB9+B9)NuHx(Rz9.gCCR9..R<fCB(LNu<d@3C 8/MJ~<,_C :D3P`:B93C 8/MJ~<,_C :E3Px9*pQ2x89P3PNup( ?Nug"@Q@T ??Nug<2a|ZNug |'NuNu9?f?Nu(Qf.(C 0CD~2C8~2Nu|fA?96`|e?NuJ9gJ9fM@KBS9J9kZKJ-gS-J-gS-J-gS-B--Jf M@A8(S<eaQNu(aaTSB<dQNuprtvxz|~Nu) ] <  skNMu5W'];}hS@. xqke_ZUPLGC@<9520-*(&$"  1Qq MUSIC FOR THE GAME p W I C K E D q CCCCCCCCCCCCCCCCby Binary Vision CCCCCCCCWritten by Wally (HAGAR) Beben CCCCCCCCPress 1 to play Title Screen theme CCCCCCCCPress 2 to play bChoice Screen musicb CCCCCCCCPress 3 to play Ouija Board Hiscore tune CCCCCCCCPress 0 to stop music CCCCESC to return to desktop CCCCCCCCpTune Now Playing: q ,68::E.4H,8D$$*:5>>D284V882:<<8822>>d<<#26322*,,<IR`hlGfE^w /n Y       ſ}-}+}(})}+΁E@G@C@E@E@G@C@E@E@G@C@E@E@G@C@E@Ə9@;@;9@<>;<9E@9;B@;G;<9>;-/0)0/0/-+()0+/-/04-/02/0/-/-+ӿ}-|)+}+})}+ƛ<9@EC@CECA<>;9@;G;<;<;;<94ſ}-}2}/}0}/}-}/}-}-΁E@G@H@G@E@G@H@G@E@G@H@G@E@G@H@G@΁G@H@E@G@G@H@E@G@G@H@E@G@G@H@E@G@9;<>@;<;<>A@><;<;;<;9;<;9;<;<;949;<>;<;979ӟ}9|75}7΁E@G@E@C@E@G@C@E@G@H@G@E@G@H@E@G@H@J@H@G@H@J@G@H@G@H@G@E@G@H@E@G@×!!$(+(&&($!#$&)(-((&$&&$($# (  (  (  (  (   ş|$%"͋0.1.01.070.0.010.0.07Ѓ((Ё((Ё яHFCACDCAHFHIHFCFHIFDF˗} -}"0} 0} -}"+} +}+} +}"+}")} )} )}")} )} (} 4΁E@G@D@G@E@G@D@G@E@G@D@G@E@G@D@G@́$$$%$"$%$$%"$%"$$$%$+$)+$%$"$$%"̃|0.0.+.01.010101010.,.+,}+́ɟHH01540~0<=AC˗}(} (}"$} (}(} (}#} (}(} (}$$}!&}")} )}")} (}(} (}(} (ԁ|99999999999999999999999999999999|77777777777777777777777777777777ԁ|555555555555555555555555555555554444444444444444444444444444444}4ˏ@><>@9;<><>;<;9<><>;9;<;("   "" J   h X<b * .  4 && , "  "   N, 2  (  > t`|,O*o -`(HARTMANNS EASYACKERSCROLLER.PRG H?<NNTJ@gM1p,QHz?< NA\0<QL` Y Y! SEWER SOFTWARE PROUDLY PRESENT Y" DOC DISK NUMBER THREE Y# Y$ Y% aЭмRcBgNA&@.(m -$Sf(mE8*g*g(*g4۾eX`RBA|Q`RBA*SAQ`RBB+SBESCQQBG`ABJPga&m k -"mJg$ёBJAg<f `` m,HA -+P А+@+hШ+@+h?<NNTм|`A!@ @C|E T QN[HAaD?<NAT<Yg<ygLNuLAaAaAa |@@Hm@?< NA\Jg AB`ABg/?</-A/??<@NA ??<>NAXBg?<LNANuEDO YOU REALLY WANT TO SAVE THE FILE ?? (Y)ES / (N)O PRESS 'RETURN' TO SAVE ON THE DEFAULT DRIVE.OR ENTER DRIVE,PATH AND NAME FOR SAVING !! /?< NA\NuHB?< NA\M,M<@M,A mM , M, Kb`x~K?<MBVaTaTM, MіT~*J$zIM&VcB3B J Pg,aJ@g 2(`2(¼3 J``MF3@M8/?< NA\C Q (M*!VШ!@M.VL -Nu;^#-ٰ7璘CФe,P?yivP]yC$|G*7" ?? AP`"o5LG!aO +KvH$pC?sB( 4YGJ;|:ͅ6;,/jnuļ"}хݬh8u+YަU;yﯯm5WJ2/L9Bt熍~j=cMPW&-090\hG̔arP"^GS M\.VLHz?< NA\?<NATBgNANOT ENOUGH MEMORY FOR DEPACKING !!aJgDM V0/0MRV1V/?(aT _MRV1V?(aTNuM V0/0rBBaJ@g`SA|f1BNu3@g 0<`B@SG|gNu~RNuA."P I"h$I (AH"RRR!SfNu*o - ЭT(M*Sf*o mBeN% Ty#@^x4; m hEmY e_CT(. -->`OXZH3 Ί9,UVƤ;gEb9uJny ޒ7HAp- ߱`  T`cU&HH>7$$C`nH2 \ bE C<!, v 7t8[8󣄤n7K@p8P|rP~u gZIR_Τ9)@SXHPEΤ?)kEԇ%?) u)O _3ECEE@(u)G(2.SXHEԠ%85Q/xE԰G(幋Jpk _]H})$p~[8ħ %^)ùћHcJpEaR%85Q.N a#K#EԠ%85Q.]K )$pp1u#)N a#K]H})$pp.q)$ppЩNΌ㎺)áHqH8DV苩h8DVЋ@Jpk \!RJpk \+EԌ85Q.85Q.Ԏ%85Q/t*Ss+}] Њ$8ԤJpk _-N a#K.)$p|.8DbFRG(r.>8D Jpk _ UzTX_R:D|gP-p?HB|_{פČqpjNuJD([Ckv#Cuaԇ%8D ץe1?r:%דk161eH7AĴ:mzVVK2Y?~u%-Ja+%Dki[gRrZnmzB;a+%Dky[gR`%Īץol%d([gR2Z (ue-+%=Kk Y,%VܶΤؖ}JfQ!lK!-^JfQ!ܶ·[y-1 Y,$#0~t:8aZĿ %o`[J KH _փld="PA KKk0~@Jrz\5 KHAZYe$`פ2F,~lZP^HŖQ"Kw{ $ˇ2{ҐhmCӃh׹w$!Ht.9)Bu'ְHp(XHov(/ծ>9DD~p.uCD~p!B6B:pۤk[r7Jpe)ۣt%>y[nAܰ$T`'])&`GA_GY|+筣{d\+m,B?x,ƨfC)?Z (5PYAƪOUfxATZ jCU~Y%vPjp03Q& 0Xr/FhFgHmۤ[u:YD!nltnt)@`t:V iѺZ8n*U̷d[r E(, ,W뤆$;Z8<Hp_Rw ) %Ÿ5ҁ`B/!ctk4n:?/9 (a"D0gBΤ9)Q'-CbR%?) Z%?)~Gl D "DBPK܇%84}rSB8w:uЩN ~1!N rЩN΅㮅Jp_KnC>9)UR;uЩN |1cC>9)UR;xR:}4D^)ùs)á׮J{ANq O7HkQ'x8ԤJXHn Z%?$f7W7K0@uJz^QVain7AZ:TJF ,3w7%%HT̥W:8N:|0⸩=A5eq].xAIeS ™oɰ]`]k)4], ژ <( HJeQc l)jt4tX˵1)"̷dS.)!.rLl2 H-&xM M.Fl-$ L@maG^HeL M*fS.Т SaLW, ѣ`W. AL@K)t C6) ^(ѴeQc l RX˵1̦6S6a!nnJl43ͤæS?jey! G)keS&ނKAt6ᵿL ڝfk7֙Llँr> Hg;f =q5(;FŒ()!)hQG)]RB], ژdS- S.)4], ژ*0Š/`SI03ͤûB<,aM2\s\W#SA&xAH?26˵r MKLXHetlQ{SȦ]E0$™vXFLW,t+jcg)RT&&#oAHcvxX›>rLl)t_|SNmsr8q].+LrPh=LSkM7t[S)߆†.Gz\I\lHvJ|9QUt|9 6| 2Ph<Ҥrv<˵ iR: 8at.9AmLRI`]H:2@xSaH4v8 CIq4 ;c~p)4R@& H?@ݏ\)0A0A 7z ,FRbHb:$%2CGP)!/IW.*Z_HoetAᦩ&L# 7Vo/ypRah M#v L-I.+ `7fAI7yc_Ktvc+qS(`R@2 HQ) qF$++4}J\P~c4F&HF|U(|?H1es0 WlS|1?)4Hͅ;ؐ)!M!N]aiu=ḉq BzN%0)4^&d M:l(ݏ\)Ħ!-.ӽ.BK7ą:=tn͟u=ḉqǾ S2 t&B-BK7ą:=tnͅ;ؔ&S!{N$ M&ؐGٰIW , i?RBKL7c w)M!v=wb@o tzݛ 7c w)M!Nt/|HSFؠABI *CjNᎉ.Is)4R@!M89h?Sno83&Hxu- em"<$%v8#Φ0DxؽrA惱eD%9L$!m0SA.&IP$ـU6u`n"^ ;I1  kP$A1Q[=l$C !AMD+6r1<7D3fl6|FIAQ$Hv`XE^0x`Hdx`$@47fLPHFbfLPP6D 6oί0e D":@i " $Lٹ1:?z$L>nfOl/ol$ى*#H"^ل"TMD sCv|0EDFzlQ$aveOl"Hy̾oڀ EV$Lٹ2ʢDMDlˆg* +ŴI3/V!EV"^E *}$5>Y4imD3?T![7h!ك;k6$Bg|kP*5 D3flùfUxIllq>Y"%2ϥ=BeDۿLe tC&D]aJ߶} -`P$o FʍnoY6ͮF@4o҂m WFByx{~" "m.M S`F-cn1d!66]/=- [+lL9WtCAe[g˕ QyKo3eo߶e򤼀ű3Odm]B9cF~:~n^2Fq9YЛ~ʇO"o~`g! 7Tq"A ʄrƍ deUWFɑ, WmȻ69]7wH?p{`-Nto?vAlEV([`cdUl_E__7l&"dn!+:6D.W*(mٹbTlg4=ƌLq+nq&@P7M?/Qܢ7Tq"A 2gв"mO7("w"SyfMK=ȫF7|1O6/`6l[+l E12y|FB%7"ˡ6Ȕ{`&} -V[[`CſlȿBm P WF@כߴ&PۿXۖFl"/3{-nY߫~#cF C_MTв Y`3Odms6_*K [>A ߈lG/п6D۪D[{o3end {T1'(+6Ȫ߫wO rϥű5L["aid@@b+ny|/ 1#e[f7Tl&Crϥ of]O oǀN0ca -tlGt7d&x6F~7+*1dzD ~Bu5l%9r嗀"ܲ%m*]m[w_xMgMY[q)6D,^N{2^<IyueKEZ )vm<͟-ٰ&rl[~C{>UWFe9mU߫o~ME]>A ߈oՐ]Fɐ;لEw 7|ۿFϡ|/s7ܠ &7+o}/V߫r>hV߫gӖ9K/[d鏀uH>]+m@jb3[`MɺuH呺G6R0ceCcof$`ᭌl`Če70c| Îcpn@aNF@r=P6nSՍҌt@tӦ4鶄.4M:iNtӦލk3Ɍgeg6)Fwŀcf)BCLrG!rG"3dbl6 BP~|!ŋxY ks|XÑN8r,#'"8gxdȌpjQ WHAT'S COMING NOW ?? ........... YEP! YOU GUESSED IT , HERE COME THE TOTALLY UN-INTERESTING BUT NEVERTHELESS NECESSARY GREETINGS :- SPECIAL GREETINGS TO OUR NEWEST AND FOURTH MEMBER - D`:fS` Efv*oM( m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HN(Hx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz2?< Nq\pdAxr0XQ)K\NN>:VVnJrBjNuHz?<&NN\CAp$L Qp NBlJpNNpMN9@pdAr 0Q0tr N9lNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu &8*:EENuHn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNu ::/rI INB<,(k$/<??<?N`NA Jj ?a0NNrHrO INBLA NNrvN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?0<}N& ?<NNC`&?<NNT"@ C <}N`N 2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN"l`dpNAtrdJhk\QpaNH ld$l`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgN|AH@B pNA NuApNN$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNp"_0HqNp"_0HqNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNVWHNuNVVHNu Ihd*N$E$RR@H`2QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?N$E$R`QˈN ENup`(* 0(iN$E 4R`Q$D 4R`QˈN DN ENua NuN IHPg"B  g &gN4JBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNRB0 b b瀀`RB0 fрd`0H 0 0H@Nu?<,NATANpN?<*NATANp N"H2X@NH:0H@?NH:AANF"H2@NH.0H@NH.YdNFHANFHRp` HRpJQfpNNq Y Qfd ЀЀNuNN,$_& Y Qf d փփABJk 0NNNb$_& if"QdփփHRNNN~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@NdL"2` NqR YEjrd0` SjN YQf "_Nq*eNN*< NqbІSGfN~$_N&ЀЀЈN" KC`e N`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNuNH Nu0,p2,rR@RA Typed by SEWER POSSUM for the SEWER DOC DISC series. Instructions for the modification of an internal D/S drive (ST) These mods allow you to select either side 1 or 2 from a Double Sided format disc. It's possible to put 2 protected discs (say, TERRORPODS disc A & B) on a single D/S disc and change from side A to B at the flick of a switch. This mod literally halves the number of discs needed for protected titles. The modifications themselves are quite simple. You can either cut into the original 34 way cable or with a little more effort, make up a short extension cable and do the cutting on that! What you need then are a male and female 34 way IDC connector, a short length of 34 way ribbon cable (2 inches should be fine) and a single pole double throw switch. These should be available from places like Dick Smith's, although male IDC connectors are apparently difficult to come by. Some people have joined 2 female IDC's (using cut down resistor legs to join them). Make up the cable as illustrated on the diagram, with a male IDC on one end, a female IDC on the other. Cut and modify the extension cable as shown, connecting wire 32 to the switch and wire 33 to the switch earth. The new extension cable will slot into the drive, the existing 34 wire cable slotting into the extension cable. Lastly, run the switch unit out behind your machine (there's plenty of little spaces to squeeze a couple of wires between) and mount it semi-permanently on the rear of your ST. When the switch is in the normal position, the drive works as per normal (that is S/S and D/S). Flick the switch and the drive will read and write to side B only! Sewer Possum wpwU33ss77w????0000??0000?? 0000??0000????0033????0000??0000?? 0000??0000????003300000003030033<<0<0<33  0000000000000000003300000003030033<<0<0<33  00000000000000000033000000????3030030300 303000????000033000000????3030030300 303000????00003300000003033300000000  <<000000<<330 0 00000003033300000000  <<000000<<330 0 ??00000000000033000000000000??00000000000033000000000000001133000031313300110033óó33``6363000030300000cc0033``3`3`33330033336060660033003333333030f3f300003030003333000033333333606000000033pp3030ƳƳ00003333000031316600ss33ss00cc11``003030000033003300333030003c3c7777003333333300333c3css000030300000cc003300``3`3`33330033337p7p0077pp330033331133333311000000313100001100``111100``0033000033``003300331133000033cc``ð33333300330000000033cc``3333330000cc00ccss0000``pp33003333330033330033``pp333300``1133110033113311``aa``aa?? gg ```` ``      njnj """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "           """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " ``  @@ @@ GGÃaa """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " FFff FFaa FFaa FFaagg """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " FFff00 GGÃ`` @@ GGÇgg """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " FFaaff FFfafaff FFgggg FFffff`` """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " FFaaƃ GGcc @@ @@ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " @@ @@ @@ @@ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " ``    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "     """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  00 @@   ??0000``0000``330011330033ð303000cc``sss0s03333cc0000pp00303000``3333pp1111``3311111155??;;1111115511??񙙙?? aa 񁘁     񙁙aaaa ففaa0000ٰaaaa aa````aaaa XaXa0000aaaa ``aaaaaa ``aaaaaa ``aa``   110060603030  00007700|||||||||||||||||||||`|`7p7p3030666666666666666666666 6 1100ccccccccccccccccccccc`c`  |||||||||||||||||||||`|`666666666666666666666 6 ccccccccccccccccccccc`c`  ~~??yyxxxxxxxx||xxxxyy͌͌00000000͌00000000͌??yy0000xx0000ͬ 0000 000000000000yyx0x0xxxxxx||xxx|x|00yy??INSIDE AEGIS ANIMATOR by John A.S Skeel & Elizibeth Vanture A Quick Tour Besides the main menu bar at the top ,the main screen of animator ST has a window in the upper left corner.This window is the fast menu.You can put it away at any time by using the close box.The close box is the small square in the upper left corner of the window.By clicking the mouse in this box the window will be removed from the screen.To bring the fast menu back at any time,select the fast menu in the menu option. The fast menu is an icon driven version of the menu bar.It allows you to perform the most often used tasks quickly. Pull down the menu choices (put the cursor on the menu in the main menu bar).Here are the options you will use most often.They include Undo and Fast menu .The latter as described before displays or removes the fast menu,and Undo undoes the last action you performed.Its your 'oops ,I didn't mean to do that ' selection .The rest of the selections perform tasks such as hiding or displaying the help bar,starting over (new script),loading saved scripts or other files (Storage),splicing animations together (storyboard),control of speed and color (time color) ,and displaying the amount of memory available (status).The last option in the menu is (quit) which exits animator and returns you to the desktop. To the right of menu on the menu bar is make.The submenu block beneath it contains the choices for creating the different shapes you will use to produce animations.In the next section are filled and outline which make your shapes either filled or outlined as you draw them,and line which draws lines and must be used in conjunction with polygon .In the next section are two selections that allow you to make exact copies (clone),or remove an object from the animation (destroy).In the bottom section is an either/or choice of insert or exchange .If you choose exchange,new objects will replace old objects;otherwise ,insert places new objects on top of old objects. The next choice to the right is move.This group controls the different methods of moving an object about the screen .It includes dragging ,rotating ,changing size,plotting a path,changing colour ,choosing weather a shape is filled or outlined,and making metamorphic changes (changing the shape). To the right of move is pick .This menu choice controls what items or proportions of items on the screen you want to affect.For example ,from the move menu you may choose big/small. The pick menu determines which items on the screen will change size .You can choose a single object or multiple objects ,or just a portion of an object or a segment. The next selection is time .The choices under time perform fuctions like moving to the next tween (more on this later) ,replaying the animation in a continuous loop.The last three items are preferences.The first ,ghost mode ,displays the entire animation in outline form only,this is useful when objects are behind other objects.The other choices ,at end and at start allow you to choose whether to view a tween as it exists at its beginning or after it finishes. The last choice on the menu bar is color.It allows you to choose the colour you will be working with when you create the different objects on the screen.To choose a colour put the cursor on it and press the selection button.If the fast menu is on the screen you will see the palette icon will change to the new colour. There is one more place to visit before we end the tour .Pull down the menu options and choose storyboard.The screen will change to display six windows and the help bar will read storyboard. The first window should be highlighted .This is the animation we just came from .It should be empty like the others unless of course you made something .These are the six animations you can have in animator ST at the same time (providing you have the memory ).From here you can cut and splice animations together and then choose the best ones to piece together in a final version. Note that the cursor is in the shape of the word into.This is the function you are currently using.To enter any animation or a blank script,point to the one you want and click the selection button.To return here choose storyboard from beneath menu again. You will see only three menu selections in this portion of the program .Menu contains functions that allow you to check on available memory ,or exit to the workbench .About ani has some background information on the program.The third menu choice is edit which allows you to cut,splice and delete animations.The activate option sets the animations in motion so you can watch the different scripts playing side by side. To get back to the main part of animator ST ,place the cursor (it should read into) on the first window and click the selection button. The fast menu As mentionend above,the fast menu is a short cut method of choosing tools without having to pull down the menus.To the first time user its a little confusing since most of the tools are unfamiliar .As you use animator ST more and become familiar with the icon shapes the fast menu becomes easy to read. The most important part of the fast menu to the beginner is the question mark in the upper right hand corner.this is the fast menu help function .By clicking on the selection button while the cursor is on this icon you activate it .The cursor will change to a question mark.Move the question mark to any item in the fast menu and press the selection button again .The help bar at the bottom of the screen will display a one line description of the function.For example ,select the question mark and then select the camera icon in the lower right corner of the fast menu window.The bar at the bottom of the screen should now read advance to next tween.Selecting this icon is the same as choosing next tween in the time menu selection. When a tool is in use or an option selected it will be  highlighted in the fast menu .the palette icon ,which is used for accessing the colour control dialog,always displays the current colour .To change the colour ,use the cursor to select a colour from the colour bar at the bottom of the fast menu window.The palette will change to that colour. The fast menu is a standard ST window so it can be manipulated in the usual ways.It can also be removed from the screen by clicking on the close box. Making Shapes Lines Lines are objects too.They use the same functions as any other shape created with animator ST. To create a line with the currently chosen colour: 1.Select polygon and line from the make menu. 2.Move the cursor to where the line should begin and click the selection (left) button .If you decide you don't want a line ,click the menu (right )button . 3.Move the cursorc to where you want the other end of the line and click the selection button again. 4.If you want another line radiating from this point simply move in that direction .The cursor is still drawing lines .If you're done click the menu button. Polygons. There are two kinds of polygons availible ,filled and outline.Filled simply means a solid shape and outline is a series of lines that connect all the points of the polygon.A box made of lines consists of four different objects (each line) but the polygon is one object. To make a polygon with the currently selected colour: 1.Select polygon and then either filled or outline from the make menu. 2.Move the cursor to where you want the first point to be and click the selection button. 3.Move the cursor to the next point and click again .Continue in this fashion until you have the shape you want. 4.When the shape is complete click the menu button. Circles. Circles are really polygons made of multiple points.You can add more points to a circle to smooth it out if you desire.Like polygons ,there are two kinds of circle filled and outline. To make a circle in the currently chosen colour: 1.Select circle and then either filled or outline from the make menu. 2.Place the cursor where you want the centre of the circle to be. 3.Hold down the selection button and drag the cursor away from its centre .A circle will grow under the cursor. 4.When the circle is the size you want release the button. Stars. Stars come in two types filled and outline. To create a star in the currently selected colour: 1.Select star and then either filled or outline from the make menu. 2.Place the cursor where you want the centre of the star. 3.Hold down the selection button and drag the cursor away from the centre.A star will grow under the cursor.You can adjust the way the points are turned by dragging the cursor in a circle.The star will rotate on its centre as you do so. 4.When the star is the size and in the position you want it release the button. Blocks. Blocks are solid images known as rasters.They are not like the other objects in this menu .They dont use the more advanced move commands though they can be pulled about the screen .they have one important advantage :They draw faster on the screen then regular polygons .Speed is important in keeping an animation smooth.Use blocks for patches of colour that you may need or square objects that do little movement. To create a block in the current colour: 1.Select Block from the make menu. 2.Place the cursor where you want the one corner of the block to be. 3.Hold down the selection button and drag the cursor to the opposite corner,A block will grow beneath the cursor. 4.When the square is the proper size release the button. Clone and Destroy. There are two other functions that affect objects as you create them.The first,Clone ,allows you to make exact duplicates of objects you have already created and the second destroy,removes them from animations present and future. Clone To clone an already created object: 1.Select Clone from the make menu. 2.Place the cursor on the object you want to clone .Click the selection button once and without releasing the button ,move the cursor away from the object .You will find that the cloned object will move with the cursor.Place the object where you want it and release the selection button Destroy To remove an object from the current tween and any succeeding tweens you would choose destroy.It does not affect the object in any way previous to the current tween. To destroy an object: 1.Select destroy from the make menu. 2.Place the cursor on the object you wish to remove and click the selection button .The object will become outlined .To cancel the destroy command ,click the menu (right ) button.To accept the command ,click the selection button again. Insert and exchange. The last two items in the make menu concern what happens to objects already on screen when you call up new objects from storage.The first ,insert,allows you to place a new image on top of the old image without disturbing the old image .The second,exchange,replaces the old image with the new one.For example ,if you where creating an animation of a juggler with images from a paint package ,you would need different arm positions for the juggler .When you called up a new arm position from storage you wouldn't want the previous arm position to remain ,therefore you would use the exchange. Insert To insert an object: 1.Select insert from the make menu. 2.Load the new object from storage. 3.Position the frame and release the selection button-nothing is destroyed. Exchange To exchange an object: 1.Select exchange from the make menu. 2.Load the new object from storage. 3.POsition the frame and release the selection button-the object directly underneath is destroyed. Movement. The movement functions are what make Aegis Animator so special.They provide a variety of ways to move objects about the screen and change their shape colour and size. Movement in Animator ST is metamorphic .In other words ,the shape you are changing flows from its original form or position to the new shape or position during the span of the current tween. Some functions like rotate will record how many times you rotate the object about its centre,but most functions are only concerned with the beginning shape or position and the ending one.They then shift from one shape to another when the tween is played. As you read this ,try this different functions and experiment to be sure you understand how they work.(before you learn the following functions ,make sure that polygon is turned on in the main menu.) Sideways The sideways function is one of the easiest to grasp and use.When in use the cursor becomes a hand and you may then drag objects anywhere about the screen with it.It is even possible to drag them off the screen. To move an object sideways during the current tween: 1.Select sideways from the move menu. 2.Place the cursor on the object you wish to move. 3.Hold the selection button down and drag the cursor in the direction you wish the object to go.The object will follow the cursor. 4.When the object is as far as you wish it to move during the current tween release the selection button. The object will move fast or slow depending on the distance it has to travel during the tween.You may move the object several times if you like during the current tween.The function is only concerned with the beginning and end positions.The object will move between these two points when the tween is played no matter where else it has been moved during the tween creation.You can also move several objects,one at a time ,and then when the tween plays the all move at the same time. Into screen and out of screen To understand the concept of these two related functions imagine a series of planes .Objects reside on these planes based on the time (which tween) they are introduced to the animation.So if object B where dragged across object A(which was created first) object B would be on top.The into screen and out of screen functions allow you change this order. You move into screen to move objects behind others ;think of it as moving objects deeper into the screen,away from you.And of course you use out of screen to move objects in front of others;think of the objects moving towards you. The into screen and out of screen functions have another parameter not listed under the move menu.It is called perspective and it is found in the fast menu .This function makes the object bigger as it moves out of the screen or smaller when it moves into the screen. To move an object in or out of the screen during the current tween: 1.Select the function key from the fast menu ,and click on in or out in the fast menu.A dialog box will appear with choices to turn perspective on or off,and to choose into screen (in) or out of screen (out). 2.Make your choices with the selection button of the mouse and then press the menu button to get back to the fast menu. 3.Click in the close box of the fast menu and you are ready to move your objects. 4.place the cursor on the object you wish to move. 5.Hold down the selection button and drag the cursor in a circle around the object .The object wont appear to move until you release the selection button.If the object didn't move ,repeat the process until it does. The more you drag the cursor around the object,the further forward or backward the object will be moved.In other words ,if you moved an object very far in ,you would have to circle with the cursor even more to put another object behind it. An alternative: 1.select into screen or out of screen from the move menu. The best way of understanding this function is to try it ,so create two objects so one partially covers the other.Now play around with the into screen and out of screen functions ,moving the two objects in front of and behind each other. Rotation There are three types of rotation :rotate,x rotate and y rotate.All three types use a centre around which the rotation occurs.This centre is created first and then the object is pulled around it.A variety of different things can happen depending upon which type of rotation is used and where the centre is placed. To get an object to turn like a wheel for example,you would place the centre in the middle of the object itself .But to make the object move around in a circle you would place the centre to one side and the object would spin around it . Rotate This function is rather like the sideways function.The movement only occurs in the plane the object currently occupies.The manner in which the object moves depends upon where the centre is placed .AS described above,if it is placed on the middle of an object ,the object will spin like a wheel. To rotate an object in plane in the current tween: 1.Select rotate from the move menu. 2.Place the cursor where you want the centre of rotation to take place. 3.Click the selection button once.To cancel the command ,click the menu button.A set of crosshairs will appear at the centre of rotation. 4.Hold down the selection button and drag the cursor in a circle.The object will rotate around your chosen centre. 5.If you want to rotate the object exactly 360 degrees,a marker is left where you cursor started .Just bring the cursor back to that marker. Picking a particular object to rotate can be tricky if there are many objects on the screen .Animator ST rotates the object whose centre is closest to the cursor;therefore ,which object you rotate depends upon where you place the cursor. 6.When you have rotated the object as much as you want in this tween,release the button. The objects speed of rotation will depend upon how far it must travel during the current tween.A greater distance will produce faster and more broken animation. This function will remember the number of times you rotate an object around a centre during a tween.Unlike most of the movement options ,rotate does not move from a beginning point to an ending point but remembers the entire movement and replays it. X rotate The x rotate function will move an object around a horizontal axis.If you place the axis on the object ,it will revolve as if it where on a spit.If you place the axis some distance above or below the object ,the object will revolve as if it where on the end of a spoke;the further away the axis ,the longer the spoke will be. To rotate an object on its x axis in the current tween: 1.Select x rotate from the move menu. 2.PLace the cursor where you want the centre to be. 3.Click the selection button .If you want to cancel the command click the menu button. 4.Move the cursor onto the object you want to rotate.Hold down the selection button and drag the cursor to make the object rotate . 5.When the object is where you want it to be at the end of this tween release the button. Y rotate This function is the same as x rotate except that objects are moved on their vertical axis.The same rules apply as with x rotate. To rotate an object on its vertical axis in the current tween : 1.Select y rotate in the move menu. 2.PLace the cursor where you want the centre to be . 3.Click the selection button .If you want to cancel the command click the menu button. 4.Move the cursor onto the object you want to rotate .Hold down the selection button and drag the cursor to make the object rotate. 5.When the object is where you want it to be at the end of this tween release the button. Big/Small The big/small option is concerned with the size of an object at the beginning of a tween and the new size at the end.Animator ST moves gradually from one to the other during the length of the tween when it is replayed.If Big/small is used repeatedly on an object during the same tween it will try to balance the different commands. Similar to the rotate functions ,big/small has a centre that is first located on the screen.The manner in which an object changes size depends on where you place the centre.PLacing the centre in the middle of the object has the effect of keeping the object in place during its shift in size.Placing the centre to one side of the object will cause the object t move as it changes. When you are shrinking an object it will always move in toward the centre ,and when enlarging it will move away. Also,if there are several objects on the screen ,the one whose centre is closest to the cursor is the one which will change size. To shrink an object in the current tween: 1.Select big/small from the move menu. 2.Place the cursor where you want the centre to be and click the selection button. 3.Now move the cursor (no buttons )a little to one side of the centre. 4.Hold down the the selection button and drag the cursor toward the centre.The object will shrink in size. 5.When the object is the size you want release the button. To enlarge an object in the current tween: 1.Select big/small from the move menu. 2.Place the cursor where you want the centre to be. 3.PLace the cursor where you want the centre to be and click the selection button. 4.Drag the cursor away from the centre and the object will grow in size .Move the cursor back toward the centre to shrink the object. 5.When the object is the correct size release the button. The best way to understand how placing the centre affects the result is to try it .Make a shape and try changing the size in different ways by placing the centre in various locations. Along path Objects can be given a specific path to follow during a tween.You do this by drawing the path n the screen made of points and lines.Its not necessary to start the path at the objects current position.The object moves along the path from point to point relative to its starting position. If you issue several path commands to an object during the same tween along path will try to balance them.For example,suppose you have an object at the top of the screen in the middle.If you issue two different commands say one down screen to the right,and the other an equal distance down the screen to the left,when you replay the tween the object will move straight down the screen to rest in the middle of the screen on the bottom. The along path function is useful because it lets you see exactly whats going on .It also allows you to do things like moving objects off the screen,and if you wish ,bringing them back. To move an object along a path in the current tween: 1.Select along path from the move menu. 2.Move the cursor onto the object you wish to move and click the selection button once.The object will be outlined to indicate it is selected.Also the starting point of the path will appear. 3.Move the cursor in the direction of the first leg of the path.When the line is correct ,click the selection button again .When the tween is replayed ,the object will move along a line like the one you just created relative to its starting position. 4.Now move the cursor along the next leg of the path and select the next point.When the path is complete,click the menu button. Change colour You can change the colour of an object during any tween in an animation.The currently selected colour under the colour menu is active in the paint brush when you select change colour from the move menu.To change it simply select a new colour from the menu. When you change the colour of an object ,the the change occurs at the beginning of the tween.For example,suppose you move an object about the screen and then change its colour during a single tween.When the tween is replayed the object will change colour first at the beginning of the tween,and then it will execute the move commands you gave it. To change colour of an object in the current tween: 1.Select the colour you want from the color menu. 2.Select the change colour from the move menu. 3.Place the tip of the paintbrush cursor on the object you wish to change and click the selection button. Make Filled,outline,or line There are three basic types of objects in animator ST :filled ,outline and line.When you create an object by using on of the commands under the make menu,you choose one of these types.The move menu gives you the ability to change the originally chosen type. Like change colour ,changing the type of object occurs at the beginning of the tween in which it is used. To change the type of an object in the current tween: 1.Select either make filled,make outline,or make line from the move command. 2.Place the cursor on the object you wish to change and click the selection button. Loop and Hook Loop and Hook are great!They are two features which make Animator ST unique and powerful.They allow you to change the shape of an object by moving the different points that make up the shape .You can even add new points to the object to further adjust its shape. Loop is like a lasso which you can grab points with and drag them to where you want them .The other tool,hook,Is similar to loop but it can also add or delete points .For example ,if you want to stretch one side of an object in a particular direction ,hook will pull the line that makes up that side and place a point in the line allowing it to bend. These metamorphic functions are concerned with how an object is shaped at the beginning of the tween and what it is changed to .Any manipulations that occur in between are lost.When the tween is replayed ,the object ill shift gradually from its original form to the end result.For example ,suppose you started with a triangle ,and using loop and you really wanted a pentagon,and so changed it into a square and then changed it again .When the tween played ,the triangle would shift slowly into the pentagon. To change the shape of an object in the current tween: 1.Select loop or hook from the move menu. 2.Place the cursor on the object you wish to change and click the selection button.The object will become outlined and its connecting oints will be visible. If you choose loop: 3.Place the cursor on the first point you want to change and hold down the selection button.Now drag the cursor in the direction you want to go and the point will follow. 4.When the point is where you want it release the button .Repeat this as many times as you need.When the shape change is complete,click the menu button. If you choose hook: 3.You can place the cursor on a point or a line .Place the cursor where you want to change the shape and hold down the selection button.Now drag the cursor in the direction you want to go. 4.When the shape change is complete release the button.Repeat this as many times as you need.When you are finished,click the menu button. The hook can also delete points from an object.To do this: 1.Place the hook cursor on the point you wish to delete. 2.Drag the point to the next nearest point.The two points will become one point. 3.Release the button. Any point newly created with the hook will not delete points it encounters until the selection button action(hold down)that created it is completed (releasing the button).This makes it easier to use the hook when working on small polygons. Combinations You amy combine as many movements together on a single object as you like .The more move commands you issue within a single tween however,the more complicated and possibly erratic the movement of the object.In most cases ,animator ST will try to balance all of the commands within a single tween .Sometimes the result may not be what you expected. The way in which you combine movements has a lot to do with the outcome .Choosing the proper order in issuing commands can play a big part.For example,there is an object we wish to move left to right on the screen and at the same time have it spin on its axis.If you choose sideways first ,and then rotate ,the object will swing low ,close to the bottom of the screen ,as it moves .This is because Animator ST is first moving the the object to the right and then rotating it a fraction ,and then moving it to the right ,and rotating a bit more.This type of combination forces it into a semicircular path to reach the end position. If you were to choose rotate and then sideways the result would be quite different .The object would travel on a nearly straight line left to right and spin in place as it travelled .This is because the process is reversed .Animator ST spins the object a fraction and then moves to the right ,spins a little more ,and moves it to the right .The rotation process has no chance to move the object off the straight line course when animator St calculates its new position. All of this may be a much more complicated explanation than you are interested in .The only real point behind this is - experiment.If a combination of movements does not produce the result you want ,try reversing it or using different tools.After a while familiarity with the subtle differences in each tool will produce the right combinations. Sometimes Move combinations have to be issued to maintain the proper perspective .Animator ST can be a little approximate in maintaining a shape.Rotating a shape for example can sometimes distort the image.To bring the image back into the proper perspective you can use loop and hook .The end result when the tween is replayed is the rotate and metamorphic functions combining evenly to produce a perfect image. Move information on this later. Pick. The pick menu gives you the ability to perform all of the actions described earlier on more than one object at a time or on only a potion of an object. If you want to rotate several objects together ,you need only choose polygons from the pick menu before you choose rotate from the move menu.This would allow you to rotate the different objects around a common centre with one command. The point and segment functions let you perform actions against portions of a single object.You could grab two spikes of a star for example ,and rotate them while leaving the rest of the star untouched. Pick considers all objects (lines,stars ,circles ,blocks ,cels and masks) to be polygons.This is the only situation in which raster objects (blocks,cels and masks) are included as polygons. Point This function restricts any move commands to a single point of an object. To change a point in the current tween: 1.Select point from the pick menu. 2.Select the move command you wish to issue from the move menu.If the command requires a centre to be placed first (as in rotate),locate the centre where you want it to be. 3.Place the cursor on the point you want to change and hold the selection button down.The move command will now operate in the normal manner. 4.When the point is where you want it release the button. Points This is similar to point except that multiple points can be chosen .The points do not have to be on the same object.You may mark as many points as you want ,and the action will be performed. To change multiple points in the current tween : 1.Select point from the pick menu. 2.Select the move command from the move menu.If the command requires a centre to be placed first ,locate the centre where you want it to be. 3.Now place the cursor on the first point you want to change and click the selection button once.The point will be highlighted to indicate that it is selected. 4.Place the cursor on the next point to change and select it.Continue to do this process until you have selected all the points you wish to change. 5.Click the menu button to finish.The move command now functions in the normal manner. Segment. The segment function operates on a portion of an object.The command works similar to the points function except a segment of the elected polygon becomes movable. To move a segment of a polygon in the current tween: 1.Choose segment form the pick menu. 2.Select the desired move command from the move menu. 3.Place the cursor on the object to change and press the selection button. 4.Now place the cursor on the beginning of the segment you wish to change and click the selection button again.A marker will appear. 5.Place the cursor in the next position relative to the first marker to indicate the segment you want.Hold down the selection button and drag the polygon segment in the direction you wish to go. 6.When the shape change is complete release the button. Polygon If you have been using animator ST as you read this manual then you are already familiar with this option.It allows you to perform a move command on a single object such as a polygon.This is the default setting for pick when animator ST program begins.You may also use this function on raster objects (cels,masks,and blocks) To change a single object in the current tween: 1.Select polygon from the pick menu. 2.Choose the desired move command.The command will operate directly on the object. Polygons Moving multiple polygons with a single command is similar to moving multiple points.Commands with a centre such as rotate will move all the objects selected around a common point relative to their current position.The command is not limited to items you created with the make polygon function.Any object (line ,star ,circle.etc.) is considered a polygon and may be manipulated with this command. To move multiple objects in the current tween: 1.Choose polygons from the pick menu. 2.Select a move command from the move menu.If the command requires a centre to be placed first (as in rotate),locate the centre where you want it to be. 3.Now place the cursor on the first object you want to change and click the selection button once.The object will be highlighted to indicate that it is selected. 4.Place the cursor on the next object to change and select it.Continue this process until you have selected all the objects you wish to change. 5.Click the menu button to finish.The move command will now function in the normal manner. All This version of the command chooses everything existing in the script including objects located off the screen.It does not affect paint pictures being used as backdrops. To change all objects in the current tween: 1.Choose all from the pick menu. 2.Select the desired move command.The command will function in the same way as with a single object,however,all the objects in the current tween will be affected. Time and Colour Tweens and Time Time in the animations created with animator ST is controlled through a process known as tweening,tweens can be thought of as segments of time in an animation.This is a rough analog however because the time of a tween can be adjusted.It can take less or more time to play out on the screen. As an example of how tweens are used ,consider an animation in which a ball bounces across the screen.To create the script you first create the ball,say in the upper left hand corner of the screen.Next,the ball is pulled downward at a slight angle to the bottom of the screen(the floor).This is the end of the first tween,and the command next tween would be chosen from the time menu.Now the ball is pulled upward again at a right angle.This is the end of the next tween. The natural bouncing of a ball has a slight pause in it at the top of a bounce where the upward momentum and the pull of gravity have a half second battle.To recreate this pause you need an extra piece of time at the top of the bounce.If you selected next tween and pulled the ball into its downward movement right away the effect would be rigid .By inserting an extra tween at the top of the bounce you have more time to play with. In our ball example ,the third tween has the ball at the top of its arc.To add just a bit more realism you might drag the ball just slightly to the right in the same way a real ball moves at its apex.Now the fourth tween is begun and the ball is pulled downward again to the bottom of the screen. If the sequence is replayed ,the ball will seem to bounce but it will hover for a long time at the top of the arc.This is because all the tweens are exactly the same length of time .To achieve the proper effect ,the third tween (ball at top) needs to play faster. Under the project menu is the time function.Selecting this option displays a dialog window with several gadgets on it.These are the tools that allow you to control the speed of the animation.First ,a quick tour and then we will return to the bouncing ball. In the lower right hand corner is a question mark.By clicking on this you can get help dialog on any item in the menu.When selected the cursor will change to a ? ,then simply place the ? on any item and information will be displayed in the help bar. The first line of the dialog contains a slider labelled which tween and a box displaying numbers (a tween counter).These gadgets allow you to jump to any tween in the animation.Theoretically you can have as many as 32 000 tweens in a script;however ,the number of tweens is limited by available memory and by the tween counter which has an upper limit of 9999.The tween counter has eight buttons .The top four advance you through the animation and the bottom four back up.Starting from the right moving left ,the buttons jump one tween,then ten,then a hundread and a thousand..To pick the tween you want ,click on the appropriate arrow with the selection button ,or if you want to save time ,drag the slider while holding the selection button down. The next line in the dialog is tween time which also has a slider and a numerical display box.This controls the length of time which the current tween takes to play.If you increase the time ,the tween speed is going to be slower;therefore ,dragging the sider to the right makes the tween play slower .There are eight buttons for the numerical display box.The time units are sixtieths of a second ,and the upper limit is five seconds (a display of 300).For example ,a display of 0060 would equal one second ,a display of 0001 would equal 1/60 of a second.If you click on the top button farthest to the left ,you will get the maximum time display (0300) ,and if you click on the bottom button farthest to the left,you will get the minimum time display of (0000). On the next line is global speed which controls the speed of the entire animation .It also has a slider and a display box with eight buttons .Starting from the right ,the buttons jump one ,ten ,one hundred ,and the last one gives you an upper limit of (0160) if you click the top one ,or the lower limit of (0001) if you click the bottom one. The black box at the top displays the absolute time for the animation.For example ,if you at tween #1,it will show the time taken for that tween to play;in tween #2 it will show the combined time for tweens #1 and #2,and so on.The units of time ,starting from the right are sixtieths of a second,seconds and minutes.Changes made to either tween time or global speed are reflected in the time display. The arrows on the bottom line are shortcuts,some with features not found else where in the program .Clicking on the arrows with the selection button will activate them.The single right arrow will advance to the next tween ,and the single left arrow will go to the previous tween.The double right arrows will play the animation forwards ,and the double left arrows will play it backwards .The triple left arrows will go to the first tween. Now let us go back to the bouncing ball example : In order to smooth out the animation,the third tween is needed to play out faster.By using the which tween buttons ,the third tween can be displayed on the screen .When the box reads (0003) ,the third tween is the current tween and tween time indirectly controls its speed.By grabbing the slider with the cursor and moving i to the left,the time of #3 is reduced which increases its speed. Now if animation is replayed ,the ball more closely approximates the bouncing of a real ball.The animation can be perfected even more by increasing the global speed a little and then adjusting the time of each tween to get just the right effect. Colour control There are many different effects that can be accomplished with the use of colour changes in an animation.A sunrise can be simulated by slowly fading all the colours of the palette from dark to light across several tweens or a camera fade out can be accomplished by the same process in reverse.A backdrop made in a paint program can have a stream that appears to be flowing by cycling the colours of the water ,or a water wheel that turns by alternating the colour of the spokes. Aegis Animator St gives the full range of colours available to the atari ST with any 16 colours available on the screen at the same time.The colours can be shifted gradually or changed instantly by the use of different tools. There are three locations for colour commands in animator ST.The first is the colour palette located under the colour menu.Also the move menu has a change colour command for changing the colour of objects in an animation,and under menu there is a colour command that displays a variety of different colour control tools. By selecting color from menu a dialog window will appear with a colour bar across the bottom and several gadgets on it.The gadgets that dominate the left hand side of the window ontrol the actual shade of a colour.By manipulating these tools you can produce of 512 colours. There are three letters at the top displaying numbers.To the left of each one is a letter;r,g, and b.These stand for red ,green and blue.The numbers may range from 0 to 7 and describe the amount of each colour to blend into the mix making the currently selected colour.The current colour is the one with the crosshair in the colour bar at the bottom.If the numbers in r and g were set to 0 and b where set to 7 the selected colour would become a very intense blue.To get a yellow you would set b to 0 and r and g to 7. These boxes each have a button above and below in the same manner as the tween control device in the time window .The button on top advances the numbers while the one below subtracts from the total. Below these gadgets are three sliders.They also control the actual shade of a colour.In fact ,if you play with the r-g-b controls you will notice the slider controls moving in response to the changes you make.This is because they are duplicate controls.They're just another way of doing a similar job .Sometimes it is easier to use one set of tools for a particular task.Instead of controlling the amount of red ,blue and green however,the sliders control the hue,light and saturation. The hue is the particular shade in the spectrum,light blue for instance.Light ,adjusts the black and white components of the colour or the brightness.Moving the slider to the left will darken the colour until it at last fades to black while pulling it to the right will brighten the colour eventually turning it white. Saturation can be best described as the vibrancy or intensity of the colour.Moving the slider to the left will produce muted or softer tones while moving it to the right will create bright ,almost day glow colours. In the upper right corner are three functions not directly related to colour control.The first is the help question mark as described in the time window. The next item to the right is undo.This function will undo the last operation you performed in the colour window.Its there for the inevitable mistake. The last item to the right is the camera icon.Pressing the selection button while the cursor is on this will advance the current tween by one. Below the camera are five colour functions .They perform different actions such as cycling colours through an animation,creating a range of colours in the palette,or fading a range of colours to create a blackout. All of the commands except wipe use a range selector located just above the colour bar.The selector is the line with arrows on each end.The arrows indicate the beginning and ending colours of a range,and the different commands perform actions against the colours located within the range.To adjust the range ,the arrow may be moved by holding the selection button down while the cursor is on an arrow to the desired position. If you drag the arrows past each other you will notice they flip in to point at each other instead of away.Any functions performed with the colour range will now occur in reverse of its normal order. A note about the color bar The colour bar and colour menu are made up of 16 different colours.Imagine the boxes containing the colours as ink wells.Each ink well has a number.An object created with a certain ink well may be blue,but with a few adjustments of the colour controls that well can be changed to red.The object created with that particular ink well would also change to red.This is because animator ST sees objects as having a certain colour number.You can change that number with the change colour command from the move menu or you can change the shade of the actual well itself with the commands in the colour window. The functions described below act in terms of colour numbers.Colour changes affect anything displayed weather it is a backdrop loaded in from a paint program or an object created with animator ST. Cycle The cycle command allows you to cycle different colours in an animation.For example,you may want objects on the screen that are currently green to slowly change to red during a particular tween,or portions of a backdrop,normally static ,to appear to move. Cycle will evenly fade from the first colour to the next chosen colour across the life of a tween.If many colours are chosen during one tween ,animator ST will try to display them all.If the time span is very short and the number of colour changes great then the changes will occur very fast. To cycle colours in the current tween: 1.Select colour from the menu. 2.Adjust the range selector to reflect the series of colours to cycle.The colours will move one to the right each time you click on the cycle command.So if your colour range is red,green,yellow ,blue,and you click on the command all red objects will shift to blue,green,etc. 3.Click the selection button on cycle. 4.If you wish more than one cycle during the current tween click the command again.If you do not wish to cycle a different set of colours during the current tween adjust the range selector and choose the command again. 5.If you wish the cycling to continue across multiple tweens ,choose next tween by clicking the camera icon ,and repeat the cycle process. Fade This option allows you to perform actions such as fade to black .Animator ST will gradually fade a range of colours to a single colour across the life of the current tween. To perform a fade in the current tween: 1.Select color from the menu. 2.Adjust the range selector to indicate the colours you wish to fade. 3.Choose the colour to fade to (black for instance) by clicking the selection button with the cursor on the desired colour on the colour bar .A cross mark will appear in the colour to indicate it is selected. 4.Choose fade with the selection button. Wipe The wipe function clears a backdrop off the screen and from memory. To clear a back drop at the beginning of the current tween: 1.Select color from menu. 2.Choose wipe with the selection button. Range The range command is for adjusting the colour bar to produce a series of colours that blend two tones together.The arrows of the range selector indicate the beginning and end of the series as well as the two tones to mix.Blending two colours like red and green together will produce brown tones in the middle.The longer the distance between the two colours the more gradual the shading will be from colour to colour. To produce a range of colours in the colour bar: 1.Select color from menu. 2.Adjust the range selector to indicate the beginning and end of the colour range. 3.Choose range with the selection button. Spectrum This option is similar to range but the end result is very different.Instead of blending ,the colour series produced is more like a rainbow effect between the two tones. Reversing the range selector (arrows pointing inward) will produce different results with the same two colours. To produce a spectrum between two colours in the colour bar: 1.Select color from menu. 2.Adjust the range selector to indicate the beginning and end of the colour spectrum. 3.Choose spectrum with the selection button. Saving and loading a palette. Once you have created a palette exactly to your liking you can save it as a colour bundle and load it into an animation at any time.This way you dont have to recreate a particular palette every time you want to use it ,or you can suddenly change a colour scheme in the middle of an animation to create different effects. The original set of colours that come with animator ST are stored in a colour file named ANI.COL .If at any time you wish to reset your colour palette to the original colours simply load this file. To save a colour palette as a file on disk: 1.Select storage from menu .The storage dialog window will appear. 2.Choose COL. from the suffix (middle) column .The left column will change to display any colour files already saved .The name in the lower right corner of the window is the current active filename.If you wish to use this name skip the next step.Place the cursor on the name and press the selection button .Type in the name you wish to save this colour file under and press return. 3.Select save from the action (right) column.The current colour palette will be saved to disk. To load a previously saved colour palette into an animation at the current tween: 1.Select Storage from the menu.The storage dialog window will appear. 2.Choose .COL from menu.The storage dialog window will appear. 3.Place the cursor on the file you wish to load and press the selection button. 4.Select load from the action column.The colour palette will load into the computer.Any time the animation reaches this tween the load action will be performed. The StoryBoard The storyboard is more like a film editor than a traditional story board.It has six slots displayed as windows that can each hold a separate animation.It is here you can cut out unwanted tweens or splice animations together. It is a good idea to save your animation to disk before going to the story board since it does not have an undo feature.If you accidentlly delete an animation its gone for good.Also,memory can be used up very fast when moving animations around and it is possible you can run out.Be sure to check the status command regularly to keep an eye on how much memory is left. You reach the storyboard by choosing storyboard from menu .The screen will change to display six windows.One window will be highlighted.This is the current animation you are working on. Storyboards main menu selection,edit ,contains the tools used for editing .The first tool go into,is the default setting when storyboard is first entered.The cursor will be shaped as into .By placing the cursor on one of the windows and pressing the selection button you will be returned to the creation portion of the program for that particular animation.To get the into cursor ,choose the go into command at any time. When you first enter storyboard ,you will notice that the first window contains the animation you were working on when you choose storyboard,and the other windows are blank.To call up additional scripts to work with ,place the into cursor on a blank screen with a menu bar as if you were starting a new script .Simply load the desired script from storage and re-enter storyboard.Now you will see two animations in the windows .Repeat the process if needed. Status The status command is the same as under menu in the creation portion of animator ST.It displays a message in the help bar about the current amount of memory free. Quit The quit command will exit animator ST and return control to the desktop. Edit Under the edit menu are the real tools that make up the story board so useful: Splice The splice function will pick up an animation in one window and attach it to the end of an animation in another window .If the window is blank then the animation merely copied into the new window. To splice an animation onto the end of another: 1.Choose splice from the edit menu.The cursor will change to resemble a film splicer. 2.Place the cursor on the animation you want to pick up and press the selection button once. 3.Place the cursor in the window where you want the animation to be added.Press the button again. Cut The cut feature is similar to splice in that it picks up an animation and puts it down in another window.Whereas splice copies ,cut actually cuts.It will chop an animation at the current tween and pick it and all future tweens up and lay them down in the new window. The tween where the cut occurs can be chosen by selecting a specific tween from the time window before entering the storyboard ,or by using activate (see below). This command can be used for cutting unwanted tweens off the beginning or end of an animation.When used together with the splice command it can be used to cut tweens out of the middle of an animation. To cut an animation at the current tween: 1.Choose cut from the edit menu.The cursor will change to represent a pair of scissors . 2.Place the cursor in the window where you want to pick up an animation and press the selection button. 3.Now place the cursor where you want to put the cut strip and press the selection button again. Delete The delete option is used to clear a window .It is functionally the same as choosing new script from the menu in the creation portion of the program. To delete an animation from memory: 1.Choose delete from the edit menu.The cursor will change to the destroy icon. 2.Place the cursor on the window to clear and press the selection button. Activate This command is similar to play loop frm the time menu.It allows you to run and stop the animations in the different windows .All six windows can run at the same time though there may be some slowing down of the animations if that many are playing at once.The command can also be used to stop a script at a certain point for editing. To play an animation. 1.Choose activate from the edit menu.The cursor will change to represent a movie projector. 2.Place the cursor on the window to activate and press the selection button. To stop an animation place the cursor on the window and press the button again. Memory panic - system going down. Animator ST is a big program .Animators are complex things that require alot of memory.The situation is bound to occur at some point where you run out of space ,particularly in the story board where large chunks of memory get used up quickly.Fear not!Animator ST will catch itself if a fatal error in memory allocation takes place and give you the chance to save your work. The message ANIPANIC-outta memory,sorry got to go will appear in the menu bar and a dialog will be displayed on the screen asking if you want to save the storyboard.If you respond with a no the program will exit to the workbench and everything in the storyboard will be lost.Anything you previously saved on disk will still be there. By responding with yes to the dialog,animator ST will begin saving a series of files on the disk.Each file will be titled ANIPANX.SCR where X is the number 0 through the number of animation windows you had operating in that storyboard.To begin again ,reload animator ST ,and using the storage command load the scripts you wish to continue working with. Using images created outside animator Aegis animator ST allows you to bring pictures created with paint programs such as neochrome in an animation.Any paint program whose pictures can be translated into the NEO. file format can be used.There are three types of images used:backdrops,cels and masks. Backdrops A back drop is an image that resides behind any animation created.It acts as a setting for the script to unfold before and with the cycle command it can perform some limited animation of its own.The image does not move.It appears when you issue the load function from the storage dialog,and resides in the back until the end of the animation occurs or until you issue a wipe command from the colour dialog.Backdrops can be loaded in at any time in an animation,and you can load one back drop in while another is already present.As soon as the load is finished the first picture will be wiped and replaced with the new image. Backdrops are filed on disks as .NEO files which means they have that extension on their filename .The storage dialog window has a .NEO function in the centre column for handling backdrop files. To load a backdrop into an animation at the current tween: 1.Select storage from menu .The storage dialog will appear. 2.Choose .NEO with the selection button from the suffix column.A list of pictures available in the current directory will be displayed. 3.If your picture is on another disk ,select cd (change directory) from the action (third column) and do the following: For one disk drive: 1.You will see a dialog asking new directory? 2.Remove the animator ST disk and insert the disk containing the picture . 3.Press return. 4.Choose .NEO from the centre column .You wont have to put the animator ST disk back in because the program is stored in memory until the computer is switched off. For two disk drives: 1.You will see a dialog asking new directory? 2.Insert the disk containing the picture in the external drive. 3.Type B :and press return. 4.Choose .NEO from the centre column. To continue from above... 4.Select the name of the picture you want to load from the first column and then choose load from the third column. The back drop will be loaded and displayed.Note that the colour palette of animator ST changes to exactly match the colour palette used to paint the backdrop. Cels To use the jargon,cels are bit mapped images or rasters that can be moved about on the screen .In non computerese they are objects you can capture from a painting with the use of a frame.The frame is saved to disk.The cel can then be loaded at any time in an animation and moved about on the screen.This allows you to create much more detail than is possible with the polygon creation tools of the Animator ST. Heres how you do it.First you load a painting (.NEO file) in which you have created the parts you want to use.Then you capture those items as cels (described below in detail) and save them to disk.Next ,clear the painting from memory and move into the animation to the tween where you want the items to appear.And last,load the cels using the storage commands Cels are squares that have limited movement.If the object you captured is on a background the same colour as the animation background then the square edges will blend in and just the object will be seen.The only move commands available to a cel are sideways,big small and along path. To save an object on the screen as a cel: 1.Choose storage from menu .The storage dialog window will appear. 2.select .CEL from the middle column.A list of available cel files will appear on the left. 3.In the lower right corner is the current active file name.If this is the name you wish to use go on to the next step.Click the selection button with the cursor located on the filename .The filename will disappear .Type in the name you wish to save the cel under and press return. 4.Choose save from the last column.The storage window will disappear and the cursor will become a crosshair. 5.Place the cursor on one corner of the desired capture area hold the selection button down and drag the cursor to the opposite corner.A highlighted frame will appear around the object to capture. 6.When the frame is where you want it release the button.The file will be saved. To load a cel into an animation at the current tween: 1.Choose storage from menu .the storage window will appear. 2.Select .CEL from the middle column.A list of available cel files appear to the left. 3.Choose the name of the file you wish to load. 4.Select load from the right hand column.The file will be loaded and the storage window will disappear . 5.The cel will be on the screen highlighted with a frame.Place the cursor on the object and hold down the selection button.Move the cel to the position where you want the object to appear,and release the button.Any subsequent changes in position from now on will appear as movement in the animation. Masks Masks are similar to cels except that they are only one colour.The currently active colour is used at the time of their creation.Masks can be made from objects in paint files but their best use is in duplicating polygons. If there are polygons in your animation that will not need any fancy rotation,morph or size ,move commands then a good thing to do is change them into masks. When a mask is captured,any background colour captured inside the frame becomes transparent when the mask is used in an animation.This is different than with a cel.A cels background blends in when possible ,but a masks background colours are not captured with the image.Thus,it is just the image itself that appears as a mask. To save an object (polygon or paint image) as a mask: 1.Choose storage from menu. 2.Select .MSK from the middle column.A list of available mask files will appear on the left. 3.In lower right corner is the current active file name.If this is the name you wish to use go on to the next step.Click the selection button with the cursor located on the file name.The name will disappear .Type in the name you wish to save the mask under,and press return. 4.Choose save from the column.The storage window will disappear and the cursor will become a crosshair. 5.Place the cursor on one corner of the desired capture area.Hold the selection button down and drag the cursor to the opposite corner.A highlighted frame will appear around the object to capture. 6.When the frame is where you want it release the button .The file will be saved. To load a mask into an animation at the current tween: 1.Choose storage from menu. 2.Choose the name of the file you wish to load . 3.Select load from the right hand column.The file will be loaded and the storage window will disappear. 4.The mask will be on the screen highlighted with a frame.Place the cursor on the object and hold down the selection button.Move the mask to the position where you want the object to appear,and release the button.Any subsequent changes in position from now on will appear as movement in the animation. Storage If you've been using Animator ST as you read this manual or if you have looked at some of the demos ,you have already worked with the storage command .There are eight different types of files used by animator ST and the window displayed by the storage command from menu enables you to manipulate them. When you select the command ,the storage window is displayed,and the help bar holds the message select title,suffix,action.In the window itself are three columns of text.Each column aligns with the names in the help bar.The first column holds the filenames the second column the suffix (.NEO,etc)..... A script file (.STR) is the actual animation.It contains the commands that tell animator ST how to assemble and display an animation. .NEO files are pictures saved from other programs such as NEOchrome to be used as backdrops in an animation.CEL and .MSK stand for window and mask. .POL files describe individual polygons or objects.You can save or load these at any time .This allows you to create polygons separately from an animation and then load them in at the proper time.The steps to save or load a polygon are the same as saving a mask. .COL files are colour palettes.With this option you can save and load an entire palette setting at any time during an animation .This option is described in more detail earlier. .STR files are animations saved as strip animations which can run concurrently with other scripts.You can command them to,play once or in a loop,and you can choose in which tween of the script a strip animation will first appear.Also ,you can position the strip to play anywhere on the screen. To save an animation as a strip: 1.You can either create an animation ,or load a script from storage onto the screen.After this is done,select storage from menu .The storage dialog will appear. 2.Select .STR from the middle column.A list of available script files will appear on the left. 3.In the lower right is the currently active file name.This area will be blank if there are no strip files already on disk.If this area does not show the name you wish to use ,press return and go on to the next step.Click the selection button with the cursor located on the file name (click in the general are if there are no files).The name will disappear .Type the name you wish to save the strip under and press return. 4.Select save from the last column. To load a strip animation into a script: 1.You cannot play a strip alone;it must be loaded into a script in order to play.Select in which tween in the script animation to first appear. 2.Select storage from menu. 3.Select .STR from the middle column. 4.Select the script name from the left column . 5.Select load from the right column. 6.A frame will appear which you can position with the cursor.If you leave the frame where it is and click inside it with the selection button,the strip will play in the same position as you made it .To move the frame ,place the cursor on a side of it and while pressing the button,move the frame to the desired spot and release the button.the frame will disappear and the loop count dialog will appear. 7.The loop count dialog has two selections :forever and a numerical display box.Select the forever to make the strip play in a continuous loop.Otherwise,enter a number in the display box to specify how many times you would like the strip to replay during the script.The arrows on the top advance you through the numbers ,and the ones on the bottom back up.To enter a number ,click on the appropriate arrows with the selection button. 8.When you have made you choice ,click on ok with the selection button.The storage dialog will appear.At this point you have two choices :you may load another strip beginning in the current tween,or you may go to another tween in the animation,select storage ,and load another strip. 9.When you have loaded your strips ,you are ready to play the enhanced animation. To enter a new file name click on the current file that is displayed and it will disappear.Then type in the new name and then press return. Animation Technique Okay,heres the part of the manual where we tell you the good stuff.How to put everything together to make an animation,tips to remember to make the final result look clean,and shortcuts.First a few hints on getting the best results. Be aware of the media you are working in .Animator ST uses low resolution graphics (320*200) and this puts limitations on the images you can create.Also complicated animations will need some planning. Script files When animation is saved to disk it is saved in a written format as a script file.Script files are ASCII text files which may be created and edited by other programs that contain text editors such as word processors.The ability to directly edit the text commands of a script allows a more controlled approach to animation.In animator ST,the different tools(rotate,sideways,time,etc.) tend to be approximate because you are manipulating them with a cursor.Reviewing a script file allows you to see the exact pixel location of an object or length of a tween created with the tool.Then you can adjust these figures with the text editor. The files have an extension of .SCR.An animation with the name of DEMO would appear on the disk directory as DEMO.SCR .Without this extension Animator ST will not recognise the file as a usable script. Script files have three levels of definition :script ,tween and action.The first part of a file deals with script definition. Items such as script name ,global speed ,and any strips cels and masks to be used are defined here.The next level is tween .Information about the length of the tween and the number of actions in the tween are given.Each tween is separated by a blank line ,creating blocks of text.Within each block are the action descriptions.These are various actions (rotation ,sizing,etc.) occuring during the tween. Every line of script starts with either an * ,a ,a # ,or a TAB. * tell animator ST the following information is a command or definition,and TAB's are continuations of previous lines.The pound sign may be used to insert comments within a script.Animator ST will ignore any text following the pound sign and advance to the next asterisk. The first line of a script file contains a script command followed by the name of the script,the total number of tweens ,and the resolution.The resolution is included because Animator ST will eventually run on a variety of machines.Scripts created on one machine will need very little editing to run on another.Currently the atari ST version should always read 320 and 200.A script named demo with five tweens would have a script command like this. ****************************************************************** Finished at last !!!! This extensive documentation was written by SEWER POM and is presented with great equivocality and anfractuosity in a deft and tantive manner by your munificent and magnanimous SEWER SOFTWARE in this inimitable SEWER DOC DISK NUMBER 3 - Sewer Rat !! BATMAN THE CAPED CRUSADER ------------------------- TYPED IN BY ICEMAN ------------------ This is an arcade adventure game with beat'em'up tones.The game consists of two plots revolving around batmans worst enemies-The Penguin and the Joker. Each plot is played in similar fashion-though the various locations and problems encountered will vary. THE STORY SO FAR....... THE PENGUIN PLOT:"A BIRD IN THE HAND" The penguin having been released from jail,decides to set up an umbrella factory,near his gothlam city mansion,but,of course old habits never die hard and this is but a cover up for his ingenius plan to take over the world using an army of robotic penguins! As BATMAN can you close down the hidden master control computer and stop this evil conspiracy? THE JOKER PLOT:"A FETE WORSE THAN DEATH" Robin has mysteriously disappeared-the only clue found is a single playing card,the call of the infamous "joker!"Batman's arch enemy has returned. On close examination the batcomputer reveals a secret message hidden on the flip side of the card... "Robin heads for a fete worse than death,the fuse is lit-so don't waste time ,follow your nose and remember,there's no place like home!boom!boom! Can you uncover the mystery,save robin and defeat the joker?Time is running out. ATARI ST/AMIGA LOADING Switching on the power to the computer and disk drive then insert disk into drive.The program will run automatically. GAMEPLAY: The presentation on screen simulates a comic strip with Gothlam City and all its characters appearing in multiple overlaid panels.Any text etc.is displayed in caption boxes in the apprapriate frame. The player,as Batman,has complete control to move around and interact with the numerous locations,solving puzzles and routes. The game is over only when the adventure is complete or Batman has unsufficient energy to continue. THE CONTROLS: The player can make a large variety of moves... WITHOUT THE FIRE-BUTTON PRESSED Face Back Climb Left \ | / Climb Right \ | / Walk left ------------------ walk right / | \ Duck Left / | \ Duck Right Face Front ATARI ST AND AMIGA: climb |  | walk left ------------ walk right / | \ duck left | duck right | climb;face front WITH FIRE-BUTTON PRESSED: face back high kick left | high kick right \ | / punch/throw left ---------------- punch/throw right / | \ low kick left | low kick right pick up object THE UTILITY SCREEN: By pulling down and pressing fire Batman will enter the utility screen. This displays all objects you have picked up and also the control icons which are used to manipulate them. NOTE-various aspects of the games display and sound affects may also be changed to suit the requirements of the player. BATMANS ENERGY BARS AND THE PLOT COMPLETION PERCENTAGE ARE ALSO DISPLAYED ON THIS SCREEN. GAME PERCENTAGE OBJECTS CARRIED CONTROL ICONS BAT-CURSOR ENERGY STATUS BARS EXAMPLE-UTILISING AN OBJECT By moving the bat cursor onto the object and pressing fire,then selecting the utilise icon in the same manner,that object will be used. ie. Food eaten(energy increased) Key opens locked door Dart is thrown HINTS AND TIPS 1. DON'T EAT TOO MUCH TOO SOON 2. SOME OBJECTS DO MORE DAMAGE THAN GOOD 3. KEEP DUCKING TO AVOID BULLETS 4. NEVER JUDGE A BOOK BY ITS COVER(JOKER'S PLOT) Regards ICEMAN(VAWS) BATTLESHIPS - DOC TYPED FOR SEWER SOFTWARE BY DELTA *************************************************** SCENARIO THE COLD MORNING AIR CHILLS YOUR BONES AS YOU,THE ADMIRAL OF YOUR COUNTRY'S NAVEL FORCES LOOK OUT FROM THE BRIDGE INTO THE DENSE BLANKET OF FOG LYING ON THE OCEANS SURFACE."WHERE ARE THEY?" YOU ASK YOUR SELF WITH A SUDDEN REALISATION THAT YOU ALONE MUST SEEK AND DESTROY THE ENEMY FLEET BEFORE THEY FIND YOURS .HAVE YOU THE NERVE TO FACE THE ULTIMATE NAVAL CHALLENGE AND BRING VICTORY HOME TO YOUR COUNTRY?. PLAYING INSTRUCTIONS ON LOADING YOU ARE PRESENTED WITH A MENU OF OPTIONS.YOU CAN SELECT THESE OPTIONS BY POSITIONING YOUR CURSOR ON THE DESIRED OPTION AND PRESSING THE LEFT MOUSE BUTTON. THE OPTIONS ARE :- 1/ A ONE PLAYER GAME AGAINST THE COMPUTER. 2/ A TWO PLAYER GAME WITH A FRIEND. 3/ A MULTIPLAYER TOURNAMENT BETWEEN TWO OR MORE PLAYERS.TWO PLAY AT ANY ONE TIME;THE WINNER CAN THEN TAKE ON A CHALLENGER AND BY REPEATED WINS AGAINST "ALL COMERS" CAN BUILD UP A HIGH SCORE. 4/ SALVO FIRE: GIVES YOU 4 SHOTS PER SHIP REMAINING.ON STARTING THE GAMES YOU WILL BE ASKED TO SET THE POSITIONS OF YOUR SHIPS ON THE MAP GRID. IF YOU ARE PLAYING A HUMAN OPPONENT,MAKE SURE YOUR MOVES ARE MADE SECRETLY.MOVE THE CURSOR OVER THE GRAPHIC SHIP AT THE SIDE OF THE MAP.PRESS THE LEFT MOUSE BUTTON AND MOVE THE SHIP TO THE DESIRED POSITION.PRESSING THE BUTTON AGAIN WILL PLACE THE SHIP ON THE MAP.TO ROTATE THE SHIP PRESS THE RIGHT MOUSE BUTTON.WHEN YOU HAVE PLACED YOUR LAST SHIP YOUR OPPONENT WILL PLACE HIS.NOW THE GAMES COMMENCES PROPERLY WITH EACH PLAYER ASKED IN TURN TO SHOOT AT THE GRID CO-ORDINATE YOU WANT A SHOT TO BE FIRED AT.THIS IS DONE BY POSITIONING YOUR CURSOR AND PRESSING THE LEFT MOUSE BUTTON.ON SELECTION OF YOUR LAST TARGET,THE SCREEN WILL FLIP TO TO A GRAPHIC REPRESENTATION OF THE FLEET AT SEA.MISSILES WILL BE FIRED FROM YOUR SHIP AS AIRCRAFT FLY OVERHEAD,AND THE PROGRESSIVE DESTRUCTION OF YOUR ENEMY WILL BE SHOWN. I HOPE YOU ENJOY THE GAME ..DELTA.. ***************************************************************************** BBC Emulator DOCs.....Edited by Sewer Possum. These DOC's were taken from the AMIGA documentation. There are obvious differences, the ST doesn't have the AMIGAs multi-tasking capabilities for a start, so I don't know how useful or accurate these DOC's are... ***************************************************************************** Introduction ~~~~~~~~~~~~ Our principal objective in creating the BBCEmulator has been to run existing education software, written in BBC BASIC or in a mixture of BASIC and 6502 assembler, as well as possible. Speed of execution of BBC BASIC is very good - we have clocked speeds of over seven times faster than the original on some programs. We can also run programs written entirely in 6502 assembler - however, since we are having to emulate 6502 (RISC chip) hardware in 68000 (CISC chip) software, this isn't nearly as fast, and isn't recommended for serious applications. The BBC Emulator can run nearly all "legal" BBC software which uses BASIC and the OS - ie software which will run on things like 6502 second processors. We cannot however run "illegal" software that dodges the OS and goes direct to BBC screen memory or to the hardware. In practice, this means that we can run nearly all educational programs written in BASIC or a mixture of BASIC and assembler, but not things like arcade-style games - sorry! BASIC: A new implementation of BBC BASIC, re-coded from scratch in 68000 assembler, but with the aim of being as compatible as possible with BBC BASIC 2 (except for the bugs!). A VERY fast implementation, though we say it ourselves. 6502: An emulation of the 6502 chip, written in 68000 assembler - enables programs which call assembler subroutines to work properly, though not as fast as the original. Other elements in the software are a "CLI environment" entered by *GO, and a simple 6502 monitor, entered by *MONITOR. To EXIT the BBCEmulator, enter the special command: *CLOSEDOWN Certain keys are "stolen" by the BBCEmulator to have special effects. These are as follows: Function keys - as BBC function keys; F10 used for F0 Cursor keys - as BBC cursor keys for copy key editing, etc Backspace - acts like BBC DELETE Del - acts like copy key Help - acts like BREAK Graphics modes ~~~~~~~~~~~~~~ The BBCEmulator supports the following graphics modes: 0 640 x 256 2 colours 80x32 1 320 x 256 4 colours 40x32 2 320 x 256 16 colours 20x32 3 text only 2 colours 80x25 4 320 x 256 2 colours 40x32 5 320 x 256 4 colours 20x32 6 text only 2 colours 40x25 7 Teletext display 40x25 Note that in modes 2 and 5 the horizontal resolution is actually double the original - which doesn't seem to be a problem. The double width (20 column) characters are rendered accurately however. The BBC's Teletext (Mode 7) display is emulated in software in the BBCEmulator. Mode 7 is the fastest mode on the BBC, but the slowest mode on the BBCEmulator. This is because we are having to emulate character- based hardware in pixel-based software - think of a very skilled painter trying to create text as fast as a crummy old typewriter. The speed of BBCEmulator Mode 7 should be more than fast enough for all practical application purposes; however it is not recommended for program editing. For this reason, the "power up default" for the BBCEmulator has been set to Mode 6. Note that Teletext HOLD and RELEASE graphics are not available in version 0.95 of the BBCEmulator. Vdu drivers ~~~~~~~~~~~ The following VDU calls are supported: VDU 0 No effect VDU 1 NOT YET AVAILABLE VDU 2 NOT YET AVAILABLE VDU 3 NOT YET AVAILABLE VDU 4 Text at text cursor VDU 5 Text at graphics cursor VDU 6 NOT YET AVAILABLE VDU 7 Make a beep VDU 8 Backspace cursor VDU 9 Forwardspace cursor VDU 10 Move down cursor VDU 11 Move up cursor VDU 12 Clear text window VDU 13 Carriage return VDU 14 Page mode on VDU 15 Page mode off VDU 16 Clear graphics window VDU 17 Change text colour VDU 18 Change graphics colour - GCOL 0 ONLY VDU 19 Change colour palette VDU 20 Restore default palette VDU 21 NOT YET AVAILABLE VDU 22 MODE VDU 23 User-defined character VDU 24 NOT YET AVAILABLE VDU 25 PLOT VDU 26 Default windows VDU 27 No effect VDU 28 Define text window VDU 29 Define graphics origin VDU 30 Home cursor VDU 31 Move cursor VDU 127 Backspace and delete Note that the BBCEmulator character set is always fully "exploded" - meaning that any character from 32 to 126 and 128 to 255 can be redefined using VDU 23. VDU 23,1 to switch cursor on/off is supported, as are various variations on VDU 23,0. Other uses of VDU 23,0 are NOT supported however. Operating system commands ~~~~~~~~~~~~~~~~~~~~~~~~~ The following standard commands are supported via the BBCEmulator CLI: *CAT *BASIC *CODE [X,Y] - NOT YET IMPLEMENTED *EXEC *FX A [,X,Y] *GO [
] *HELP [] *KEY N *LOAD [
] *LINE - NOT YET IMPLEMENTED *MOTOR 0/1 - NO EFFECT *OPT X,Y - OPT 4 ONLY *SPOOL *TAPE - NO EFFECT *TV X,Y - NO EFFECT *GO by itself will enter a special "CLIPrompt" environment, with a '*' prompt; to get back to BASIC use '*BASIC'. A number of special commands are also supported; these are discussed elsewhere in this document. *AEXEC [] *ASPOOL [] *CLOSEDOWN *CONNECT [] *FORCECLOSE *ICOPY *IMPORT *MONITOR *SEVER Printer redirection by CTRL-B is not yet supported explicitly within the BBCEmulator. For the time being, a good way to get a program listing is *ASPOOL PRT: LIST *ASPOOL Standard DFS and UTILS commands supported are: *ACCESS [L] *COMPACT *COPY *DELETE *DIR *DRIVE *ENABLE *INFO *LIB *RENAME *TITLE *DISC *DISK *BUILD *DUMP *LIST *TYPE BBCEmulator non-standard DFS commands are as follows: *ASSIGN [] *BOOT [] *MAKE *REMAKE Import facilities ~~~~~~~~~~~~~~~~~ The BBCEmulator contains special commands to allow existing files to be transferred from a BBC with DFS, by means of a serial cable. PLEASE NOTE that this is intended to allow you to transfer your own files, and public domain software; using it to transfer commercial software is almost certainly a breach of licencing agreement - in exactly the same way as making unauthorized copies by any other mechanism. The amount of piracy in education is increasingly encouraging anyone any good at writing educational software to pack it in and do something else, so please don't add to the problem - we mean this!  Code transfer is supported via the following commands: *CONNECT *SEVER *IMPORT *ICOPY To connect at the default baud rate (9600 baud), ensure the lead is connected correctly, enter the BBCEmulator, and type *CONNECT This will prompt you to enter a command at the BBC end (*FX 2,1), then press any key. To connect at a different baud rate - eg 1200 baud, type *CONNECT 1200 then follow the instructions printed. Baud rates supported are 150, 300, 1200, 2400, 4800, 9600 and 19200, though the last is NOT guaranteed - indeed it doesn't work properly at the moment! Note that use of the lower baud rates MIGHT allow *CONNECT to be used over a modem link. This is not recommended however except over error correcting modems, as the error checking in the program itself is only very simple. To disconnect "politely" and free the remote machine, enter *SEVER where is an Ambiguous File Specification as used by *COPY. NOTE that IMPORT and ICOPY are designed to work with standard DFS on the remote machine. Non-standard systems are not guaranteed to work correctly. BBC BASIC ~~~~~~~~~ BBCEmulator BASIC is a new version of BBC BASIC, coded in 68000 assembler. Keywords supported are as follows: ABS ACS ADVAL AND ASC ASN ATN AUTO BGET BPUT CALL CHAIN CHR$ CLEAR CLG CLOSE CLS COLOUR COS COUNT DATA DEF DEG DELETE DIM DIV DRAW ELSE END ENDPROC ENVELOPE EOF EOR ERL ERR ERROR EVAL EXP EXT FALSE FN FOR GCOL GET GET$ GOSUB GOTO HIMEM IF INKEY INKEY$ INPUT INSTR( INT LEFT$( LEN LET LINE LIST LN LOAD LOCAL LOG LOMEM MID$( MOD MODE MOVE NEW NEXT NOT OFF OLD ON OPENIN OPENOUT OPENUP OR OSCLI PAGE PAGE PI PLOT POINT( POS PRINT PROC PTR RAD READ REM RENUMBER REPEAT REPORT RESTORE RETURN RIGHT$( RND RUN SAVE SGN SIN SOUND SPC SQR STEP STOP STR$ STRING$( TAB( TAN THEN TIME TO TRACE TRUE UNTIL USR VAL VDU VPOS WIDTH The only areas of possible difficulty are as follows: CALL with parameters - The simple cases of CALL (eg CALL P%, CALL &3000) work fine; the exotic cases where CALL is passed a list of variables are however not supported, and give an error message "Not implemented". This is because 68000 BBC BASIC uses a different internal variables representation to the 6502 version. ENVELOPE - Passed to the OS, but not yet implemented. ADVAL command - always returns zero. Negative INKEY - always returns zero. GCOL modes 1 to 4 - not supported by the OS. 6502 Monitor ~~~~~~~~~~~~ A simple 6502 monitor is included, loosely based on the old PET monitors like Supermon! Entry is via *MONITOR; commands are * execute CLI command Q exit monitor M display memory . alter memory R display registers ; alter registers D disassemble G go Commands are typically followed by one or more hex parameters, eg M 0000 0100 display page zero M 0200 display block from $0200 M display next block D 8000 8020 disassemble from $8000 to $8020 D A000 disassemble next block from $A000 D disassemble next block G 8000 execute from $8000 G execute from current PC '.' and ';' are designed so that register and memory contents can be changed by cursoring up, then using the copy key from the start of the line in question. Operating system ~~~~~~~~~~~~~~~~ Calls currently supported under the 6502 emulator are as follows: GSINIT - Fully supported GSREAD - Fully supported OSFIND - All DFS compatible options OSGBPB - All DFS compatible options OSBPUT - Fully supported OSBGET - Fully supported OSARGS - All DFS compatible options OSFILE - All DFS compatible options OSRDCH - Keyboard or exec file only OSASCI - Fully supported OSNEWL - Fully supported OSWRCH - Screen or spool file only OSWORD - Nearly all calls supported OSBYTE - Major calls supported OSCLI - Fully supported Indirection via the Page 2 vectors is NOT properly supported under version 0.95. OSBYTE calls supported are as follows: OSBYTE &00 Identify Operating System Version OSBYTE &01 Read/write the user flag - NOT YET OSBYTE &02 Select input stream - NOT YET OSBYTE &03 Select output stream - NOT YET OSBYTE &04 Enable/disable cursor editing OSBYTE &06 Set character ignored by printer - NOT YET OSBYTE &07 Set RS423 baud rate for receiving data - NOT YET OSBYTE &08 Set RS423 baud rate for transmitting data - NOT YET OSBYTE &09 Set duration of the mark state of flashing colours OSBYTE &0A Set duration of the space state of flashing colours OSBYTE &0F Flush selected buffer class OSBYTE &12 Reset soft keys OSBYTE &13 Wait for vertical sync - NOT YET OSBYTE &14 Explode soft character RAM allocation OSBYTE &15 Flush selected buffer OSBYTE &77 Close any SPOOL or EXEC files OSBYTE &7C Clear ESCAPE condition OSBYTE &7D Set Escape condition OSBYTE &7E Acknowledge detection of an ESCAPE condition OSBYTE &7F Check for end-of-file on an opened file OSBYTE &81 Read key with time limit OSBYTE &82 Read machine high order address OSBYTE &83 Read top of operating system RAM address (OSHWM) OSBYTE &84 Read bottom of display RAM address (OSLWM) OSBYTE &85 Read bottom of display RAM address for a specified mode OSBYTE &86 Read text cursor position (POS and VPOS) OSBYTE &87 Read character at text cursor position - NOT YET OSBYTE &88 Execute code indirected via USERV - NOT YET OSBYTE &91 Get character from buffer - NOT YET OSBYTE &DA Read/write number of items in VDU queue OSBYTE &E1 Read/write function key status OSBYTE &E2 Read/write SHIFT+function key status OSBYTE &E3 Read/write CTRL+function key status OSBYTE &E4 Read/write CTRL+SHIFT+function key status OSBYTE &E5 Read/write status of ESCAPE key OSBYTE &E6 Read/write ESCAPE effects OSWORD calls supported are as follows: OSWORD &00 Read line from input stream to memory OSWORD &01 Read system clock OSWORD &02 Write system clock OSWORD &03 Read interval timer OSWORD &04 Write interval timer OSWORD &07 Generate a sound OSWORD &08 Define an envelope - NOT YET OSWORD &09 Read pixel colour OSWORD &0A Read character definition OSWORD &0B Read the VDU palette OSWORD &0C Write the VDU palette - NOT YET OSWORD &0D Read current/previous graphics cursor position - NOT YET Yeh, I know...not much to go on, eh? These brief DOC's will have to do until we get some more complete and specific for the ST BBC Emulator program. DO NOT write to us with queries about the program....this is all the documen- tation we've got. Sewer Possum.  BUGGY BOY - DOC TYPED FOR SEWER SOFTWARER BY DELTA ================================================== BE PREPARED FOR THE BUMPIEST RIDE OF YOUR LIFE,OVER FIVE OF THE ROUGHEST COURSES EVER DEVISED FOR FOUR WHEELS.YOU MUST RACE ACROSS TERRAIN LITTERED WITH BOULDERS,TREES,BRICKWALLS,AND FENCES WHILST FOLLOWING THE ROUGH OUTLINE OF THE TRACK THROUGH THE NARROW VALLEYS,ACROSS EVEN NARROWER BRIDGES AND THROUGH DARK TUNNELS. USE YOUR SKILLS TO DODGE THESE OBSTACLES OR JUMP OVER THEM BY HITTING THE LOGS THAT LIE ACROSS THE TRACK,SENDING YOUR BUGGY SOARING THROUGH THE AIR,DRIVING OVER TREE STUMPS AND SMALL LOGS WILL TILT YOUR BUGGY ONTO TWO WHEELS ALLOWING YOU TO SQUEEZE THROUGH NARROW GAPS;BUT DONT OVERSTEER,AS YOU WILL LOSE CONTROL AND RETURN TO FOUR WHEEL DRIVE. THE COURSE IS NOT YOUR ONLY ENEMY.THE CLOCK IS TICKING AND YOU WILL BE DISQUALIFIED FROM THE RACE IF YOU DO NOT COMPLETE EACH LEG IN THE ALLOWED TIME LIMIT.EXTRA TIME FOR THE NEXT LEG CAN BE COLLECTED BY DRIVING THROUGH THE DANGEROUSLY PLACED TIME GATES. ADDITIONAL POINTS ARE SCORED BY COLLECTING THE FLAGS AND DRIVING THROUGH THE SCORE GATES.COLLECTING THE FLAGS IN THE SPECIFIED ORDER WILL GIVE YOU A LARGER BONUS,AS WILL BUMPING INTO THE FOOTBALL! WHEN THE GOING GETS TOUGH,PUT YOUR FOOT TO THE FLOOR ( FINGER ON THE BUTTON ? ),AND GET READY FOR MORE THRILLS AND SPILLS THAN EVER BEFORE. JOYSTICK CONTROL :- UP........ACCELERATE DOWN......DECELERATE LEFT......TURN LEFT RIGHT.....TURN RIGHT FIRE......CHANGE GEAR TYPED IN BY DELTA CALIFORNIA GAMES ---------------- This game we haven't seen here at Sewer HQ for the ST yet, although after playing the AMIGA version I can vouch for the accuaracy of these AMIGA DOCs. Thanx to Pirasoft/ACU for AMIGA original. Transferred and edited by Possum. ------------------------------------------------------------------------- TABLE OF CONTENTS ------------------------------------------------------------------------- INTRODUCTION ............................................ 1 OBJECTIVES .............................................. 1 GETTING STARTED ......................................... 2 STARTING PLAY ........................................... 3 HALF PIPE SKATEBOARD EVENT .............................. 4 FOOT BAG EVENT .......................................... 5 SURFING EVENT ........................................... 7 ROLLER SKATING EVENT .................................... 8 BMX BIKE RACING CONTEST ................................. 9 FLYING DISK EVENT ....................................... 10 CALIFORNIA GAMES SCORING ................................ 11 ------------------------------------------------------------------------- INTRODUCTION ------------------------------------------------------------------------- "Hey, thrasher! Dontcha ever wear knee pads?" "Didja see that? He caught some air on the half pipe! Radical!" Welcome to California. Home of the most radical sports in the world. Rad, bad abd aggro. You're about to hit the beaches, parks and streets of the Golden State to go for trophies in everything from surfing to bike racing. CALIFORNIA GAMES gives you the hottest sports. And the most aggro competition. You even get to pick your own sponsor. So pull on those knee pads. You're about to get into the most fun you've had since Mom hid your skateboard. CALIFORNIA GAMES is going to take you from the surf to the turf. From the pipe to the parks. Are you gonna love it, or what? We'll start you off in the heart of Hollywood, with skateboards in hot competition on the radical Half Pipe. Then we'll rocket up to San Francisco for the high-flying Foot Bag and some really wild footwork. After that, it's down to the beach for two of the coolest sports we've got in California. There's an awesome Roller Skating obstacle course, followed by the king of coastal competition. Surfing. You'll be shooting the tube and carving the biggest breakers around. Over at the dirt track, you'll pump the pedals of a BMX racing bike. And your moves had better be bad. For the grand finale, you'll go to Yosemite where you'll be flinging the fantastic Flying Disk. That's six massive events. You're gonna have your hands full. Not to mention your feet. You're about to get into the wildest game of them all... CALIFORNIA GAMES. It's only, like, the most totally awesome game in the world. ------------------------------------------------------------------------- OBJECTIVES ------------------------------------------------------------------------- CALIFORNIA GAMES is a challenge of skills for one to eight players. The object of the game is to win trophies in each individual events. Players can also compete for the top trophy in overall competition. CALIFORNIA GAMES includes six exciting events: Half Pipe Skateboard, Foot Bag, Surfing, Skating, BMX Bike Racing and Flying Disk. You can practice or compete in any single event, compete in all the events, or even set up your own competition using events that you choose yourself. 1 Each player chooses a sponsor for the competition. You are judged on each event and a record is kept of your score. Trophies are awarded to the top scoring competition. If you break an event record, CALIFORNIA GAMES will save your name and display it on a special high score screen. Improve your skills in each event, compete with your family and friends and become a California Champion. ------------------------------------------------------------------------- STARTING PLAY ------------------------------------------------------------------------- When the CALIFORNIA GAMES title screen appears, press the FIRE BUTTON on your joystick to continue to the menu screen. The CALIFORNIA GAMES menu offers a choice of options. To make a selection, use your joystick to move the cursor to your choice, then press the FIRE BUTTON. You may also select an option by typing the corresponding numbered key. OPTION 1: Compete in All the Events Compete in all six events. The number of trophies awarded to each player is tallied as you compete, and a special trophy is awarded to the overall champion at the conclusion of the last event. You'll compete in the events in this order: Half Pipe Skateboard, Foot Bag, Surfing, Skating, BMX Bike Racing and Flying Disk. o You'll first be asked to enter your name and pick a sponsor. o Type your name on the keyboard and press the RETURN key. o Use the joystick to move the cursor to the sponsor of your choice, then press the FIRE BUTTON to pick that sponsor. o Repeat the name and sponsor selection for each additional player (up to eight). When all players' names and sponsors have been entered, press the RETURN key again. o A verification screen will appear. If all the names are correct, select YES with the joystick and press the FIRE BUTTON, or type A. If you need to make any changes, select No or type B. OPTION 2: Compete in Some Events Similar to Option 1, but you compete in the events of your choice. o Choose the event(s) by typing the corresponding numbered key or by moving your joystick and pressing the FIRE BUTTON. o The events you choose will be displayed in purple. o When you are finished choosing the events, move the cursor to the word DONE and press the FIRE BUTTON. OPTION 3: Compete in One Event Similar to Options 1 and 2, but you compete in any single event of your choice. o Choose the event by typing the corresponding numbered key or by moving your joystick and pressing the FIRE BUTTON. OPTION 4: Practice One Event o Choose the event by typing the corresponding numbered key or by moving your joystick and pressing the FIRE BUTTON. No scores are kept during practice rounds. 3 OPTION 5: View High Scores o Displays the highest score recorded in all events, with the name of the player who achieved each record. o Press the FIRE BUTTON to return to the menu. OPTION 6: View Title Screen o Displays the title screen and credits o Press the FIRE BUTTON to return to the menu ------------------------------------------------------------------------- THE GAMES ------------------------------------------------------------------------- Half Pipe Skateboarding It's time to get air on the half pipe. Skateboarding is definitely an awesome event, combining strength and coordination--often with amazing results. You'll be riding a skateboard in a specially built half-pipe. You'll have a 1 minute, 15 second time period, or three falls, to build up speed and successfully complete stunts. Points are awarded for each stunt, and the highest score wins the event. OBJECT: The object of the half-pipe event is to ride the board back and forth on the ramp, performing stunts with proper timing and execution. o Press the FIRE BUTTON to start the event. o To gain speed, move the joystick UP when the skater is going up the side of the ramp, then move the stick DOWN when the skater is going down. o To perform a stunt, move the joystick as shown in the diagram. Pay attention to timing, because you'll fall if you move the stick too soon, too late, or if you hold it too long. After three falls, the event is over. NOTE: (To view diagram, check out appropriate pic on this disc.) 4 o To start a kick turn, move the joystick as indicated on the diagram above. Earn maximum points by waiting until the last moment to start the turn, and holding the joystick (or key) until the moment before you'd wipe out. o To start an aerial turn, tap the joystick (or press a key) in the direction indicated in the diagram. To perform this move successfully, you must be in the air off the edge of the ramp before tapping the joystick. o To perform a hand plant, press and hold the FIRE BUTTON just as you reach the top of the ramp. The skater will plant his hands and flip the board over his head. Wait to release the button until the board arcs over and returns to the ramp. Earn maximum points for pressing the button at the last moment, and releasing it at the last moment. SCORING: You score points for each stunt completed successfully. Your score increases with the amount of risk you take. For example, if you hold a turn until the last moment, you get more points than if you pull out early when it's safer. Some stunts are more difficult and earn higher scores than others. Stunt Minimum Maximum Kick Turns 100 300 Hand Plants 400 700 Aerial Turns 400 999 STARTEGY: It's important to build up the right amount of speed before trying a stunt. You can gain speed by doing a "fakie." To fakie, hold the joystick up or down for the full duration of the ramp (from top to bottom). Remember that you'll wipe out if you go too fast. Above all, be sure to get plenty of practice on the half pipe. This event takes experience to get the timing down just right. Foot Bag This is probably the most laid back event, but don't lose your cool, it isn't easy. The Foot Bag event is like juggling with your feet. In this event, you have to keep a juggling bag in the air for 1 minute, 15 seconds, without using your hands. Success is all in the timing. If you time your kicks correctly, you'll keep the bag bouncing high in the air. Score extra points by performing stunts. The highest score wins the event. OBJECT: Hacking at the sack with your feet, knees and head, you must try to make as many kicks as you can before time runs out. And remember, you get extra points for every stunt you perform. 5 o Press the FIRE BUTTON to kick the bag into the air and start the event. o As the bag falls back toward the ground, press the FIRE BUTTON to kick again just before the bag reaches your foot. o To peform a head butt, press the FIRE BUTTON just before the bag drops below the level of your head. o Move the joystick as indicated in the diagram to control other move- ments. Jump | | Move Left-- --Move Right | | Turn Around (About face) o Several types of kicks are possible, including inside kicks, outside kicks, jumping reverse kicks, knee kicks and back kicks. o To perform different types of kicks, move to ne positions underneath the bag while it's in the air. For example, move to the right so the bag will drop next to you (but not too far). Now press the FIRE BUTTON when the bag approaches and you'll perform an outside kick. o Other kicks are performed by positioning yourself in different ways. Discover the ways to perform all the kicks by trying various move- ments during practice. SCORING: You earn points for each stunt or kick performed successfully. More difficult stunts, like turning around while the bag is in the air, earn higher scores. You lose time if you drop the bag or kick it off the screen. You also earn points for consecutive kicks completed without allowing the bag to touch the ground. Earn bonus for catching the sack when thrown from offscreen. Here are some stunts to try by combining different kicks and moves: Any Kick: (10 pts.) Half Axle: (250 pts.) Any two kicks with a half spin in between. Full Axle: (500 pts.) Any two kicks with a full spin in between. Horseshoe: (500 pts.) Left back kick + right back kick. Jester: (2000 pts.) Left jumping kick or right jumping kick. Double arch: (2500 pts.) Left outside kick + right outside kick + left outside kick. Doda: (5000 pts.) Left outside kick + head butt + right outside kick. Catch from Off Screen: (1500 pts.) 6 STRATEGY: The more complicated kicks and stunts you can complete before time runs out, the higher your score will be. Special bonus points are awarded for variety, so use as many different stunts as you can. Surfing Surfing began as the sport of Hawaiian kings; now it rules the California coastline. From Santa Cruz to Rincon Point, surfers and their colorful boards dot the miles of sun-splashed beaches. And you're about to join them. You'll shoot the curl, shred the tube and probably even eat a little sand (when you wipe out). It's going to be hot. You'll be there. And you'll be awesome. OBJECT: Competition surfing is a game of staying near the curl of the wave and maneuvering your board smoothly at high speeds. Ride the face of the wave, moving back and forth, in and out of the tube. "Use" as much of the wave as you can before your ride comes to an end. o Press the FIRE BUTTON to catch a wave and start the event. o Hold the joystick LEFT to avoid wiping out at the beginning of your ride. o To steer the board to the surfer's left, move the joystick LEFT. o To steer the board to the surfer's right, move the joystick RIGHT. o Hold the FIRE BUTTON down to make sharper turns. Note that sharp turns slow you down. o If you go too close to the bottom of the wave, you'll either wipe out or end your ride by leaving the wave. o To end your ride cleanly, go over the top of the wave. o If you go over the top of the wave and turn your board around in the air, you can catch the wave again (but you'll wipe out if you come back down at a bad angle). o You'll get 1 minute, 30 seconds for the event or 4 wipeouts. You earn more points for longer rides, so try to ride each wave as long as you possibly can. SCORING: You're scored for the length of your ride, the number of turns you make and your speed each time you turn. You also earn high points from the judges for riding in the tube (underneath the curl of the wave), and riding near the break. "Catching air" scores extra points: ride up to the top of the wave until the end of your board clears the crest, then turn and continue your ride. STRATEGY: Your final score is based on how well you "use" the wave. Riding along straight, far out in front of the break counts for very little. Take risks. The more risks you take to do your stunts, the more points you will earn. 7 Making cutbacks (180-degree turns), moving up and down the wave and doing 360's (complete circles) all earn high scores. Earn maximum points for high speed turns, especially if you complete them near the top of the wave or near the break. Roller Skating Roller skating is hot. Anyone can skate and almost everyone does, with a feeling of freedom unlike any other sport. And CALIFORNIA GAMES skating is as radical as you can get. The trick is to skate down a beach boardwalk without falling. You'll have to avoid cracks in the sidewalk, grass, sand, puddles of water, shoes lying in your path and more. You'll have to squat to miss flying beach balls. You'll even have to jump over missing pieces of the sidewalk! OBJECT: The object in roller skating is to avoid the obstacles and cover the course in the best possible time, with as many stunts as you can perform during the event. o Press the FIRE BUTTON to start the event. o To begin skating, roll the joystick to the UP position. Then roll the joystick to the DOWN position. Continue rolling between these two positions to gain speed. o Move the joystick as shown in the diagram to perform other skating moves. NOTE: (See accompanying pic on this SEWER DOC DISC) o To squat, press and hold the FIRE BUTTON. o To jump, release the FIRE BUTTON. o Try to avoid all the obstacles. You're allowed three falls. On the third fall you are disqualified and your race is over. SCORING: Score points for each obstacle you avoid. Earn double points for jumping over obstacles. Earn the highest scores for 360's while jumping obstacles. Avoid Obstacles: 10 - 30 points Jumping Over Obstacles - 20 - 60 points Spinning Jump Over Obstacles - 40 - 120 points 8 STRATEGY: You'll score points for each object you successfully avoid or jump over, so be careful -- speed is less important than staying on your feet. Remember that you earn points for spinning jumps over obstacles (jumping and spinning at the same time). Complicated moves lead to high scores. But be careful not to fall more than twice, or you'll be out of the competition. BMX Bike Racing BMX stands for Bicycle Motoscross. It also stands for radical action and challenging competition. In this event, riders use strong, lightweight bicycles to race on an action-packed course in the California desert. There are plenty of jumps, bumps and dips. (Rows of low bumps are called "Whoop- ti-dos.") You'll need speed, a good sense of timing and a heavy dose of endurance. OBJECT: The object is to cover the course in the fastest possible time, performing stunts and avoiding or jumping over obstacles. The fastest dare- devil rider will win this event. o Move the joystick RIGHT to start the event. o Move the joystick UP to steer LEFT. o Move the joystick DOWN to steer RIGHT. o Move the joystick RIGHT repeatedly to increase your speed. o Press the FIRE BUTTON to jump. o Move the joystick LEFT to do a wheelie. o When you're in the air, use the joystick to perform stunts: - Move the stick UP to do a table top. Hold the stick as long as possible then release the joystick to put the bike down. - Move the stick DOWN to do a 360-degree turn. - Move the stick LEFT to do a backward flip. - Move the stick RIGHT to do a forward flip. o Timing is important to perform stunts and jumps. You must time the start and finish of each move to complete it successfully. If you're not back in a "centered" position by the time you land or complete your stunt, you will crash. o You're allowed one "serious" fall or three "easy" falls before you're out of the race. If you flip and fall on your head, it's a serious fall. o At the end of the course, press the FIRE BUTTON to stop. You earn bonus points for stopping on the finish pad. SCORING: Try to complete the course within the 2 minute time limit. The faster your time, the higher your score will be. You also get points for each stunt, with bonus points for holding stunts as long as possible. 9 Here's a table of the minimum and maximum points awarded for each stunt: Stunt Minimum Maximum Wheelie 100 200 Jump 200 400 Table Top 500 1000 360 Turn 1000 2000 Backward Flip 1500 3000 Forward Flip 3000 6000 STRATEGY: When you complete the course, you get 60 points for each second left in the time limit. So finishing the course in the fastest possible time is important, but the highest scores go to the riders who perform the most daring stunts. Make a 6000-point forward flip, and you've probably got a lock on the first place trophy. Flying Disk To serious competitors, the plastic saucer invented by two Californians in 1947 is called a "flying disk." Of course, you may know it by another name. Originally spelled Frisbie, the disk's most popular name originated at Yale University, where students first started tossing empty pie plates made by the Frisbie Pie Company one hundred years ago. Now molded from light and flexible plastic, the flying disk is a common sight whirling through the air at beaches and parks everywhere in California, and it's the perfect challenge of skill and timing to wind up the competition in CALIFORNIA GAMES. OBJECT: The object of the Flying Disk is to throw accurately to the catcher at the other end of the field. Score extra points for difficult catches. o Press the FIRE BUTTON to start the event. o You get three attempts to throw and catch the disk. o Try to throw the disk far enough to reach the catcher standing at the other end of the field. o Use the bar at the bottom of the screen to make your throw. The bar has three colors: red, yellow and green. Use the green area for the most powerful throw. o Tap the joystick LEFT to start swinging your arm back. When the needle reaches the green section of the bar, tap the stick RIGHT. When the needle reaches the green section on the right side of the bar, tap the stick LEFT again to release the disk. o The display at the top of the screen helps you move the catcher to intercept the disk after it has been thrown. 10 o As the disk flies across the field, move the joystick LEFT or RIGHT to run toward the point where you think the disk will land. o To catch the disk, you must meet it with your hands. Note that your hands are extended only when you're running or diving. o To attempt an overhead standing catch, hold the joystick UP to reach up for the disk. o To dive after the disk, press the FIRE BUTTON. SCORING: Points are awarded for the throw and the catch. For the throw, score points with the accuracy and height of the toss. The fewer steps the catcher has to run to meet the disk, the more points are awarded for the throw. Points are scored for catching the disk as follows: - 150 pts. for a catch while running right. - 250 pts. for a catch while running left. - 250 pts. for a catch while diving right. - 350 pts. for a catch hile diving left. - 350 pts. for a catch over your head. STRATEGY: Throwing accuracy is the key to winning the Flying Disk (of course, it also helps to make a good catch!). To get the best possible score, throw the disk so the catcher doesn't have to move far to reach it, then make a diving catch or an overhead catch. CALIFORNIA GAMES SCORING AWARDS CEREMONY After every event, trophies are awarded with the names and sponsors of the top finishers in the order they placed. CHAMPION CEREMONY If the players compete in all six CALIFORNIA GAMES events, a final trophy is awarded to the Champion of the games based on the total number of points awarded. First Place = 5 points Second Place = 3 points Third Place = 1 point The points are totaled after all events have been completed, and the player with the most points is the California Champion. EVENT RECORDS If an event record is broken or tied in any event, CALIFORNIA GAMES saves the name of the record-breaking player. The records are displayed on the Event Records screen. If a new record is set for an event, the previous record is erased and the new information appears in its place. 11 CALIFORNIA SPOKEN HERE AGGRO (a-gro) adj. if you're a dare-devilly dude you'll go "way aggro", executing aggressive moves on the ramps and waves of California. AWESOME (ah-sum) adj. awe-inspiring. ie. That's one awesome dude. BIO (bi-o) adj. short for bionic. You've got to be superhuman with aggro moves to be known as bio. DUDE (dyud) noun. buddy: can be used to express disbelief as in "DUDE!", or surprise, as in "DUDE!", or as a friendly greeting, as in "Hey DUDE!" Say while laughing for an attention-getting effect, ie. Duhuhuhude! GNARLY (narly) adj. mind and body bendingly difficult. Waves, ramps and aggro moves can be gnarly. Then there are gnarly tests, gnarly prom dates, gnarly curfews, etc... LIKE (lik) prep. insert anywhere you like, like, in any sentence, in, like, any context. Used most effectively when upset: "it's, like, geez..." Or the coolest way to use "like" is with "all" (for more description) "It's, like - I'm all - Duuude you've got sand in your jams." RADICAL (raa-di-cul) adj. 1)outrageous "Radical moves, dude!" 2)cool: "It'd be radical if you could cruise to the ramp around 5 o'clock." TOTALLY (toh-tul-ly) adj. completely, entirely: something or someone is totally awesome, radical, or aggro. In California everything is totally something. (companion word: see Tubular) TUBULAR (tyu-byu-lar) adj. an adjective that came from the sea and has evolved into an everyday term. Parties, concerts, etc. can be totally tubular. It's use is endangered by the word "awesome". (companion word: see Totally) ------------------------------------------------------------------------- ..........Doc written by THE HELLION & THE CORSAIR of TNG / WOW........... CHECKMATE INSTRUCTIONS COURTESY OF THE TERMINATORS AND SEWER SOFTWARE 4/4/89 INTRODUCTION Chess is a magnificent and unique game. It is the only game which has been played in every country on the globe - between the south pole and the north, in space, and between the earth and orbiting cosmonauts. The rules of chess are few and straightforward, so they can be learnt in just a few minutes. Yet chess is so complex that every game is different. A lifetime is insufficient to attain total mastery of it. Indeed, some mathematicians have established that the total number of chess games is in excess of the number of particles that make up the universe [BULLSHIT - TERMINATORS]. No other game can claim such incredible scope - few others can justly claim to be enjoyed equally by beginners as well as experts. The game can be played at a variety of speeds: ten seconds, or even less, for each move: five minutes for a whole game: or to the other extreme, as much as a week for each move. Chess can be played "over the board", by telephone, telex, via the mail, by computer - the game can be played by anyone, against anyone, anywhere, and under any conditions [OO'ER - TERMINATORS]. As you begin to play chess on your Atari ST computer, and as you play time and time again, may you gain the same enjoyment this game has brought the countless millions of people who have played chess since its invention over 1,400 years ago. There are two versions of Checkmate on this disk - one for monochrome monitors, the other for colour monitors. If you have a colour monitor, select "SET PREFERENCES" and set the resolution of your monitor to "MEDIUM RESOLUTION". LOADING INSTRUCTIONS 1. Load disk in drive, click on icon CHECKM.PRG to start program. 2. Checkmate will now be loaded and you are now ready to play. 3. You can now begin to play, or you can first select your options from the top of your screen. 4. To select an option, move mouse cursor to top of screen, click button on your selection. 5. To move a piece, move mouse cursor on the piece you want to move, click and hold down left button of mouse. Now move cursor to square you want to got to: when mouse cursor is on that square, release mouse button. If this is a legal move, the piece will now be moved to that square. ICON EDITOR If you want to create your own chess pieces, select option QUIT and you will return to Desktop. Now click on ICONEDIT.PRG, when screen appears click on corner to see new files. Now click on PICTURES.BW, and select a chess piece you want to create. Use left button of mouse to colour in square and right button to erase square. [WE FOUND THESE INSTRUCTIONS ON THE DISK - TERMINATORS] CHECKMATE 1. CONTENTS 1. Contents 2. What is Checkmate? 3. Begin 3.1 Checkmate 3.2 Check-mate for quick starters 4. Menus 2. What is checkmate? o Checkmate has seven play-levels, with calculation- times running from 10 seconds/move to 10 minutes/move. o CHECKMATE has got 5 special mate-levels for mate- problems upto "mate in 5 moves." o CHECKMATE has got special Quick and Analyselevels. o The calculations can be stopped at every moment. o Change of sides is always possible. o CHECKMATE shows his forced moves, estimation of his position and his calculation debts. o Moves are shown in the normal, international checkers- code. o All moves can be taken back, until the first move. o Moves which have been taken back can also be placed back. o Easy defining of set-ups. o CHECKMATE announces mate. (upto Mate in 9 moves!) o CHECKMATE gives up when no winning is possible. o CHECKMATE does not allow false moves and set-ups. o CHECKMATE has got separated clocks for computer and person. o CHECKMATE recognises Remise with bad material (like 2 Kings) o Set-ups, games and complete openings-libraries can be saved on disk. o A Monitor-Funktion can check the game between two persons by the computer. o CHECKMATE comes with an openings-library, which can be altered. o Ofcourse is CHECKMATE completely GEM-driven, with drop-down menus. o The pieces can be changed by the user. o CHECKMATE works on every ATARI ST-Computer (260ST, 520ST, 520ST+, 1040ST), in medium and high resolution. 3.2 Die KRABAT-Diskette CHECKMATE needs the following files: CHECKMATE.PRG The programm.. CHECKMATE.RSC ...and his Resource-File ICONEDIT.PRG A Icon-Editor (nur fr SM124-Monitor) PICTURES.BW A folder with the symboles of the pieces for a Monochrome monitor SM 124 PICTURES.COL A folder with the symboles of the pieces for a colour monitor OPENINGS A folder, inwhere the openings-library is saved. POSITION A folder with some checkers set-ups. CHECKMATE.TXT This documentation in ASCII-Format CHECKMATE.DOC This Dokumentation im 1st-Word-Format 3.3 CHECKMATE for quick starters. Please start CHECKMATE with a double-click on the CHECK- MATE programsymbol. When the program is loaded, three windows appear on the screen: o Left appears the GAME-window: Inhere all the moves are note down. o The window in the middle is the CHECKMATE-window, inhere is the checkers-board, on where the play is played. Moves are made by dragging a piece from their original field to the new field. o Rights is the Search-window. In this window CHECKMATE can be followed as he is calculating on his next move. Shown is CHECKMATE best move so far, the move he expects on that one, and the estimation of the move. (100 points is one pawn). Further the calculationdept. The other variants which are being tested are shown under Actual variants, just as the variants which under this calculation dept still have to be tested. First you choose a play-level in the play-level menu. CHECKMATE offers you a 7 play-levels with an average time from 10 seconds a move upto 10 minutes a move. Next to those he has a special Quick-chess, from ca. 5 minutes a game, and a analyse-level. When first started, the first level is chosen. Ofcourse is not much to be expected from the first levels... When you want to play with white, you only need to make a  move, by dragging one piece to a new place. After that CHECKMATE starts with his calculation of his move. When you move a pawn from E2 to E4, CHECKMATE will probably move from E7 to E5. (When you want to stop CHECKMATE from calculating on the first moves, you can read the openings- library before starting the game.) 4. The menus from CHECKMATE CHECKMATE is directed over five drop-down menus.: Desk Files Game Editor Play-level o 00:00:00 00:00:00 Right from the menus there is a checkersclock. To the left is your clock, to the right your computer's. How the notation works: o e2-e4 Move from Field e2 to e4. o e2xe3 Move from Field e2 to e3 and remove old piece. o d2-d7+ Move from d2-d7 and give offer. nach d7. 4.3 File-menu In here one can open and close all data. 4.3.5 Open Openings-library Checkmate can use an openings-library. If this library is opened, and CHECKMATE recognises these moves in the game, it plays this opening automatic. DB MASTER ONE INSTRUCTIONS COURTESY OF THE TERMINATORS AND SEWER SOFTWARE 7/4/89 TRANSCRIPT OF DB MASTER ONE MANUAL page i TABLE OF CONTENTS UNDERSTANDING FILE MANAGEMENT 1 Read this first if you are new to computing and to file management. INTRODUCTION 1 A LIBRARY EXAMPLE 1 A NEW CARD CATALOG 1 2,000 CARDS TO FILL IN 3 PUTIING YOUR CARDS IN ORDER 4 NOW STUDENTS CAN FIND BOOKS 5 ARE OUR MODERN LITERATURE BOOKS CURRENT? 6 CHANGES AND CAUTION 8 DB MASTER ONE BASICS 9 This section gets you started using DB Master One. INTRODUCTION 9 REFERENCE SYMBOLS 9 USING THE COMPUTER 10 GETTING STARTED 11 THE BUILDING BLOCKS 13 This section describes the five major parts of file management. INTRODUCTION 13 FIELDS 14 FORMS 16 FILES 18 RECORDS 19 REPORTS 21 page ii MENUS AND DIALOG BOXES 23 Diagrams and definitions show you how to use DB Master One. [FORGET THE DIAGRAMS - THE TERMINATORS] INTRODUCTION 23 MAKE ONE: CREATING FORMS 24 MAKE FILE MENU 24 ITEM SELECTOR BOX 25 EDIT MENU 26 SPLAT MENU 27 OPTIONS MENU 28 STYLE DIALOG BOX 29 USE ONE: MANAGING RECORDS AND PRODUCING REPORTS 30 USE FILE MENU 30 EDIT MENU 31 REPORT MENU 32 REPORT CONTROL PANEL 33 REPORT FORMS 34 REPORT FIELDS 35 REPORT RECORDS 36 REPORT SORT 37 CHOOSE REPORT DIALOG BOX 38 RECORD MENU 39 FIND RECORDS DIALOG BOX 40 INDEX 41 Page numbers are listed for all the subjects in this manual. page 1 UNDERSTANDING FILE MANAGEMENT INTRODUCTION This chapter is written especially for those of you who are learning for the first time how to manage information using a computer. We believe that the most important concepts of computerized filing are the same as those in paper-based filing systems. The easiest way to learn these concepts is to clarify the basics about managing the information the familiar way, on paper. In this chapter, we'll say that you are the librarian of the Happy Valley School. We will first create a catalog of books. Then, we will describe what you did that is common to both paper and computerized filing systems. Each section ends with a few definitions that apply to all filing systems. These concepts and terms are not limited to DB Master One A LIBRARY EXAMPLE A NEW CARD CATALOG As the librarian in Happy Valley School, the superintendent calls you into his office on your first day. He says, "We had a fire in the library last night, but don't worry, none of the books burned." "That's good," you reply. But soon you discover that what burned was the card catalog that described each of the 2,000 books and told the reader where to find it. Your immediate task is to create quickly a new catalog that contains information to help students to find books. What is that information? For each book, you need: author's name, book title, publisher, date published, number of pages, type of book, subject matter, and a special library index number. page 2 On what will you keep this information? You decide to use small index cards. Carol in the print shop agrees to produce 2,000 of these cards overnight. How will you store these cards? You have visions of note cards spilling out into the hall where the superintendent will see them. Frank, the woodworking teacher, offers to build a card file with drawers that will accommodate that 2,000 cards. Basics What you have done so far is to make a form and file. You decided: what information is needed, what form you would use to store that information, and how you would store the information once the form is filled in. Field Each kind of information. Form The paper (or whatever) on which information is placed. Blank form A form that has fields placed on it, but does not yet have specific information filled in. page 3 File A storage device which, at a minimum, has one blank form, a name, and the capacity to hold a number of filled-in forms. 2,000 CARDS TO FILL IN! Early the next morning, you meet Mrs Brown, who teaches English Literature, and relate your concern about having to fill in 2,000 cards. She offers to lend you her class for a day. Carol delivers the 2,000 blank forms just as you and your "volunteer" workers arrive at the library. You assign a section of shelves to each student, and they start filling in the information for each book. Later in the day, you notice that a student has written in "The Rutabags of Omar Khayam." The superintendent would not be amused, so you correct the card. page 4 Basics In this section you entered data onto your forms. You took blank forms and filled them in with real information. And you changed information which you knew to be incorrect. Data  Specific information entered on a form. Record A filled-in form. Editing Making changes to the fields of a record. PUTTING YOUR CARDS IN ORDER One day later all the cards are filled in. Now you have 2,000 cards, in no particular order. How could anyone find a specific card in that mess? So you and your volunteers begin sorting the cards into alphabetical order by the author's last name. Boxes are brought in to hold cards for each letter of the alphabet, and the students toss the cards into the appropriate boxes. The next day, your volunteers first pull out any cards that were put into the wrong box and then sort out the cards in each box into alphabetical order. Finally, they move the cards over to the cabinet drawers. Now the filing cabinet is complete! page 5 Basics You organized the records before storing them in the file. There has to be an order to a file if people are going to be able to use it. Sort The process of rearranging records according to the data in a certain field. File order The order in which records are stored in a file. NOW STUDENTS CAN FIND BOOKS! The library now has an author card file! When Mrs Brown assigns a term paper on Shakespeare, you know you're ready to help. Your library has 45 cards for works by Shakespeare. Students can go to the file drawer marked "SC-SP", flip through the cards, and find all the cards for Shakespeare. Basics One of the most important reasons to have a file is to be able to find a particular record or a group of records quickly. Filing records The process of searching through a file to find one or more records. page 6 ARE OUR MODERN LITERATURE BOOKS CURRENT? To show your appreciation to Mrs Brown, you ask if there is any particular information she needs from the new card catalog. "Defninitely," she says. "I want to show the superintendent that the library needs to update its modern literature collection. So I'd like to show him all the books published in the library after 1960, and how many are fiction compared to other types of books." As the color drains from your face, you mutter, "Two thousand books on the shelf. Two thousand cards in the file organized by the author's last name." You are going to have to look at every card in the file to get Mrs Brown's information. At the top of several sheets of paper, you write the different types of books (fiction, reference, etc.). Then, you divide all the cards among the volunteers and tell them to look at each card until they find a book published after 1960. Then, they are to look at the type of book and write down the author's name, book title, and date of publication on the appropriate sheet. A day later the task is finished. "Well," says Mrs Brown, "I appreciate this list, but I really need the book titles written down by their date of publication, not by the author's name." You spend half of the next day rearranging the list to meets Mrs Brown's requirements. [WHAT A BITCH! - THE TERMINATORS] Basics Sometimes you may need to see information fro more than one record at a time. You may need a listing of certain fields from selected records. And you may need to have that information sorted differently than the file order. What you need from the file is a report. page 7 There are four major things to consider when you prepare a report: Report fields The fields that are included in the report. (for example: name, title, date of publication, etc.) Report records The selected records that are used. (in the example: books published after 1960) Report sort The order in which records are printed. (by date of publication) Report form The design or layout of a report. (in columns) page 8 CHANGES AND CAUTION A memo from the superintendent arrives on your desk. He tells you that a vital piece of information has been left off the cards. He wants the date on which the library acquired the book and how it was acquired (purchased, gift, etc.). There is no convenient place on your cards to add this new information. You will have to print up new cards and transfer over all the information from the old cards. The superintendent has a second concern. He wants to insure that all of your commendable work doesn't turn into ashes in case there is ever another fire. This issue is easier to resolve, but almost as time consuming. After you fill in the new cards, you will photocopy all the cards in the file, taking care to keep them in order so that they don't need to be alphabetized again. Then, you will put the copies in the storage room of the basement. Basics No one sets up a file correctly the first time! Usually, you will have to add and delete fields in order to make your file what you want. Even then, you will find that information isn't stable. Your information needs will probably change over time. You may even decide to change the file order. You will have to redesign the file. A file used in your work often represents a very significant investment. You will want to copy your file in case the one you work with gets damaged and cannot be used. Redesign Changing the form after it has been set up. Backup A complete copy of your file. page 9 DB MASTER ONE BASICS INTRODUCTION This chapter describes a few computer basics you'll use when you start and leave DB Master One and how to get on-screen help whenever you need it. REFERENCE SYMBOLS In the remaining sections of this manual the following symbols have been used to make the instructions clear and brief: ARROW The pointer (screen location of the mouse). POINT Place the ARROW on an object. CLICK Click the mouse button once. DOUBLE-CLICK Click the mouse button twice quickly. PRESS Hold the mouse button down. DRAG POINT, PRESS and move the mouse, pulling the object under the ARROW with the mouse. CLICK Save Instructions using menu options show the option in bold text. [THEY DON'T HERE! - THE TERMINATORS] NB An arrow [IN THIS CASE NB] in the margin points to special notes for your attention. page 10 USING THE COMPUTER We assume that you know the basics about using your computer. Standard operating techniques are covered in the Owner's Manual provided with your computer. Changing The operating system lets you select different screen screen resolutions depending on the type of monitor you are using. resolution Files for DB Master One can be created in low, medium or high resolution. When you create a file in one resolution, you cannot open it using a different resolution setting. Mouse Only the left mouse button is used with DB Master One. Keyboard Most of the menu options can be started directly from the commands keyboard instead of with the mouse. The character ^ on the screen represents the Control Key. Hold down [Control] while pressing the letter shown on the menu. The special function keys are not used with DB Master One. Icons DB Master One uses two types of icons to start different functions in place of keyboard commands. Menu Help icons: At the bottom of each menu heading are pictures that represent the functions available from that menu. CLICK the icon to get Help about the functions of that menu. (Help is also available by pressing the [Help] key, as described below.) Report Form icons: Four layouts are available for producing reports. (See Report Forms in the next section.) When you are designing a report, CLICK the report form you want before you tell DB Master One what information will go into the report. page 11 GETTING STARTED Making a Use the system disk provided with your computer to make a working copy working copy of DB Master One. Instructions for copying a disk can be found in the Atari ST Owner's Manual under "Making a System Backup Disk." As soon as you've amde your copy, store the master program disk in a safe place, away from your working area. If the working disk becomes damaged, you'll still have the original from which you can make another working disk. Starting Because there are two parts to DB Master One, there are two DB Master One ways to start the program: Making a file: When you are ready to design a new form, insert the DB Master One program disk. From the desktop, CLICK MAKEONE.PRG and CLICK Open from the File menu. (You can also DOUBLE-CLICK the program name to open it.) Follow the same steps when you want to redesign a DB Master One file that is already on the disk. Using a file: To begin adding information to the file, from the desktop, CLICK USEONE.PRG and CLICK Open from the File menu (or DOUBLE-CLICK the program name). At the next screen (Item Selector Box), DOUBLE-CLICK the name of the file you want to use. The file is now open and ready for you to add or change records and produce reports. Leaving There is only one way to exit DB Master One properly, whether DB Master One you have created a new file or are using an existing one. CLICK Quit from the File menu. If you want to save your work, CLICK Yes at the screen prompt before you exit. Help whenever Need help or a reminder about how to use part of DB Master you need it! One? PRESS [Help] on the keyboard at page 12 any time to get a quick refresher. To select a topic, CLICK the one you want. Flip through all the Help screens by clicking the buttons marked [More] or [Back] at the bottom of each screen. Making more After you have created a file, you can remove MAKEONE.PRG from space the disk to leave more room for your DB Master One files. You available for will still have the master program disk with the original files MAKEONE program to create other files or copy back onto the disk if you want to redesign the file. page 13 THE BUILDING BLOCKS INTRODUCTION There are five major building blocks in file management. This chapter will describe how each of these building blocks are used with DB Master One. Most of what you will do with DB Master One will be focused on these five parts: Field An individual item of information. Form The screen display on which your fields have been placed. File Information stored on identical forms, which have been saved on the disk and given a name. The file includes any report designs that have been set up. Record A form in which data has been entered. Report Selected information from the file presented visually in a specified format. Reports can produce information from certain fields of selected records, sorted in a specific order. With DB Master One, these building blocks typically are used in the following order. First, decide what fields you want, and place them on the screen where you want. By placing fields on your screen, you are, in effect, designing a form. When you save the form, you make a file. Next, open that file and start adding records by typing in the information you want to save. You will also use the file to find specific records and possibly to delete records. After records are stored in your file, you will produce reports. page 14 FIELDS Label box The first of the two parts of a field, the label identifies the kind of information that will be typed into the data box. A field label may be up to 64 characters. Data box The second part of a field, it holds the specific data which is typed into the field. The data may be up to 3,000 characters. Move box The black box on the lower left edge of the field, which is used to drag the field to a different place. Size box The black box on the lower right edge of the field, which is used to make the data box larger or smaller. Field style The color, size, and appearance of the label and the data. Style is set from the Options menu. page 15 There are three questions to answer about fields when designing your form: 1. What Write down all of the fields (items) that you will want. fields? 2. What Put the most important field first. The data box in the upper order? left hand corner of your screen will be used to determine how the information is stored. 3. Where put? Fields may be placed anywhere on the screen. Follow the steps described below. Fields can contain any kind of information. If fields contain only numeric data, totals will be calculated automatically in certain kinds of reports. (See Report Forms in the next section). Dates To sort properly, always enter dates: YY-MM-DD. For example, January 27, 1986 is 86-01-27. You can use any "seperator" (such as "-" or "/"), but always use the same one. Or use the Date Splat to create three separate fields. (See the Splat Menu in the next section.) Time To sort properly, enter time as HH:MM and use a twenty-four hour clock. For example, 7:45 pm is 19:45. If you want to sort on hours, make hours and minutes separate fields. page 16 PLACING FIELDS ON THE SCREEN 1. CLICK where you want a field to start. 2. Type the field label. 3. CLICK Options if you want to change label and data style. 4. CLICK and DRAG the size box if you want to change the number of characters that will fit into the data box. 5. CLICK and DRAG the move box if you want to move the field. NB. When you CLICK the size or move box, hold the POINTER on the box until you see that the field has an "outline" around it. Three types of fields are available with DB Master One: fields with labels and data, label-only fields, and data-only fields. Label-only Used for titles. Type in a label. Then DRAG the size box fields toward the label until the data box disappears. Data-only Used for columns of data. CLICK where you want the field to fields start. DRAG the size box until the data box is the size you want. Do not type a label. Cut, Copy and See MAKEONE: Edit menu in the next section. Paste fields page 17 FORMS File order Choosing the information by which your reports will be stored is the most important step in designing a useful form. Records are stored in the file based on the first sixteen characters of data closest to the upper left corner of the screen. Records are displayed in file order, including those that match the example you give when you are looking for a particular group. If you print an unsorted report, it will be produced in file order. Long Forms A form can be 100 lines long. To move to fields which are below the bottom of the screen, use the scroll bar on the right hand side of the screen. page 18 FILES A file is created when you save the form that you have been designing. Every time you save your work on the same disk, the curent file is written over the previous one, completely replacing the previous one. NB Save your work often! As you make changes to the file, get in the habit of saving your work regularly. CLICK Save from the File menu and continue working. NB Backup your files! At the end of each working session, make a backup copy of your file. Save the file on your disk. Then, eject that disk and put your "backup" disk inot the drive. Save the file again. NB Keep a formatted disk handy! If you save a file and learn that it has grown too big to fit on the disk anymore, just put a new formatted disk into the drive and CLICK Save from the File menu. If you do not have another formatted disk available, you must delete records until your file fits the on original disk. page 19 RECORDS You can add records to a file by typing information in each field. You must open USEONE.PRG before you can add information to the file. As you collect this information, you can find and display all or specific records. Moving from When filling in the form, PRESS [Return] to move from field to field to field field across the screen. Or CLICK in any field you want. To go directly to fields not shown on the screen, DRAG the scroll bar and then CLICK in the field when it appears on the screen. Adding,Editing See the USEONE: Edit menu in the next section. Fields may be Finding and left blank. Unfilled spaces in a record are not included in Deleting the count of characters stored. FINDING SOME RECORDS DB Master One provides three ways you can look for particular records. Also, you can indicate three different examples for each search. DB Master One then goes through all the records in the file and displays, in file order, those that match the examples you have entered. It ignores whether the characters entered are in upper or lower case. page 20 To look for particular records from the file, first select a field on which you are going to search. Then, specify which type of search you will use. Finally, you enter an example of what you want to find. Repeat these steps a second and third time if you need to make a more specific search through the file. The examples below use the Travel file shown in this manual to find records for specific countries. Equals The first part of the field matches the example. If you say: Country (field) equals (type of search) UN (example), you will find: United Kingdom and United States. Between The data in a filed falls in the range between two examples. If you say: Country is from SL to TA, you will find: Switzerland and Taiwan Contains The data anywhere in a field includes the match example. If you say: Notes (field) contains monarchy, you will find: Long history of monarchy (in the record for France) More than one If examples are in different fields, records must match ALL match example examples. If you say: Continent equals Europe and Population is from 53.9 million to 60 million, you will find: France and Germany If examples are in the same field, record must match EITHER example. If you say: Continent equals North America and Continent equals South America, you will find: Brazil, Canada and United States page 21 REPORTS Reports let you look at information from all or selected records at the same time. DB Master One allows you to produce reports in any of four forms. Samples of these four forms are shown above. [OH NO THEY'RE NOT! - THE TERMINATORS] Reports can be displayed on the screen, printed, or saved on the disk. Form Produce reports in any of four forms: Column, Page, Record and Mailing List. (See Report Forms in the next section.) Fields Two of the forms (Column and Page) require you to choose which fileds are in the report. Records Use up to three examples to choose which records to include in your report when you only want to see information from a particular group. Sort DB Master One can rearrange the order in which the records will be shown in the report. page 22 SORTED REPORTS When no sort order is specified, records are printed in file order. You can rearrange the order in which the records are printed by selecting another field as the first sort field. In file order, a column report shows records for the Travel file listed alphabetically by country. You can, change the sort field to area, for example, and print a report listing the countries from the smallest to the largest in land area. You can even sort your report records first by the continent and then from the highest population to the lowest. In this case you would get a subtotal when all the countries of each continent were listed. By adding these "extras", you can have a report that looks like this: [CAN'T YOU VISUALISE IT MENTALLY? - THE TERMINATORS] page 23 MENUS AND DIALOG BOXES INTRODUCTION This section goes screen-by-screen through the two parts of DB Master One. For easy reference, the page topics are shown in boldface in the left margin. Menus MAKEONE.PRG The same menu bar is used throughout the process of creating a new form or changing the design of an existing form. USEONE.PRG These menu headings are displayed when you use the file to manage records and produce reports. Dialog boxes Dialog boxes function as described in the Atari ST Owner's and alert Manual. A dialog box appears when DB Master One needs more messages information from you and when you save or choose a file or a report design. page 24 MAKE FILE MENU New CLICK New on File menu to clear the entire screen so that you can start over. Redesign CLICK Redesign to change an existing file. Then, make changes exactly as you would change a new form. If fields are deleted, any report designs using those fields will also be deleted. If the data boxes of any fields are shortened, you may lose data from those fields. Save Save stores your work on disk (thereby making a file) and lets you continue. If the disk is full, or if you want to save the form on a different disk, insert a new formatted disk, and follow the screen instructions. Quit Use Quit to return to the desktop. page 25 ITEM SELECTOR BOX Item Selector This box appears whenever you name or save a file. Since it is Box produced by the operating system, not by DB Master One, it is possible that this box could change. How do you get From the MAKEONE File menu, CLICK Save or Redesign. From the this box? USEONE File Menu, CLICK Switch Files or Save. This box also appears when you open USEONE.PRG from the desktop. File name Up to 11 characters may be used to name a file, 8 before the "." and 3 after. If you give a form the same name as another one already on the disk, DB Master One will replace the original file with the current design. File selection To choose a file for redesign or use, CLICK its name from the listing of files in the Item Selector Box, and CLICK OK. Or you can DOUBLE-CLICK the file name. page 26 EDIT MENU Cut Field Cut removes a selected field from the form. Copy Field Use this before Paste to copy a field. Paste Field The most recent cut or copied field can be pasted anywhere on the form. CLICK where you want the field to start, then CLICK Paste. You can paste the same field as many times as you want. Cut Text DRAG the mouse across the characters in a label you want to delete and CLICK Cut Text. Copy Text DRAG the mouse across the characters in a label you want to copy and CLICK Copy Text. Use this before Paste Text to copy text. Paste Text CLICK in any field label. Then CLICK Paste Text to put the most recently cut or copied text in the label. page 27 SPLAT MENU Splat These are ready-to-use fields you can add anywhere in your forms or use as instant forms. CLICK where you want the Splat fields to begin and then CLICK the Splat name. Splat field labels, sizes, styles, and placement can be changed. Mailing List These fields are set up to print a mailing list. You can edit them for other kinds of labels. Moving these fields or changing their size will not affect the form of the mailing label. If you delete any part of this Splat, you will not be able to print mailing labels. Date Three fields for files with dates that you want to sort by year, month or day. Warthogs This very useful Splat form is for all itinerant Warthog collectors in the world. Other Splats Several other Splats have been provided for your use. These may change. page 28 OPTIONS MENU Options Field labels and data can be set in different sizes, colors, and text appearance. The field label style can be different from the data style. Styles are set from the dialog box shown on the next page. When you set a style for the field label or data, the next field you add will use some of those settings. Fields already placed will not change. page 29 STYLE DIALOG BOX Style Dialog This dialog box is used to set the color, size, and appearance Box of the label or the data of a field. How do you get From the MAKEONE Options menu, CLICK Label Style or Data this box? Style. Color For color monitors, you may choose the color of the label and the data. Size Select the size of the label and the data. If you choose a size that does not fit the space available, a message will appear to tell you that it will not fit. Appearance Text appearance can be mixed in any combination. Text will be plain unless modified by another setting. To undo a text appearance setting, CLICK again in the same box. page 30 USE FILE MENU  Record Count These numbers change as you add records to or delete recoreds % full from the file. Switch Files CLICK Switch Files to open a different file than the one currently in use. CLICK the file you want from the Item Selector Box (described earlier). If the screen is not set at the same reolution you used to create the file, you will not be able to open it. Save Save stores your work on the disk and lets you continue using your file. If the disk is full, or if you want to save records on a different disk, insert a new formatted disk and save. Quit Use Quit to return to the desktop. page 31 EDIT MENU Cut To remove data from a field, DRAG the mouse across the characters you want to delete and CLICK Cut. Note: You can also delete selected characters with the [Backspace]. Copy Use this with Paste. DRAG the mouse across the characters you want to copy and CLICK this option. Paste CLICK where you want to paste the most recent cut or copied text. You can paste the same text as many times as you want, and you can paste text into other fields and other records. Clear Field Choose a field and CLICK this option to erase all the data in a field. page 32 REPORT MENU Design New Up to ten different report designs may be saved for later use. This option is more fully described on the following pages. Edit You can change or delete existing reports. You may replace the original design or save both the original and edited version. Chooose the part of the report you want to change and follow the same procedures as used when designing a new report. Print A report can be printed, displayed on the screen, or saved on the disk as a text file to be used with a word processing program. page 33 REPORT CONTROL PANEL Report Control Reports contain four parts: Form, Fields, Find and Sort. After Panel you specify these parts, you give the report a name. Form What does the report look like? How will the information be presented? Fields Which fields will be printed in the report and in what order? Find Which records will be included in the report? Saving the After the report parts are specified, CLICK whatever you want report design to do next. A dialog box will appear asking you to name the report. The report name is printed as the report title and may be up to 23 characters. page 34 REPORT FORM Column The field labels are printed across the top of the page as column titles. Fields are printed in columns with one row per record so that data from a number of records can be presented on one page. A field may be shortened to fit. Totals are automatically calculated for numeric fields with 9 digits or less. Page Field labels are on the left margin of the page, and the data for each field is printed next to its label. All of the data in each field is printed. Each record printed starts on a new page. Record This produces a copy of records which looks like the form you use on your screen. This is the slowest report to print. This form will not calculate totals. You cannot print this form to the screen or store it on the disk. Mailing List This form is only available when the Mailing List Splat is included in the file. It is designed to print standard one- across, six-line, pin-feed labels. Fields left blank are not printed. This form will not calculate any totals. page 35 REPORT FIELDS Report fields If you choose Record Form or Mailing List, the fields are automatically set and you do not need to specify them. If you choose either Column or Page Form, you need to select which fields go into the report. CLICK the fields in the order you want them to print. CLICK a field again to remove it from the report designs. You cannot add label-only fields to report designs. Column fields As you CLICK the fields for the report, a diagram at the bottom of the screen shows the width that each field will be printed. If you choose more fields than can fit on one line, the last characters of each field are cut off to make more room. Fields can be shortened in this manner down to 5 characters. Page fields As you CLICK the fields for the report, labels for those fields will be displayed sideways in the order you choose. page 36 REPORT RECORDS Report records DB Master One prints all records in a file unless you tell it to find a specific group. CLICK Find only if you want your report to include a particular group of records. Particular records are selected for reports in the same way as they are selected for viewing on the screen. (See Find Records Dialog Box.) Three methods of finding records are available: equals, between or contains. Three examples may be given per report. page 37 REPORT SORT Sort field Reports may be sorted by up to three fields. Sort fields do not need to be included as print fields in the report. CLICK the sort field on the form. Sort direction Sorts are normally from low to high numbers and from letters A to Z based on the contents of the sort fields chosen. You can reverse the order and sort from Z to A and highest number to lowest. Subtotals CLICK Yes if you want to print subtotals. When the data in the sort field changes, all fields that hold 9 digits or less will be subtotaled. New page Choose this option if you want to start a new page when the data in the sort field changes. Sort number When you finish with one sort, CLICK the next number if you want a sort within that sort. You can review or change other sorts by clicking the number you want to find. page 38 CHOOSE REPORT DIALOG BOX Choose Report This box appears whenever you select an existing report design Dialog Box to edit or print. Ten report designs may be stored. How do I get From the USEONE Report menu: CLICK Edit or Print. this box? Screen Display the report on the screen. PRESS the [Space Bar] to pause a report and PRESS [Return] to stop it. Print Send the report to a printer. PRESS the [Space Bar] to pause a report and PRESS [Return] to stop it. Disk Store the report on disk for use as a text file. Edit Choose the report you want to work with. CLICK Edit to modify an existing report design. Delete CLICK Delete to remove a report design from the file. page 39 RECORD MENU Add Any time a blank form is displayed on the screen, you can fill it in and add a record to the file. CLICK Add to put a blank form on the screen. CLICK in the field where you want to add data. PRESS [Return] to move to the next field. Find All This allows you to look at all records, one at a time. Find Some CLICK Find Some when you're looking for one record or a particular group of records. Next CLICK Next to see the next matching record in the file, and repeat this step to see each subsequent record. Previous If you want to look again at records you have found, CLICK Previous to back up. Delete To remove a record permanently from the file, find the record and CLICK Delete. page 40 FIND RECORDS DIALOG BOX How do I get This box appears when you CLICK Find Some from the Record this box? Menu. Choose fields You find particular records by typing in an example of what you are looking for. CLICK the first field that has data you want to find. CLICK the kind of match (Equals, Between or Contains). Type in the characters you want to match. Repeat these steps if you have a second and third example. To change an entry, CLICK the number button and go through the same steps. CLICK Erase to delete an example. CLICK Find when you are ready to see the first record in the group. Equals The example matches the beginning data of a field. Between The data falls within a range given in your example. Contains The example appears anywhere in the field. page 41 INDEX A Add record, 39 appearance (text), 29 Atari St Owner's Manual, 10, 11 B Backspace Key, 31 backup, 8, 18 basics, 2, 4-8 between search, 20, 40 black box, 14 building blocks, 13-22 C Clear Field, 31 click, 9 close file (see Quit, Save) color, 29 Column form, 21, 34, 35 contains search, 20, 40 Control key, 10 Copy, 31 Copy Field, 26 copy disk, 8, 11 Copy Text, 26 count chracters, 19 records, 30 cursor, 19 Cut, 31 Cut Field, 26 Cut Text, 26 D data, 4, 13 erase, 31 numeric, 15 data box, 14 first data, 15 data-only fields, 16 data style, 28, 29 dates, 15 Splat, 15, 27 DB Master One, 9, 11, 19, 21, 23 leaving, 11 MAKEONE, 11, 12, 23 starting, 11 USEONE, 11, 19, 30 Delete record, 40 Delete report, 38 Design New, 11, 32 desktop, 11 dialog boxes, 23 field style, 29 find records, 40 Item Selector, 25 report name, 38 disk, 18 making more space on, 12 formatted, 18 program, 11 save reports, 32 drag, 9, 26, 31 double-click, 9 E Edit, 26, 31 editing, 4 equals search, 20, 40 exit DB Master One, 11 F field, 2, 13, 14, 1 blank, 19 color, 29 data-only, 16 dates, 15 delete (See Cut Field) edit, 4, 31 label, 14, 28 label-only, 16 label style, 14, 28, 29 move box, 14 moving field to field, 19 report fields, 7, 21, 33, 35 not on screen, 19 numeric, 15 page 42 placing, 16 redesign, 24 size box, 14 Splat, 27 style, 14, 28, 28 [THAT'S HOW ITS PRINTED HERE! - THE TERMINATORS] time, 15 unfilled, 19 file, 2, 3, 18 backup, 8 name, 25 New, 24 Redesign, 8, 24 Save, 24 save current, 18 selection, 25 size, 18 file order, 5, 15, 17 unsorted reports, 22 filing systems, 1 basics, 2, 4-8 computerised, 1 paper-based, 1 finding records, 6, 19-20, 36, 39-40 between search, 20, 40 contains search, 20, 40 equals search, 20, 40 more than one example, 20 upper/lower case characters, 19 form, 2, 3, 13, 17 blank form, 3 Column, 21, 34, 35 filled-in, 4 length, 17 Mailing List, 21, 35 Page, 21, 34, 35 Report, 7, 21, 33, 35 GH Help key, 11 icon, 10 I icons help menu, 10 report form, 10 Item Selector Box, 11, 25 JK keyboard commands, 10 keys, 10 Backspace, 31 Control, 10 Help, 11 special function, 10 L label-only fields, 16 label style, 14, 28, 29 leaving DB Master One, 11 M Mailing List, 27, 34 form, 21, 34 MAKEONE, 11, 12, 23 match example, 20 menus, 11, 23 MAKEONE, 23-29 USEONE, 23, 30-40 mouse, 9, 10 click, 9 double click, 9 press, 9 drag, 9 move box, 14 N name, 25 file, 25 report, 33 New, 24 new page, 37 numeric data, 15 O open file, 11, 19 operating system, 10, 25 Options, 28 P Page form, 21, 34, 35 Paste, 31 Paste Field, 26 page 43 Paste Text, 26 pointer, 9 Print, 21, 32, 38 new page, 37 subtotals, 37 program disk, 11 Q Quit, 11, 24, 30 R record, 4, 7, 13, 19, 39-40 add, 39 count, 30 Delete, 39 Edit, 31 file order, 5 find, 5, 19-29, 36, 39, 40 Next, 39 Previous, 39 report records, 7, 21 Save, 30 sorted, 5 Record form, 21, 34, 35 Redesign, 24 reference symbols, 9-10 report, 7, 13, 21, 32-38 choose, 38 Column form, 21, 34 Delete, 32, 38 Design New, 32 Edit, 32, 38 fields, 7, 21, 33, 35 form, 7, 21, 33, 34 name, 33, 37 Page form, 21, 34, 35 Print, 32, 38 records, 7, 21, 36 Record form, 21, 34 sort, 7, 21, 33, 37 subtotals, 37 title, 33 totals, 15 Report Control Panel, 33 Report form, 10, 21, 33, 34 Report Name dialog box, 37 S Save, 18, 24, 30 screen resolution, 10 scroll bar, 19 searches, 19 between, 20, 40 contains, 20, 40 equals, 20, 40 more than one example, 20 selected records, 7 sizebox, 14 size field, 14 size text, 29 sort, 5, 21, 22, 33, 37 field, 22, 37 direction, 22, 37 number, 37 Splat, 27 Date, 15, 27 Mailing List, 27, 34 Warthogs, 27 style, 28, 29 subtotals, 37 Switch Files, 25, 30 symbols, 9-10 T totals, 15, 34 time, 15 U upper case characters, 19 USEONE, 11, 19, 23 VW Warthogs, 27 XYZ page 44 THERE IS NO PAGE 44! - THE TERMINATORS I'VE GOT THE BIGGEST WORM IN TOWN, AND I'M NOT TALKING ABOUT A COMPUTER PROGRAM! - CRACKED EGG OF THE TERMINATORS 40A# EVg @Aa @@' P. >_``]A L(>a" ?!.? @ a @j " @\A n`]A".?  tj  ? L @@@x  @P2d /? CCN`:?D@ 2<???Dq h/#`0?@!   @???Cq%`/@ '0@@] A@HAAP"< Kt `` 7HpcQ A00 ?0%߀PC2, ``  $8A A02 0ŘE a Ny$000g @IL]"ܞTa PAɽ $f AC<`R```F$0 ]"@  P# >+> yFxyx@a` `n <1??fh  ~~$ y Fx$yہx~`@g C<2̄ xxq$ 2?@@@` Ȥ0`x ..  ?@@?` 7ۀ`{{ A>v' @ @?0p_ ?0xH0x  p? ?@088xxx     @@@ @@@ @@@ @@@?1? AA?AA?AA?0@Ab$'? ?P< Ap@A":A/ b ~BA?J > A  HIh-?!A @A PA PA PA ~PA  AHH@-@?@!߀KA b((H > S@ JA @ ~BS JA{:݀000'JA $$$pSP`vrr?%rA? $$$4FAx  $0$@$(A $$$A $$$A8  $0$@$:xA? $$$A   j^  3-@Az $$$ JR@A  $$@$ -0A b $$$A $$$A  $$$$ $ـ&^ $e(RV$E(RV $'Rc$^  $$$9 $$$?  @z2{{x0?DOLJH! 0@KOH@t!GO@H0@???V_P@@ D_Q@>" M_AR,> ??#?00@h~b@?O@ j~b@??j~b@??xzj???b@h~b@?????M_AR,> ?? D_Q@>"> ? V_PH@= ? @COH@0?@= ?@KOHD= <?@@EOLH= <?ŠBKJI = ,@@B@BBAIIH p@??} ,@@B@BB@HHH????} ,@@B@BB} <@@B@BB  ?} <@@B@BB| IH?} @@? Cx0? @@@š? |/?ªB?} ??@ ,> ?(>"?*>" ?*>"(>"?*>"*>"??*>"*>"? """*>" >"? """X,|>@ $? """>"@? """4?8? t ?' H ?'0?'?'?'?' WP?' WP?'?'?'?' ?'?'G p?'@ ?'|?'? 0?(D?(HZ~B ?H>"??@H,> ? ?? ? ? ? ?? ?_ ?? ?_ ? ? ? ?  ? ? ?x???{??{?` ?{?`?{??{??{??{??{??p?{?!!!?{??{?!!!??`0?!!!???8 @@@ @@@ @@@ @@@????????? STREET FIGHTER -------------- TYPED IN BY ICEMAN ------------------ GAME SCENARIO ------------- In this game you take the part of a street fighter who travels the world in order to test his skills against combatants of different nationalities. The game is presented in a 5 part multi-load format:each load containing data for a paticular country.The countries are Japan,Thailand,USA,England and China. On loading,the player is presented with a number of options: A-start game with three credits. B-multiload on/off-the player may elect to stay in Japan rather than progress through loads. C-one or two joysticks D-jotstick Player 1 takes the part of street fighter RYU.If a 2 player game is selected then player 2 becomes KEN.These must battle to determine who will go on to fight opponents throughout the world. In each country you must fight two computer controlled opponents before progressing to the next country.These are; JAPAN- RETSU AND JEKI USA- JOE AND MIKE ENGLAND- BIRDIE AND EAGLE THAILAND- ADON AND SAGAT Each country is arranged as the best of three rounds with the victor awarded bonus points for remaining time and energy(the player loses energy when he is kicked or punched or hit by proJ2C˃S#@ѪIICR}egcw&$ B!!)+kc( CR@ԫݿ|Xޛ)ťɅz2*9<4qFD$DDlabs.The strength of your blow is determined by the reading on the strength display when the fire button is pressed and released.The move must be carried out before the time limit is reached. ATARI ST DISK Insert disk,turn on computer and game will load automatically. Follow screen prompts. The player controls the contestents as follows: joystick result DOWN Crouch DOWN & RIGHT Crouch and lean forward DOWN & LEFT Crouch and lean back RIGHT Advance LEFT Withdraw UP Leap UP & LEFT Backward somersault UP & RIGHT Forward somersault The player kicks or punches by pressing and then releasing the fire button with the following effects: DOWN & RIGHT Crouch and kick DOWN Crouch punch DOWN & LEFT Spinning crouch kick RIGHT Kick NEUTRAL Punch LEFT Turn kick UP & RIGHT Flying kick UP Flying punch UP & LEFT Flying spin kick NOTE: 1.The shorter the time in which the fire button is depressed the harder the kick. 2.The direction of the joystick may be varied while jumping adding to the variety of moves. Regards ICEMAN(VAWS) ANTIC PRESENTS GIST by SYNTHETIC SOFTWARE Design: Lee Actor and Gary Levenberg Software: Lee Actor PREFACE Antic is a trademark of Antic Publishing, Inc. GI Sound Tool (GIST) is a copyrighted work by Synthetic Software. Copyright (c) 1986 Synthetic Software. GIST is provided on an unprotected disk because the authors and Antic both believe that the buyer should be able to make backup copies for his or her use ONLY. Because it is unprotected, we expect you to respect the copyright and NOT give, sell or even lend copies of this program to anyone else (we wouldn't do that, would we? - Sewer Rat). The author spent many hours designing, writing and testing this product. His income depends on its sales. The unauthorized reproduction of the GIST diskette is illegal. Please help us to protect and enforce the author's rights in this product so that we may continue to provide you with unprotected software. No part of this product may be reproduced and/or distributed in any form or by any means without the prior written consent of Antic. Antic and Synthetic Software disclaim responsibility for any damages resulting from the use or misuse of this software product, and disclaim liability for losses of any kind or nature, financial or otherwise, incurred or alleged to have been incurred as a result of the purchase and use of this product. For further information and an in depth discussion of sound generation, refer to "Hot Sounds" by Gary Levenberg and Lee Actor in the Winter 1986 issue of STart Magazine. Permission to use GIST Sound Driver Any individual or company having purchased GIST may obtain permission to use the GIST Sound Driver in their commercial application, program, or game. Simply write to Synthetic Software at the address below describing your product and when it will be released. For our information, please include which compiler you are using. Permission for use of the copyrighted GIST Sound Driver (C) 1986 Synthetic Software is only available through a written request. Synthetic Software 880 Wisconsin Street San Francisco, CA 94107 (415)-285-8832 TABLE OF CONTENTS Page 1 INTRODUCTION 1 2 OVERVIEW 2 3 UNDERSTANDING GIST 2 3.1 THE ADSR ENVELOPE2 3.2 NSQ DYNAMIC SOUND3 3.3 DURATION 5 3.4 LFO 6 3.5 FREQUENCY AND NOISE 7 4 REFERENCE GUIDE8 4.1 GEM MENUS8 4.1.1 File 8 4.1.2 Edit 8 4.1.3 Play 9 4.1.4 Misc 9 4.2 EDIT DIALOG BOX CONTROLS10 4.3 ICONS 11 5 ADVANCED USE: SOUND DRIVER 12 5.1 DESCRIPTION 12 5.2 PRIORITIES 12 5.3 SOUND FILES AND DATA13 5.4 HOW TO PLAY A SOUND 14 5.5 IMPLEMENTATION 14 1 INTRODUCTION Sounds computers make include the din of video arcades, the almost human voice of the telephone-number-reader at information, the beeps and squeeks of your corner banking machine, and the sophisticated sounds of modern music synthesizers. Your Atari ST computer contains a sound-generator chip that directly drives the speaker in its monitor. It's capable of making a wide range of musical notes and sound effects. Atari chose the Yamaha YM2149 software-controlled sound generator for their ST computers. Designed originally by General Instruments (GI), this chip has been around for a number of years and, with all the current developments in sound generation, it seems obsolete by comparison. But don't be discouraged; with the help of the ST's high speed microprocessor, the sound chip can generate sounds nobody would have dreamed of. GIST (GI Sound Tool) is a graphic-oriented sound editor for the Atari ST. A motivating force in designing GIST is the opportunity to establish NSQ -- Near Synthesizer Quality -- a standard on the Atari that can be shared by developers and hobbyists alike. We intend to make entire libraries of sounds available through bulletin boards, users groups, and magazines such as START. Part of the GIST package is the Sound Driver. This is a linkable module that you can use in your own application or game to play the sounds you create using GIST. We have supplied versions for Alcyon, Megamax, Lattice and GST. If you use any of these compilers or assemblers, you can easily incorporate sounds into your own program. The Sound Driver is also able to support your efforts toward integrating music in you programs. For more information, see section 6, "Advanced Use." If you are familiar with synthesizers, you may want to go immediately to the Reference Guide on page 8. 2 OVERVIEW GIST works on an Atari 520ST or 1040ST with one or two floppy disk drives and/or a hard disk drive. It operates in monochrome or medium-resolution color but not low-resolution color. It makes use of the mouse, GEM and the keyboard where appropriate. Any MIDI compatible musical keyboard can be used to play your ST. Make a back-up copy of the disk with all the files on it and store the  original in a safe place. Use the back-up disk for day-to-day work. To run GIST you need both GIST.PRG and GIST.RSC on the disk. There are sample sound files on the master disk (all sound files have a .SND extension and are located in the EXAMPLES folder). All other files and folders are for use with the Sound Driver. To load GIST, double-click on the icon or name GIST.PRG to load the program. Once GIST has loaded, you can remove the GIST disk and put in a disk for sound files. You may keep your sound files on a second drive, a hard drive, or a RAMdisk. Once in GIST, you can load a sound file or open a new one and edit that file. The icons are used to play a sounds. You can even use a MIDI keyboard to play notes. 3 UNDERSTANDING GIST The basic component of each sound is a square wave, a digitally generated waveform that sounds much like an electric clock or buzzer. To hear this sound, load the program and using the mouse select File from the menu bar. Click on New to open up a window with the default sound, a square wave. In order to hear this sound, click on the speaker icon. You will hear a square wave. It is not very interesting. GIST takes this as the basic component and allows you to create a wide variety of sounds. In designing sounds electronically, the goal is to create a sound that is "alive," i.e., dynamic, not static. A square wave is static. What distinguishes a live acoustic sound from an electronic one is how it changes over time. A horn is a constantly changing sound, as is the ocean or rain. If you add dynamic control through the use of envelopes and other devices, the electronic sound has a much better chance of sounding like what we want. Dynamic control is the ability to modify the sound as it is happening. The components of the sound that we can change are the volume, pitch and noise. The volume is how loud the sound is; the pitch is what musical note we perceive; and noise is white noise, a randomly generated waveform that sounds like steam escaping from a radiator. To hear an example of white noise, select File from the menu bar and click on Open... A file selector will appear. Double-click on NOISE.SND. A new window will appear over the previous window. To hear this new sound, click on the speaker icon. You have now heard the two building blocks used to generate new sounds. 3.1 THE ADSR ENVELOPE Most sounds have an overall shape -- a beginning, middle and an end. This is sometimes called the ADSR envelope because the shape of any sound can be broken down intofour parts: Attack, Decay, Sustain and Release (ADSR). Many synthesizers have ADSR capability, i.e., they can generate the Attack, Decay, Sustain, and Release. When a horn player begins blowing a note, the first part is characteristic of the instrument as it responds to the changing air pressure. Typically the volume rises quickly to a peak. This is the Attack, and is what makes a horn sound like a horn. If you heard the same sound with the first part cut off, it would sound like an organ. The Attack is usually louder than the rest of the note. It reaches a peak then will Decay back down to the level you hear for the duration of the note. This level is called the Sustain level. When the note is over, the horn player stops blowing, but the air left in the horn enables the sound to linger for just a short time as it fades away. This is called the Release. The Release is second only to the Attack in your perception of a sound. In contrast with the horn, a square wave has no basic shape and thus when heard without any modification, starts and ends abruptly. ADSR is an abstract structure that has been applied to sound for purposes of analysis. The horn player has never heard of it. But for us to be able to manipulate sound electronically, a structure is required. An electronic ADSR follows a prescribed pattern: When a note is begun, this event is referred to as a NOTE ON. The NOTE ON initiates the Attack phase of the sound, during which the volume of the sound goes from zero to its maximum value. This value is the actual volume of the sound. The Decay portion follows immediately after the attack as the volume decreases. The Decay time is the period it takes to reach the Sustain level. It is important to realize that Sustain is a level, not a time. It is the volume of the tone after the decay. The time is indeterminate and depends on the Duration of the note. The Duration is the length of the note and can range anywhere from a few milliseconds to minutes. When the Duration is over, this event is referred to as a NOTE OFF. But the actual sound is not over; NOTE OFF signals the beginning of Release. 3.2 NSQ DYNAMIC SOUND The ST sound chip is programmable. So we took its basic features,letting the chip generate the initial square wave, and created controls that are considered essential on professional synthesizers. Two types of modification (ADSR and LFO) to volume, frequency, and noise are available. These modify the general waveform in real-time (at incredibly high speeds, as the sound is actually made), allowing dynamic control of sound generation. Using GIST, you can make truly exciting sounds on the ST. GIST does not use the built-in ST envelope generators. The confinement of only a single envelope generator with a very limited set of shapes prompted us to design a system which would allow a higher degree of control. The single envelope generator has been replaced with nine ADSR envelopes and nine LFO's, three apiece for each channel. (LFO's will be explained later.) Load BELL.SND. Do this by moving the mouse over File and selecting Open... in the menu that drops down. Listen to it by clicking the speaker icon. This uses an ADSR envelope to generate the distinctive "twang" of a bell. Look at the volume ADSR. To examine the actual values, select the Edit menu and click on Volume in the drop-down menu. (If you prefer, you can also double-click anywhere in the volume box of the sound.) The volume edit box will now appear. The envelope values are listed as Attack, Decay, Sustain and Release. All times are in milliseconds (msec--0.001 second, or 1/1000 of a second). The Attack time, 5 msec, is as fast as it can go; it takes 5 msec (almost instantaneous) for the level of the sound to reach full volume, the value designated in Volume. This is the Attack and sounds no different than the sharp ON of a squarewave. What makes this sound like a bell is the Decay and Release. Once full volume is reached, the sound decays to the Sustain level in 100 msec, about 1/10 of a second. The Sustain level is 80 percent of the full volume (a value of about 12). The time it takes to reach the Sustain level is the sum of the Attack time and the Decay time. In this case, 5 msec + 100 msec = 105 msec. When you play the sound, the Attack phase is initiated. When the time designated by Duration has elapsed, the Release phase is initiated. Selecting the Speaker icon (on the upper left side of the desktop) plays the sound at the frequency determined by the frequency parameter (displayed in the frequency edit box). The duration value is stored with the sound and can be modified from the desktop by moving the Duration "fader" with the mouse. The "fader" is the small rectangular box next to the word Duration on the left hand side of the desktop. It is a horizontal bar that can be moved up and down along the hash marks. Use the mouse and either button to "grab" the bar to adjust the fader. For fine control, click on the arrows next to the fader. Note how the value in the sound window changes simultaneously. In order to have a sound continuously repeat, you can set a "cycle time" with the fader below the speaker icon. If the cycle time is zero, the speaker icon, when selected, will "light up" briefly as the sound starts. The note will complete its duration and stop. If the fader is set to any value, n, greater than zero, the speaker icon will remain "lit up" and the sound will be restarted every n milliseconds. Selecting the Note icon (on the lower right portion of the desktop) differs from the Speaker icon in that it is more like pressing and holding a key on a MIDI keyboard: the Sustain level is maintained while you are holding down the mouse button. In order to begin the Release phase of the ADSR envelope release the mouse button, which is like releasing a MIDI key. Also, the Note icon uses the Pitch parameter to select the frequency of the sound, rather than using the frequency value stored with the sound. You can change the Pitch by clicking on the Pitch fader and sliding it up or down. Pitch is a musical term related to notes: musical notes have a set frequency, but not all frequencies correspond to notes. As with duration fader, you can use the arrows for finer control. Move the mouse over the Speaker icon and press the mouse button. Since the duration of the sound is 100 msec and the length of the attack/decay sequence is also 100 msec, as soon as the Sustain level is reached, the Release phase begins. But, even without the Sustain portion, we still hear a sound! The Release phase of the sound is the part that is heard after the note is turned off. To understand this better, you can compare this to another similar sound. Select OK or Cancel to close the edit dialog box of the current sound, and load in BELL2.SND and turn it on (this means to select the Speaker icon unless specified otherwise). Note how much longer this sound lasts. To play BELL.SND again, click anywhere on its window to make it active, then turn it on. Listen to both sounds again. The only difference between the two sounds is the Release time. BELL.SND is 405 msec and BELL2.SND is 1920 msec, nearly two seconds. To examine the parameters of the current window, select Edit from the menu and click on Volume. To change any of the values, simply use the mouse to select Edit from the menu bar. Then click on Volume, Frequency, or Noise. Remember, you can also double-click on the graph you want to edit. In any case, an edit dialog box will appear. The top of the box contains the ADSR and the bottom the LFO. All values are changed by modifying the graphic waveform with the mouse. Use the left mouse button to select any of the small boxes on the graphic displays. You can either move the cursor to the box and then grab the box by holding down the left mouse, or you can hold down the left button and then move the cursor to one of the boxes. Once it is within reach, the box will be grabbed. To stop changing a value, simply lift your finger off the left mouse button. On the ADSR, the leftmost box is Attack, the next controls Decay and Sustain, and the rightmost box controls Release. To only move Decay or Sustain, holding the Shift key down will only allow up and down movement, while holding the Control or Alternate key will only allow right or left movement. [NOTE: An ADSR with the Peak level the same as the Sustain, by definition has an instantaneous Decay.] On the LFO the leftmost box controls Delay, and the right box controls Rate and Frequency. The Shift, Control and Alternate keys act in the same fashion as with the ADSR. Try different values for yourself to hear the effects. 3.3 DURATION Duration is important enough to merit a special case. For example, the horn player knows how to blow the horn for a very short duration. But what happens when the duration is less than the attack and decay time? Try it. Set the duration to 10 msec. To do this, use the mouse on the "fader" to set the duration value. The sound still sounds basically the same. That is because it is important when designing a sound to consider what might happen when the duration is extremely short. The rule is this: if a NOTE OFF occurs before the sound reaches its Sustain level, it goes into its Release phase. Remember: NOTE OFF signifies the end of Duration. If the NOTE OFF occurs during the Attack, the sound will not reach full volume and will immmediately begin the Release phase at its current volume. If it is in the Decay phase, the Sustain volume will not be reached and the Release phase will begin starting at the current volume. Change the Release to 5 and leave the duration at 10 msec, you will hear a very short sound. It is important to consider what the likely duration of a sound is going to be during its design. If a duration of less time than the sum of the Attack and Decay time is going to be possible, you should specify an appropriate value for Release. Try your sound with both long and short durations. That is the best way to be sure what is going to happen. Consider another way to make the bell sound. Load in BELL3.SND. Its Attack time is the same as the other sounds, but the duration is 505 msec, the Decay is 500 msec, and the Release is 0. Yet, it sounds very similar to BELL.SND. The difference is that this sound is complete when the Duration has elapsed. There is no Release phase. Try playing this note with a duration of 100 msec. It will just stop mid-note after 100 msec. But if you set the Sustain level to 80 and the Release to 405, it will sound more like BELL.SND. You can experiment with the Sustain level to make it sound just like BELL.SND (you could of course change the Decay time, but you can leave the Decay at 500 and adjust the Sustain level instead). This is just to show you the variety of ways you can alter sounds. Now close BELL3.SND and open LONGBELL.SND. This is a more complex version of the BELL sounds. First of all, notice that the Release time is longer. Set BELL2.SND to the same Release time (3840 msec). Now compare the two sounds. Notice how much more interesting LONGBELL.SND is. Some of the differences are subtle, but this is a simple example of how intricate you can get. 3.4 LFO The main enhancement in LONGBELL.SND is the use of the LFO's with both volume and frequency. LFO stands for Low Frequency Oscillator. The LFO's are triangle waves that modify a parameter by repeatedly increasing, then decreasing the parameter value at a specified rate. For example, the volume LFO in LONGBELL.SND modifies the volume by 10 percent. Since volume is 15, it will range over a value from 15 to 15 minus 10 percent of 15. The maximum LFO frequency is 50 Hz. That means the fastest triangle wave you can have will cycle at 50 times per second. The LFO frequency for LONGBELL.SND is 5 Hz. Therefore, the volume will continuously change its value at a rate of 5 times every second. Frequency LFO works the same way, but it modifies the frequency instead. To examine the values for the Frequency LFO, select Frequency from the Edit menu. The example LONGBELL.SND uses both volume and frequency LFO to give the bell a more realistic quality. Typically, an LFO on volume is called tremolo (listen to TREMOLO.SND), and on frequency is called vibrato (listen to VIBRATO.SND). An example using both LFO's is EERIEFLY.SND. To change the values of an LFO, select one of the two small boxes on the LFO display. The leftmost box adjusts the Delay time, i.e., the amount of delay before the LFO takes place. The second box adjusts both the Amount and Frequency. To adjust only the Amount, hold down the Shift key to move the box only in a vertical direction. Holding down the Alternate or Control key will allow movement in the horizontal direction only, to adjust Frequency without altering Amount. LFO's at lower frequencies (under 15 Hz) add a "wobbling" effect to your sounds (like tremolo and vibrato). This is because the changes are happening so slowly that your ear is able to resolve them. LFO's at higher frequencies (from about 15 to 50 Hz) can actually change the basic characteristics of the sound. Load VIBRATO.SND and listen to it. Adjust the frequency LFO to change the frequency and amount to its maximum value. Now play the sound. It sounds nothing like the original sound. You can do the same with TREMOLO.SND, however, the result is not quite as pleasing. You can get a tremendous variety of sounds just with the frequency LFO. For example, listen to DRWHO.SND, EXPLODE.SND, FALLING.SND and LASER.SND. This is just a small sampling of the sounds you can make. 3.5 FREQUENCY AND NOISE Another very important control is the frequency ADSR. It is very similar to the volume ADSR, but the difference is important. When you select any ADSR but volume, one parameter is called Peak. You can't change this value on the volume ADSR, because the volume Attack always remains at 100 percent. But the frequency ADSR can be varied to higher levels. A 100 percent change equals one octave, so the value -300 would lower the frequency ADSR by three octaves. For this reason, you can move the leftmost box on the ADSR both up and down. You are adjusting both the Attack and the Attack level, referred to as Peak. Note that the Peak value can be set as high as 800%. Similarly, the frequency Sustain level can be over the same range. This allows for a frequency to be controlled over a range from eight octaves above to three octaves below the initial frequency. The Release will always bring the sound back to the original pitch. But if you put in a large enough Release, for example, 30000, and a much shorter volume Release, possibly 100 msec, the original pitch will not be heard. This is the case with the DRWHO sound. Another use of this type of control is evident in PLUCK.SND. The beginning of the sound appears to have a "plucked" sounding attack. This is made possible with a very short frequency Attack and Decay and a large Attack level. This technique is very useful in many percussive sounds. The final control to be discussed is the Noise ADSR and LFO. This ADSR acts just like the frequency in that it can go both postive and negative and allows you to adjust the Attack level. Also like frequency, you are shaping the frequency components of the white noise. Select a New sound. Now turn off the square wave by setting Frequency to zero in the Frequency dialog box. Close this dialog box and open the noise dialog box. Using the Noise fader, set it to 32. Play the sound. It sounds like steam being released or someone telling you to "Sh-h-h-h." This contains mostly high frequency components. Now change the noise value to 1. It is a much raspier sound. The higher values contain higher frequencies. This is difficult to hear as pitch. What is important is to remember what each end of the range sounds like. You can make useful sounds just using noise. Load in SNARE.SND. Experiment with the nominal noise value to hear the difference. To hear examples using the noise LFO, load in NOISELFO.SND. Remember the ADSR on noise does not affect the volume of the noise. The overall volume is controlled by the volume ADSR and LFO. It will affect both the square wave and the noise. The noise ADSR and LFO alter the frequency components of the noise. 4 REFERENCE GUIDE 4.1 GEM Menus 4.1.1 FILE Open... Open a file to be selected from an item selector. Close Close current window (or click on upper left corner). New Open a window with default sound (square wave). Save Save file to disk using current name. Save as...Save file to disk using name supplied in dialog box. (Both Save and Save as save two types of files: .SND is the data file used by the editor. .C is the source file used by a C application.) Quit Exit the program. A dialog box will ask if you want to save any open files whose data has been altered (same as Close). 4.1.2 EDIT VolumeOpen edit volume dialog box (^V or double-click). Frequency Open edit frequency dialog box (^F or double-click). Noise Open edit noise dialog box (^N or double-click). These menu items can be selected using the mouse or by entering the appropriate control code (^V, ^F, ^N). To select Volume, press both Control and V on the keyboard simultaneously. For Frequency, press Control and F, and for Noise, press Control and N. Another method to open the edit box is to double-click on the desired area in the sound window. By double-clicking anywhere in the area enclosing the ADSR and LFO marked Volume, you can edit volume. The same is true for Frequency and Noise. 4.1.3 PLAY Single sound Play only the selected window. Ganged sound Play all windows simultaneously. When you select either single or ganged, a check will appear next to your selection. These choices act as a toggle, in other words, you can select either one, but not both. When Single sound is selected, whenever you click on the speaker or note icon, only the sound in the current window will be heard. When using a MIDI keyboard, you can play the sound in the current window on up to three keys simultaneously (3 note polyphony). Ganged sound allows you to play all the sound displayed in windows on the desktop (up to three windows can be open simultaneously). Whenever you click on the speaker or note icon, all sounds will be heard for their respective durations. If you open an edit dialog box or change the duration, only the current window (the one with the gray bar on top) will be changed. When playing a MIDI keyboard, a single key will play all the sounds. 4.1.4 Misc Quiet Turn off all sounds MIDI Enable/disable MIDI keyboard input H/W registers Display all Hardware registers of the GI chip 4.2 EDIT DIALOG BOX CONTROLS When an edit dialog box is open, it will change the values of the currently selected window (the window with the gray bar on top). Regardless of the setting of Single sound or Ganged sound, only the current sound can be affected. All values are changed graphically using the mouse. The ADSR and LFO values are displayed and updated as the graphs are modified. To make a change, you must select with the mouse one of the small boxes at the junctions in the ADSR or LFO. Select with the left mouse button either directly on the box, or by pushing the left mouse button and then moving the mouse over the box. Once you release the mouse, the value will remain at its last value. If the sound is currently being played, the change will not be heard until the mouse is released and the sound is restarted. The right mouse button is also used to change values, however, it is a fine tuning control. This allows for value changes down to one-tenth of one Hertz. The value at the top of the edit box (volume, frequency or nosie) can be adjusted using its associated "fader" and the mouse (either the left or right button). When frequency is set to zero, the square wave is disabled. When noise is set to zero, the white noise is disabled. (When New has been selected under File, noise is set to zero, frequency is set to 262 Hz, and volume is set to 15. All the ADSR and LFO controls are disabled.) The arrows adjacent to the fader is for fine tuning control. Click on the up arrow to increase the value or on the down arrow to decrease the value. Either the left or right mouse button will work. [The right mouse button will also allow fine tuning control of the noise fader on color monitors.] All the values are displayed as either msec or %. All rates (Attack, Decay, Release, and LFO Rate) are displayed in milliseconds (msec, where 1000 msec = 1 second). Levels (Peak, Sustain and LFO Amount) are expressed in percent (%). In the case of volume, the sustain is expressed as a percentage of the actual volume value. If the volume is 12 and the sustain value is 75%, the actual sustain volume will be 9. With frequency, 100% corresponds to one octave above the frequency value and -100% is one actave below. This applies to both LFO and ADSR. If the frequency is 131 Hz and the sustain value is 100%, the actual sustain frequency will be 262 Hz. The actual frequency range is from -300% to +800%. This means the frequency ADSR extends over 11 octaves! Noise can have a value of ranging from 0 to 32. Zero means that noise is disabled. 32 indicates the highest noise frequency while 1 indicates the lowest. 100% corresponds to the maximum value of 32 and -100% corresponds to 1. 50% corresponds to the initial value plus 16 (50% of 32). If your initial noise value is 16, it will reach maximum at 50%. A sustain value any higher would have no effect. If the initial value is 1, it will reach maximum at 100%. The noise sustain values are relative offsets, that is, the actual sustain value depends on the initial noise value. If you consider the sustain values as offsets, 100% is 32, 50% is 16, 25% is 8, etc. The noise value is the starting point for the ADSR and the percent value is a relative offset you add to the initial value to get the actual level. Of course the maximum value is 32. Therefore, if the noise value is 32 and the Peak is set to 100%, you will not hear a change. However, if you start with a noise value of 1, you will hear the sound change from a crunching sound to a hissing sound as it "ramps up" from 1 to 32. Conversely, if you start with a noise value of 32 and set the Peak to -100%, you will hear the sound change from a hissing sound to a crunching sound. Selecting OFF disables the ADSR or LFO. Selecting ON will return the last used values to the LFO and for the ADSR will enable its operation. RESET will cause the sound to return to the values it had when you first opened the edit dialog box. CANCEL will cancel any changes you made and close the dialog box, and OK will restore the current sound with the changes you have just made and close the dialog box. RETURN on the keyboard will have the same effect as selecting OK. Selecting the mouse button and SHIFT allows you to move only in a vertical direction (so that you can modify sustain without affecting decay, or LFO amount without affecting freq). Selecting the mouse button and ALTERNATE or CONTROL allows you to move only in a horizontal direction (thus modifying decay without affecting sustain, or LFO freq without affecting amount). Fine control is available using the right mouse button. Use it in the same manner as the left when adjusting ADSR or LFO values. However, the values will change by 5 for any value displayed in milliseconds, by 1 for percent and by 0.1 for Hertz. This is especially helpful on the LFO amount and rate. AttackMove leftmost box on ADSR display left or right. Peak Move leftmost box on ADSR display up or down. Decay Move middle box on ADSR display left or right. Sustain Move middle box on ADSR display up or down. Release Move rightmost box on ADSR display left or right. When you first adjust an ADSR envelope, the Attack and Decay boxes appear on top of each other. If you want to grab the Attack box, approach it from the left side and you will grab it first. If you want the Decay box, approach it from the right. Delay Move leftmost box on LFO display left or right. AmountMove rightmost box on LFO display up or down. Freq Move rightmost box on LFO display left or right. 4.3 ICONS Speaker: Plays sound using duration parameter. If cycle value is greater than zero, it will play the sound with duration as specified above and repeat it every n milliseconds as displayed in the fader located underneath the word CYCLE. The frequency of the sound played is determined by the value in the frequency edit dialog box. If Ganged sound is checked, each sound will play with its respective duration and frequency. If you change duration, it will affect only the current window. If you change cycle, it will affect all the sounds. Note: Plays a sound with the displayed MIDI pitch for as long as you hold down the mouse button. When the mouse button is released, the sound will go into its release phase. Pitch can be changed with the fader displayed directly underneath this icon. If Ganged sound is checked, all sounds will be played with the pitch designated with the fader. 5 ADVANCED USE: SOUND DRIVER 5.1 DESCRIPTION The GIST Sound Driver is an interrupt driven routine written in 68000. The Sound Driver operates under the 200 Hz system timer interrupt routine. It is installed by changing the interrupt vector to point to the Sound interrupt routine. It therefore executes before the regular system interrupt. The interface between an application program and the Sound Driver consists of several short C language routines. 5.2 PRIORITIES The Sound Driver was designed to allow effective playing of both sound effects and musical sounds. Since there are only three channels available on the GI chip, it is important to organize your sound resources carefully. The Sound Driver has a priority scheme built into it. This allows you to assign priorities to each sound effect and the Sound Driver will determine which sound can play based on its priority. All you have to do to play a sound is request your specified sound to play on any available channel. If all channels are currently playing a sound, your new sound can stil play! You do not even have to worry about which channels are being used or by what sound. When requesting a sound channel, a priority from 1 to 256 is assigned to the sound by the user. If all the channels are busy, and the priority of the requested sound is greater than or equal to any of the currently playing sounds, the requested sound will then take over. In addition, the ADSR envelope allows for any sound to interrupt during the Release phase of the current sound. Once the sound enters the Release phase, its priority is set to zero. It will still play its release unless another sound tries to get that channel. This increases the probability of a channel being available at any time. It also allows the most important part of the sound to be heard. If you require a high density of sound, this technique will be very effective. It also allows you to write your own music driver that can assign priorities to each "track" (a single monophonic voice) of music. For example, you can be playing a track of music with a priority of 10, but if there is a sound effect that must occur, you can assign its priority 15. When the sound effect is over, the music will continue playing. However, priorities are only assigned on snd_on calls, not on snd_off. This means that before turning off a musical note, it is good practice to get the priority of the current sound being played on the voice you are going to issue a snd_off. The routine get_prior is available for this purpose. If the returned priority is greater than that of your musical note, the voice has been interrupted and your music driver should not turn it off. If you do not follow this rule, a sound effect can interrupt your music, but as soon as the musical note that was interrupted is over, a snd_off will be issued that instead will turn off your sound effect. The Sound Driver has been designed to be called from within an interrupt routine. The XBIOS routine for the GI chip (Giaccess) can NOT be called from an interrupt routine. For this reason trap #9 is used as a means of altering the GI hardware registers. Naturally, the application must not use trap #9 for its own purposes. 5.3 SOUND FILES AND DATA When using GIST, each sound is saved as a C source file, in which a label is generated that is the same as the file name (without the .C extension). This label is the name of an array of WORD's representing the sound data. You may want to create one large include file, or you can include each sound separately. The data displayed in the dialog edit boxes in GIST is not always the same format as the data sent to the sound registers of the ST. Volume is the same; zero is minimum and fifteen is maximum. The frequency values are displayed in two ways. The actual frequency is displayed in Hertz. Although this is not the actual value used by the GI chip, it is more convenient to use when designing sounds than a number between 0 and 4095. Since a frequncy of 0 is not a useful frequency, that value is used to turn off the tone generator. When considering the sustain of the frequency ADSR, 100% corresponds to one octave. If the initial frequency is 100 Hz, a sustain at 100% is 200 Hz. An initial frequency of 1000 Hz has a sustain of 2000 Hz at 100%. Percent is a more convenient term than Hertz in this case because the sustain value will change depending on the initial frequency. By using percent, the value will be consisten with the audible change. One octave will be designated by 100%, not a change of 100 Hz in one case and 1000 Hz in another. The values for noise are exactly the opposite of what they are on the GI chip. GIST uses the value of 0 for noise to indicate it is disabled. A value of 32 indicates the highest frequency of noise, 1 indicates the lowest. We find this to be a more sensible way of displaying the noise values. 5.4 HOW TO PLAY A SOUND The routine to turn a sound on requires as parameters only the pointer to the sound and its priority. The information for pitch, volume and duration are part of the sound data. The channel can be chosen by the Sound Driver based on the priority of the sound. Once the duration of the sound has elapsed, it will be turned off automatically by the Sound Driver. However, if you want to turn a sound on from a music driver in your game or application, the same routine is used. By specifying the pitch of the sound, it is treated as a musical tone. This means the sound will remain at its sustain level until turned off by your music driver. Remember, becuase of the ADSR, all sounds are capable of being sustained for an indefinite period. This is a desirable feature when playing music. 5.5 IMPLEMENTATION In order to use the Sound Driver, there are separate folders on the master disk: Megamax, Alcyon, Lattice and GST. Within each folder are the object files required and a sample Make file or Link file. Also on the master disk is a file named DRVRDEMO.C (There is a special DRVRDEMO.GST is the demo GST program). This C program will use all the Sound Driver routines. Below is a description of all the Sound Driver routines. Install_int will install the interrupt routine. The vector for the 200 Hz system timer interrupt routine is set to point to the Sound interrupt routine. This routine MUST be called after appl_init and before any of the below routines are called. Calling sequence is: install_int() Remove_int will remove the interrupt routine. The 200 Hz system timer interrupt routine vector is returned to its normal location. This routine MUST be called prior to appl_exit. None of the below routines should be called after this routine. Snd_on will play a sound that was created using GIST and stored as a C source code on a channel of the GI chip. Calling sequence is: snd_on(sndptr,voice,volume,pitch,priority) where: WORD *sndptr =the pointer to the array of parameters known as sound data, e.g., drwho[]. WORD voice =the voice number corresponding to the GI channel number 0, 1, or 2. A -1 tells the sound driver to use any available channel. WORD volume=volume of the sound (0-15) or -1 to use volume stored with sound data. WORD pitch =the pitch of the sound. When playing sound effects, (pitch= -1) the sound will play using the frequency value in the sound data; the duration is determined by the duration value in the sound data. A sound_off will automatically be issued when the duration has elapsed. When playing musical tones, pitch (24-108) corresponds to the semitone number (60 = middle C on a piano keyboard or 262 Hz; 72 = one octave above; this is the same as MIDI pitch numbers). The sound will remain on until a sound_off is issued. In other words, if pitch = -1, it is considered a sound effect. If pitch is specified, it is considered a musical note. WORD priority =priority of the sound (0-32767) where the higher the value, the higher the priority. Equal values take precedence over each other. When a snd_off is issued, the priority is reduced to zero during the release phase of any sound. Thus, priority should normally set set to at least 1. The voice number used will be returned. If no voice was available, -1 is returned (NOTE: type WORD is always returned except in GST which returns type int (32-bits)). Snd_off will cause the sound to move into its release phase and reduce the priority to zero. The calling sequence is: snd_off(voice) where: WORD voice =the voice which is to be moved into its release phase (0, 1, or 2). Any other value has no effect. Stop_snd will cause the sound to completely stop. No matter what phase the sound is in (attack, decay, sustain, or release), the sound will end. Unlike snd_off, there is no release. The calling sequence is: stop_snd(voice) where: WORD voice =the voice which is to be stopped (0, 1 or 2). Any other value has no effect. Get_prior will return the priority of the requested voice. This routine is useful if you have a case where a snd_off might turn off the wrong sound. You can call get_prior and issue the snd_off only if the priority matches the original. The calling sequence is: get_prior(voice) where WORD voice = the voice whose priority is requested (0, 1 or 2). (NOTE: type WORD is always returned except in GST which returns type int (32-bits)). Init_snds will completely stop sound on all all channels. The calling sequence is: init_snds() END *********************************************************************** This DOC was brought to you by SEWER SOFTWARE in this third DOC DISK. It was edited and corrected by SEWER RAT on the 20th of April 1989 and presented for your enjoyment in SEWER DOC DISK NUMBER 3. *********************************************************************** GOLDRUNNER...The ST Docs. Typed in by Sewer Possum using TEXTCRAFT on the AMIGA. I liked the game so much I bought the original! The Earth is dying, Man has so polluted his environment, it can no longer sustain him. New worlds have been found. Ships are ready for a mass migration. Between the old legacy and the new, hope lie - the Ringworlds of Triton. Artificial worlds, of unknown composition and built by an unconceivable technology, the Ringworlds are inhabited by the most hostile race in the universe. They will destroy anything within range of their awesome weapons. Yet their great power might be their weakness. They never considered that small, one manned fighters- against which they have only the most rudimentary of defences,- would dare to invade their inviolable space. Only the most skilful and daring of space pilots have any chance of success. You are chosen. An ex-space pirate, once the scourge of the authorities, you carry the desperate hopes of a ravaged earth. You are - The GOLDRUNNER. Loading To load the game, turn off your computer and remove all peripherals. Put your GOLDRUNNER disk in drive A and turn on your computer. The program will auto-boot and enter its display mode. Press key 1 for a 1 player game or key 2 for a 2 player game. Controls You may control the game using the mouse, keyboard or joystick in the non mouse port. There is no need to choose your controller, you may use any of them at any time. Keyboard control is by means of the arrow keys, the Space Bar and CAPS LOCK or ALT keys. If you are using a joystick, you will need the space bar for booster control. In addition the game can be paused/restarted with the F8 and F9 keys. F1 causes a reset and F2 toggles between 50Hz and 60Hz operation, giving a slightly different game. This is intended primarily for American users, who may benefit from using 50Hz operation if the monitor will allow it. Try it and see. F10 is a conversation piece. Playing the Game To destroy a ring, you must fly on the inside of it destroying anything which can be shot. Each ring has a certain amount of energy in it. Any machinery or building destoyed will reduce this energy. When the ring energy has been reduced to zero the ring is dead and you may leave by the exit building. Flying defences will not hurt you but their disrupter bombs will. Most ground objects can be flown over, but the taller ones (those which cast longer shadows) will destroy you - avoid them, they cannot be destroyed. Each of your spacecraft initially has wing lasers, auxillary boosters and an armour strength of 5 units. As it is hit by disrupter bombs, both armour and craft ability are reduced. Travelling between rings is totally safe. Bonus points can be scored here. (To exit a level, fly into the largest hangar on that level after reducing ring energy to zero. Don't attempt to exit the level until you've destoyed sufficient ground targets or you'll be minus one spacecraft!) Status The right hand side of the screen is a status display, showing the the high score at the top and your present score at the bottom. Also shown is the current player number and the ring number. The 3 centre icons represent ring energy, wing lasers and auxillary boosters. Current armour strength is shown below the status area and the number of spacecraft remaining is shown above the status area. SPELLBINDER (THE SPELLING CHECKER, NOT THE GAME) INSTRUCTIONS COURTESY THE TERMINATORS AND SEWER SOFTWARE 5/4/89 EXCERPT FROM JANUARY 86 ISSUE OF ST-LOG Spellbinder Create dictionaries, perform real-time editing and get proofing output. by Kirk Stover Have you ever wished for a spelling checker that could proofread any text file, allowing real-time editing and dictionary updates? Well, Spellbinder offers you all of that, and more! Spellbinder reads through the text file of your choice, creating or updating a dictionary for later use, and creating a proofread output file. It's very easy to use. To make your copy of Spellbinder, type in the ST BASIC program shown in Listing 1 (check your typing with ST Check - see page 84) and run it. The file SPELLER.TOS will be written to your disk. Listing 2 is the source code for Spellbinder and is not necessary to run the program. It is included for those who have an interest in 68000 assembly language. To run the program, just double-click on SPELLER.TOS. This will present you with a prompt that asks you to type in the name of the dictionary to be used. If you enter a dictionary name which already exists, it will be loaded inot memory. Otherwise, you'll be given the option of retrying, or creating a new dictionary file. Disk subscribers will find a beginning dictionary on this issue's disk, and it will also be available on the Atari Users' Group on Delphi. Once the dictionary name has been established, Spellbinder will ask you the name of the text file to be proofread. Simply type in the filename. If the program doesn't find it, you can either retry, or cancel and return to the desktop. The final prompt will ask for the name of the proofread output file. The program will begin reading the input file, attempting to match the words with those found in the dictionary. You can watch the program's progress on- screen. Anytime it reads a word not found in the dictionary, that word will be displayed in reverse video, and you'll be given the option to add, change or ignore it. "Add" will place the word in the dictionary, available the next time it's encountered in the text file. "Change" will prompt for a replacement string, so you can correct the spelling. This is a 64-character maximum. "Ignore" will not update the dictionary, but the word will be found in your output text file. This procedure is repeated until the end of the input text file is reached. If your dictionary has been changed by using the add option, Spellbinder will ask you if you want to save the updated version of the dictionary. Hitting Y will bring a prompt for the new dictionary name, then an attempt to save it with your changes. It's good practice to always use a new name, so you have a backup copy. Pressing N will take you straight to the "thank you" sign-off without changing the dictionary. Helpful hints If you have multiple drives or a ramdisk, you can speed up the process, by specifying different devices for the filenames. The larger a dictionary is, the slower its reading will go - and the likelihood of finding matches will also be increased. Reading several text files will create a dictionary of the words you'll most often encounter. The dictionary files you create can be edited with any standard text editor, and can be printed by simply double-clicking on the filename on the desktop. This will produce and easy-to-read dictionary listing, with each word on its own line. Spellbinder allocates memory for the dictionary at run time. If you get "load" errors when loading the dictionary, rename your desk accessories and/or ram disk, and reboot your system. Kirk Stover is a systems analyst at an insurance company in Minnesota. He enjoys working on his 520ST in both C and assembly language. His special interest is writing time-saving utilities. Listing 1 [WHY BOTHER? - TERMINATORS] Listing 2 Assembly listing text ************************************ *** Spellbinder Spelling Checker *** *** by Kirk Stover *** ************************************ gemdos equ $01 term equ $00 conin equ $01 rawconio equ $06 conws equ $09 conrs equ $0a create equ $3c open equ $3d close equ $3e read equ $3f write equ $40 malloc equ $48 setblock equ $4a main move.l sp,a5 ; a5 has current stack pointer move.l 4(a5),a5 ; base page start move.l $c(a5),d0 ; text segment length add.l $14(a5),d0 ; data segment length add.l $1c(a5),d0 ; bss segment length add.l #$100,d0 ; base page offset move.l d0,-(sp) ; program length to save move.l a5,-(sp) ; starting address of program move.w #0,-(sp) ; dummy parameter move.w #setblock,-(sp) ; setblock function trap #gemdos ; call gemdos routine add.l #12,sp ; restore stack bsr initialize ; allocate memory bsr load_dict ; load dictionary file bsr open_in ; open input file bsr open_out ; open output file lea clear_scr,a0 ; clear screen for processing bsr write_str ; bsr proofread ; read and match bsr save_dict ; save dictionary exit move.w #term,-(sp) ; return to the desktop trap #gemdos initialize move.b #0,dict_flag ; turn off dictionary update flag move.l #0,dict_len ; initialize dict length to 0 move.l #-1,-(sp) ; return amount of memory move.w #malloc,-(sp) ; that is available trap #gemdos ; call gemdos addq.l #6,sp ; restore stack move.l d0,max_dict ; move.l d0,-(sp) ; request all available memory move.w #malloc,-(sp) ; trap #gemdos ; call gemdos addq.l #6,sp ; restore stack move.l d0,dict_buff ; pointer to start of free area move.l d0,dict_end ; dictionary is empty for now lea title_msg,a0 ; bsr write_str ; print the title screen rts ; load_dict lea dfile_msg,a0 ; request dictionary name bsr get_name ; move.w #0,-(sp) ; open dictionary for move.l #file_name,-(sp) ; read only move.w #open,-(sp) ; trap #gemdos ; call gemdos addq.l #8,sp ; restore stack tst.w d0 ; did an open error occur? bpl load_dict_2 ; no, go load it lea derr1_msg,a0 ; yes bsr write_str ; prompt for retry or create load_dict_1 lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; get response  cmp.b #'r',d0 ; retry? beq load_dict ; yes, try again cmp.b #'c',d0 ; create? bne load_dict_1 ; no, invalid response bra load_dict_4 ; yes, exit from load load_dict_2 move.w d0,dict_handle ; save dictionary handle lea load_msg,a0 ; print loading bsr write_str ; and lea wait_msg,a0 ; wait bsr write_str ; messages move.l dict_buff,-(sp) ; pass dictionary buffer area move.l max_dict,-(sp) ; maximum dict length move.w dict_handle,-(sp) ; dictionary handle move.w #read,-(sp) ; read option trap #gemdos ; call gemdos add.l #12,sp ; restore stack tst.l d0 ; did a read error occur? bmi load_dict_2a ; yes cmp.l max_dict,d0 ; did we read in maximum size? bne load_dict_3 ; no, continue processing load_dict_2a lea derr3_msg,a0 ; print load error bsr write_str ; message lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; wait for keypress addq.l #4,sp ; remove return address from bra exit ; stack and exit program load_dict_3 move.l d0,dict_len ; store actual file size add.l dict_buff,d0 ; calculate dictionary end move.l d0,dict_end ; and store result move.w dict_handle,-(sp) ; close file move.w #close,-(sp) ; trap #gemdos ; call gemdos addq.l #4,sp ; restore stack load_dict_4 rts ; open_in lea ifile_msg,a0 ; request input file name bsr get_name ; move.w #0,-(sp) ; open input file move.l #file_name,-(sp) ; with read mode move.w #open,-(sp) ; trap #gemdos ; call gemdos addq.l #8,sp ; restore stack tst.w d0 ; did an error occur? bpl open_in_2 ; no lea ierr_msg,a0 ; yes, prompt for bsr write_str ; retry or cancel open_in_1 lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; wait for keypress cmp.b #'r',d0 ; retry? beq open_in ; yes, try again cmp.b #'c',d0 ; cancel? bne open_in_1 ; no invalid entry addq.l #4,sp ; yes, remove return address bra exit ; from stack and exit program open_in_2 move.w d0,in_handle ; save input file handle rts ; open_out lea ofile_msg,a0 ; request output file name bsr get_name ; move.w #0,-(sp) ; create file with move.l #file_name,-(sp) ; read/write status move.w #create,-(sp) ; trap #gemdos ; call gemdos addq.l #8,sp ; restore stack tst.w d0 ; did an error occur? bpl open_out_2 ; no lea oerr_msg,a0 ; yes, prompt for bsr write_str ; retry or cancel open_out_1 lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; wait for keypress cmp.b #'r',d0 ; retry? beq open_out ; yes, try again cmp.b #'c',d0 ; cancel? bne open_out_1 ; no, invalid response addq.l #4,sp ; yes, remove return address bra exit ; from stack and exit program open_out_2 move.w  d0,out_handle ; save output handle rts ; proofread move.l #text_buff,-(sp) ; do priming read of move.l #1,-(sp) ; input file and move.w in_handle,-(sp) ; store in text buffer move.w #read,-(sp) ; trap #gemdos ; call gemdos add.l #12,sp ; restore stack cmp.l #1,d0 ; End Of File? bne proofread_6 ; yes move.b text_buff,d0 ; no cmp.b #'A',d0 ; check if ascii A-Z or a-z blt proofread_1 ; no, write to output cmp.b #$5b,d0 ; blt proofread_2 ; yes, start of word cmp.b #'a',d0 ; blt proofread_1 ; no, write to output cmp.b #$7b,d0 ; blt proofread_2 ; yes, start of word proofread_1 move.l #text_buff,-(sp) ; write non alpha ascii move.l #1,-(sp) ; character to the move.w out_handle,-(sp) ; output file move.w #write,-(sp) ; trap #gemdos ; call gemdos add.l #12,sp ; restore stack clr.w d0 ; move.b text_buff,d0 ; place character in low byte move.w d0,-(sp) ; of word D0 move.w #2,-(sp) ; and write to screen trap #gemdos ; call gemdos addq.l #4,sp ; restore stack bra proofread ; go and try again proofread_2 move.l #text_buff,a3 ; Start of word proofread_3 addq.l #1,a3 ; point to next character move.l a3,-(sp) ; and read move.l #1,-(sp) ; another byte move.w in_handle,-(sp) ; from the input file move.w #read,-(sp) ; trap #gemdos ; call gemdos add.l #12,sp ; restore stack cmp.l #1,d0 ; End OF File? bne proofread_5 ; yes move.b (a3),d0 ; no cmp.b #'A',d0 ; check if ascii A-Z or a-z blt proofread_4 ; no, end of word cmp.b #$5b,d0 ; blt proofread_3 ; yes, get next character cmp.b #'a',d0 ; blt proofread_4 ; no, end of word cmp.b #$7b,d0 ; blt proofread_3 ; yes, get next character proofread_4 move.b d0,save_byte ; save delimitting byte move.b #0,(a3) ; mark end of word with 0 bsr match_dict ; try to match with dictionary move.b save_byte,text_buff ; restore delimitting byte bra proofread_1 ; and go print it proofread_5 bsr match_dict ; try to match last word proofread_6 move.w in_handle,-(sp) ; close input file move.w #close,-(sp) ; trap #gemdos ; call gemdos addq.l #4,sp ; restore stack move.w out_handle,-(sp) ; close output file move.w #close,-(sp) ; trap #gemdos ; call gemdos addq.l #4,sp ; restore stack proofread_x rts ; match_dict move.l dict_buff,a3 ; match_dic_1 lea text_buff,a2 ; start at beginning of text to match cmp.l dict_end,a3 ; is dictionary at end? beq match_dic_5 ; yes, no match found on dict match_dic_2 move.b (a3)+,d3 ; store match value for dict move.b (a2)+,d2 ; store match value for text cmp.b #13,d3 ; is dict on end of word? bne match_dic_3 ; no, check text cmp.b #0,d2 ; is text on end of word? beq match_dic_6 ; yes, match was found addq.l #1,a3 ; no, adjust pointer  bra match_dic_1 ; and try next dict entry match_dic_3 cmp.b #0,d2 ; is text on end of word? beq match_dic_4 ; yes, skip to next dict entry or.b #$20,d2 ; make all lower case for match cmp.b d2,d3 ; does text = dict beq match_dic_2 ; yes, try next character match_dic_4 move.b (a3)+,d0 ; move dict pointer until cmp.b #10,d0 ; it points to the current bne match_dic_4 ; end of word, then bra match_dic_1 ; try to match next entry match_dic_5 lea save_pos,a0 ; save current cursor position bsr write_str ; lea rev_on,a0 ; turn reverse video on bsr write_str ; lea text_buff,a0 ; print highlighted word bsr write_str ; lea rev_off,a0 ; turn reverse video off bsr write_str ; bsr correct_it ; go to options lea load_pos,a0 ; restore cursor position bsr write_str ; match_dic_6 lea text_buff,a0 ; print word on screen bsr write_str ; lea text_buff,a0 ; determine word length bsr find_len ; move.l #text_buff,-(sp) ; and write it to the move.l d0,-(sp) ; output file move.w out_handle,-(sp) ; move.w #write,-(sp) ; trap #gemdos ; call gemdos add.l #12,sp ; restore stack rts ; find_len clr.l d0 ; intialize word length counter find_len_1 cmp.b #0,(a0)+ ; check for delimitting 0 beq find_len_2 ; addq.l #1,d0 ; increment counter bra find_len_1 ; try again find_len_2 rts ; correct_it lea nomatch_msg,a0 ; display correction options bsr write_str ; bsr read_char ; wait for keypress cmp.b #'a',d0 ; Add to dictionary? bne correct_it1 ; bsr add_to_dict ; yes bra correct_it3 ; correct_it1 cmp.b #'c',d0 ; Change it? bne correct_it2 ; bsr change ; yes bra correct_it3 ; correct_it2 cmp.b #'i',d0 ; Ignore it? bne correct_it ; invalid response correct_it3 lea title_msg2,a0 ; erase correction options bsr write_str ; rts ; add_to_dict lea text_buff,a0 ; is there bsr find_len ; any room left in the add.l dict_len,d0 ; dictionary add.l #2,d0 ; cmp.l max_dict,d0 ; blt add_to_dic1 ; yes, go and update lea full_msg,a0 ; no, display error message bsr write_str ; and skip update bsr read_char ; bra add_to_dic4 ; add_to_dic1 move.b #1,dict_flag ; turn dictionary update flag on lea text_buff,a0 ; point to start of text move.l dict_end,a1 ; point to next dict entry add_to_dic2 move.b (a0)+,d0 ; add.l #1,dict_len ; increase dict length cmp.b #0,d0 ; end of word? beq add_to_dic3 ; yes or.b #$20,d0 ; no, convert to lower case move.b d0,(a1)+ ; and store in dictionary bra add_to_dic2 ; try next character add_to_dic3 move.b #13,(a1)+ ; delimit with CR and move.b #10,(a1)+ ; LF move.l a1,dict_end ; store new dictionary end add.l #1,dict_len ; add_to_dic4 rts  ; change lea chg_msg,a0 ; display replacement bsr write_str ; prompt move.b #64,text_buff_l ; and read the 64 byte maximum move.l #text_buff_l,-(sp) ; string move.w #conrs,-(sp) ; trap #gemdos ; call gemdos addq.l #6,sp ; restore stack lea text_buff,a0 ; add.w d0,a0 ; point to end of string move.b #0,(a0) ; and delimit with 0 rts ; save_dict lea title_msg,a0 ; display title screen bsr write_str ; cmp.b #1,dict_flag ; check for updates bne save_dict_4 ; no, skip save save_dict_1 lea update_msg,a0 ; prompt user bsr write_str ; to save dictionary lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; wait for keypress cmp.b #'n',d0 ; save? beq save_dict_4 ; no, skip save cmp.b #'y',d0 ; bne save_dict_1 ; invalid response lea dfile_msg,a0 ; yes, ask for filename bsr get_name ; move.w #0,-(sp) ; create dictionary with move.l #file_name,-(sp) ; read/write mode move.w #create,-(sp) ; trap #gemdos ; call gemdos addq.l #8,sp ; restore stack tst.w d0 ; did an open error occur? bpl save_dict_3 ; no, continue save_dict_2 lea derr2_msg,a0 ; yes, prompt for retry or cancel bsr write_str ; lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; wait for keypress cmp.b #'r',d0 ; retry? beq save_dict_1 ; yes, try again cmp.b #'c',d0 ; cancel? bne save_dict_2 ; invalid entry bra save_dict_4 ; yes, skip save save_dict_3 move.w d0,dict_handle ; save dictionary handle lea save_msg,a0 ; print save bsr write_str ; and wait lea wait_msg,a0 ; message bsr write_str ; move.l dict_buff,-(sp) ; point to start of buffer move.l dict_len,-(sp) ; write entire length move.w dict_handle,-(sp) ; move.w #write,-(sp) ; trap #gemdos ; call gemdos add.l #12,sp ; restore stack cmp.l dict_len,d0 ; did it all get written? bne save_dict_2 ; no, go display error move.w dict_handle,-(sp) ; close file move.w #close,-(sp) ; trap #gemdos ; call gemdos addq.l #4,sp ; restore stack tst.w d0 ; close error? bmi save_dict_2 ; yes, go display error save_dict_4 lea done_msg,a0 ; display done message bsr write_str ; lea prompt_msg,a0 ; bsr write_str ; bsr read_char ; wait for keypress rts ; get_name bsr write_str ; display string pointed to by A0 get_name_1 lea prompt_msg,a0 ; bsr write_str ; move.b #40,file_name_l ; allow for 40 character path name move.l #file_name_l,-(sp) ; move.w #conrs,-(sp) ; read string trap #gemdos ; call gemdos addq.l #6,sp ; restore stack tst.w d0 ; null string? beq get_name_1 ; yes, try again lea file_name,a0 ; point to end add.w d0,a0 ; of string and  move.b #0,(a0) ; delimit with 0 rts ; read_char move.w #$ff,-(sp) ; retrieve characters move.w #rawconio,-(sp) ; from keyboard trap #gemdos ; no more are available addq.l #4,sp ; restore stack tst.w d0 ; bne read_char ; move.w #conin,-(sp) ; wait for keypress trap #gemdos ; call gemdos addq.l #2,sp ; restore stack or.b #32,d0 ; convert to lower case rts ; write_str move.l a0,-(sp) ; write string pointed by A0 move.w #conws,-(sp) ; to the screen trap #gemdos ; call gemdos addq.l #6,sp ; restore stack rts ; data title_msg dc.b 27,'E',13,10 dc.b ' /---/|',13,10 dc.b ' / / |',13,10 dc.b ' / / | ' dc.b 27,'p ',27,'q',13,10 dc.b ' / / | ' dc.b 27,'p Spelling Checker ',27,'q',13,10 dc.b ' / / | ' dc.b 27,'p ',27,'q',13,10 dc.b ' +---+ |',13,10 dc.b ' | | |',13,10 dc.b ' | S | |',13,10 dc.b ' | P | |',13,10 dc.b ' | E | |',13,10 dc.b ' | L | |',13,10 dc.b ' | L | |',13,10 dc.b ' | B | |',13,10 dc.b ' | I | |',13,10 dc.b ' | N | |',13,10 dc.b ' | D | |',13,10 dc.b ' | E | /',13,10 dc.b ' | R | /',13,10 dc.b ' | | /',13,10 dc.b ' | V | /',13,10 dc.b ' |1.0|/',13,10 dc.b ' +---+',13,10 dc.b 0 clear_scr dc.b 27,'E' title_msg2 dc.b 27,'H',27,'l',' *** Spellbinder Spelling Checker ***',13,10,0 nomatch_msg dc.b 27,'H',27,'l','No match was found. Select option ' dc.b '(A)dd (C)hange (I)gnore: ',0 chg_msg dc.b 27,'H',27,'l','Replace with: ',0 full_msg dc.b 27,'H',27,'l','No more room in dictionary! ',0 dfile_msg dc.b 27,'Y',41,62,'Enter Dictionary File Name',27,'K',0 ifile_msg dc.b 27,'Y',41,62,'Enter Input File Name',27,'K',0 ofile_msg dc.b 27,'Y',41,62,'Enter Output File Name',27,'K',0 load_msg dc.b 27,'Y',41,62,'Loading Dictionary',27,'K',0 save_msg dc.b 27,'Y',41,62,'Saving Dictionary',27,'K',0 derr1_msg dc.b 27,'Y',41,62,'Dictionary Not Found (R)etry (C)reate',27,'K',0 derr2_msg dc.b 27,'Y',41,62,'Dictionary Save Error (R)etry (C)ancel',27,'K',0 derr3_msg dc.b 27,'Y',41,62,'Dictionary Load Error (C)ancel',27,'K',0 ierr_msg dc.b 27,'Y',41,62,'Input File Not Found (R)etry (C)ancel',27,'K',0 oerr_msg dc.b 27,'Y',41,62,'Output File Open Error (R)etry (C)ancel',27,'K',0 update_msg dc.b 27,'Y',41,62,'Save Dictionary Updates (Y)es (N)o',27,'K',0 done_msg dc.b 27,'Y',41,62,'Thanks for using Spellbinder!',27,'K',0 prompt_msg dc.b 27,'Y',43,62,'> ',27,'K',0 wait_msg dc.b 27,'Y',43,62,'> Please wait...',27,'K',0 dict_handle ds.w 1 in_handle ds.w 1 out_handle ds.w 1 file_name_l ds.w 1 file_name ds.b 40 max_dict ds.l 1 save_byte ds.b 1 dict_flag ds.b 1 dict_buff ds.l 1 dict_len ds.l 1 dict_end ds.l 1 rev_on dc.b 27,'p',0 rev_off dc.b 27,'q',0 save_pos dc.b 27,'j',0 load_pos dc.b 27,'k',0 text_buff_l ds.w 1 text_buff ds.w 64 end d was on the line that immediately followed the previous display). The purpose of this command is the protect other information even further up the screen from scrolling off. It also allows one key tracing since the T remains in the line to be executed again and again by a return keypress. ************ It is advised to use this command rather ** ** sparingly, not because there is anything wrong ** note ** with it but rather because it limits the user's ** ** access to one of the the major strengths of the *******@'w@['w???????????????0??????????<??<?<?<<0: THE FIRST LETTER OF FUNCTION AND VARIABLE NAMES ARE CAPITAL, AND THE REST ARE SMALL LETTERS DEFMARK HOW: DEFMARK [C],[A],[G] EG: DIM X(5),Y(5) DO FOR I=0 TO 5 X(I)=RANDOM(640) Y(I)=RANDOM(400) NEXT I DEFMARK 1,RANDOM(7),0 POLYMARK 6,X(),Y() LOOP PURPOSE: SETS COLOUR,TYPE AND SIZE OF THE CORNER POINTS TO BE MARK USING THE COMMAND POLYMARK 'C' IS THE COLOUR REGISTER NUMBER 'A' DEFINES THE TYPE OF MARK. THE FOLLOWING TYPES ARE POSSIBLE :- 1=DOT 2=PLUS SIGN 3=ASTERISK 4=SQUARE 5=CROSS 6=HASH ALL OTHER VALUES RETURN THE ASTERISK SYMBOL 'G' SETS THE SIZE OF MARK DEFMOUSE HOW: DEFMOUSE N or DEFMOUSE A$ EG: FOR I=0 TO 7 DEFMOUSE I PAUSE 100 NEXT I X$=MKI$(1) Y$=MKI$(1) MF$=MKI$(0) CF$=MKI$(1) M$=MKI$(65535) FOR I=1 TO 14 M$=M$+MKI$(32769) NEXT I M$=M$+MKI$(65535) C$=MKI$(0) FOR I=1 TO 14 C$=C$+MKI$(36766) NEXT I C$=C$+MKI$(0) A$=X$+Y$+MKI$(1)+MF$+CF$+M$+C$ PBOX 10,10,200,200 DEFMOUSE A$ DO LOOP PURPOSE: CHOOSES A PRE-DEFINED MOUSE FORM OR DEFINES A NEW ONE THE FOLLOWING MOUSE FORMS ARE AVAILABLE :- 0=ARROW 1=EXPANDED (ROUNDED) X 2=BEE 3=POINTING HAND 4=OPEN HAND 5=THIN CROSSWIRE 6=THICK CROSSWIRE 7=BOARDERED CROSSWIRE A MOUSE CAN BE DEFINED BY THE COMMAND DEFMOUSE A$ 16*16 DOTS ARE AVAILABLE TO CREATE A SHAPE. ALSO A 'MASK' MUST BE DEFINED SO THAT THE CURSOR REMAINS VISIBLE WHEN IT IS THE SAME COLOUR AS THE BACKGROUND ONE OF THE 256 DOTS MUST BE DEFINED AS THE STARTING POINT TO WHICH THE MOUSE FUNCTIONS WILL RELATE. THE DEFINING STRING IS COMPOSED AS FOLLOWS:- A$=MKI$ (X=STARTING POINT) +MKI$ (Y=STARTING POINT) +MKI$(1) +MKI$ (MASK COLOUR) +MKI$ (CURSOR COLOUR) +M$ (BIT PATTERN OF MASK) +C$ (BIT PATTERN OF CURSOR) DEFTEXT HOW: DEFTEXT [C],[S],[R],[G] (The commas can be omitted) EG: DEFTEXT 1,16,0,32 TEXT 10,50,"BORDERED" DEFTEXT 24,900 TEXT 500,300,"OUTLINED/UNDERLINED" PURPOSE: DEFINES THE COLOUR,STYLE,ROTATION AND SIZE OF TEXT TO BE PRINTED USING THE TEXT COMMAND 'C' COLOUR REGISTER NUMBER 'S' TEXT STYLE (0=NORMAL 1=BOLD 2=LIGHT 4=ITALIC 8=UNDERLINED 16=BORDERED) THE STYLES CAN BE COMBINED BY ADDING THE SINGLE VALUES OF EACH TOGETHER eg. BOLD ITALICS WOULD BE STYLE 5 (1+5) 'R' ROTATION ONLY THE FOLLOWING ANGLES (IN TENTHS OF A DEGREE) ARE POSSIBLE :- 0 DEG (0), 90 DEG (900), 180 DEG (1800), 270 DEG(2700) 'G' SIZE OF TEXT 4=ICON, 6=8*8 ,13=STANDARD 32=ENLARGED PRINT DFREE HOW: DFREE(N) EG: PRINT DFREE(0) PRINT DFREE(1) PURPOSE: LOCATES FREE SPACE ON A DISC 'N'=DISC DRIVE NUMBER (0-15) DIM HOW: DIM VAR(INDICES)[,VAR(INDICES),.....] EG: DIM A(1000),B(4,8,3) DIM N$(20,5) PURPOSE: SETS THE DIMENSIONS OF AN ARRAY OR STRING ARRAY MULTI-DIMENSIONAL ARRAYS ARE LIMITED TO 65535 ELEMENTS. SINGLE DIMENSIONAL ARRAYS ARE LIMITED ONLY BY THE MEMORY AVAILABLE. SEE ALSO ERASE. DIM? HOW: DIM?(FIELD()) EG: DIM A$(3,4,5) DIM N%(12,12) PRINT DIM?(A$()) PRINT DIM?(N%()) PURPOSE: DETERMINES THE NUMBER OF ELEMENTS IN AN ARRAY. NOTE THE ARRAYS HAVE AN ELEMENT '0', SO THE VALUES RETURNED IN THE ABOVE EXAMPLES WOULD BE 120 AND 169 DIR HOW: DIR [ "FILESPEC" [ TO "FILE" ]] EG: DIR "A:*.*" TO "A:CONTENTS" DIR "A:*.*" TO "LST:" PURPOSE: LISTS THE FILES ON A DISC  'FILESPEC' IS A FILENAME WHICH NEEDS THE FOLLOWING SPECIFICATION :- THE DISC DRIVE IS SPECIFIED BY A LETTER PLACED IN FRONT OF THE FILENAME AND FOLLOWED BY A COLON (eg. A: FOR DISC DRIVE ). IF ONE OR MORE QUESTION MARKS ARE IN A FILE NAME, ALL FILES WHICH CORRESPOND WITH THE FILENAME, APART FROM THE QUESTION MARKS WILL BE ADDRESSED. eg. DIR "ART??.DOC" THIS COMMAND WOULD SEARCH FOR ALL FILES WHICH ARE FIVE LETTERS LONG, BEGIN WITH 'ART' AND HAVE THE EXTENSION DOC. THE CHARACTER '*' MEANS THAT A WHOLE PART OF THE FILE NAME IS TO BE DISREGARDED IN THE SEARCH eg. DIR "J*.BAS" THIS COMMAND WOULD SEARCH FOR ALL FILES WHICH HAVE THE EXTENSION 'BAS' AND BEGIN WITH 'J' BY USING THE OPTIONAL ADDITION 'TO "FILE"' THE LIST FOUND CAN BE SENT TO ANOTHER FILE OR PRINTED OUT ( "LST:" ) DIR$ HOW: DIR$(N) EG: MKDIR "/TEST" CHDIR "/TEST" PRINT DIR$(0) PURPOSE: NAMES THE ACTIVE DIRECTORY FOR THE DISC DRIVE WITH THE NUMBER 'N' 'N' IS A NUMERIC EXPRESION WHICH REPRESENTS THE THE VALUE OF THE DISC DRIVE NUMBER (1=A:, 2=B:,...0=ACTUAL DISC DRIVE). DIV HOW: DIV VAR,N EG: DIV NUM,X PRINT NUM PURPOSE: DVIDES THE VALUE OF VAR BY N. SAME AS VAR=VAR/N BUT EXECUTES 30% FASTER. DO....LOOP HOW: DO LOOP EG: DO INC I PRINT I LOOP PURPOSE: CREATES AN ENDLESS LOOP. THE PART OF THE PROGRAM IN BETWEEN IS REPEATED ENDLESSLY. THE LOOP CAN ONLY BE LEFT BY EXIT eg. EXIT IF I=234. DRAW HOW: DRAW [ TO ] X,Y DRAW X1,Y1, TO X2,Y2 TO X3,Y3....... EG: DRAW 50,50 DRAW TO 40,25 DRAW 200,10 TO 200,100 PURPOSE: DRAWS POINTS AND CONNECTS TWO OR MORE POINTS WITH STRAIGHT LINES DRAW X,Y IS THE SAME AS PLOT X,Y DRAW TO X,Y CONNECTS THE POINT TO THE PREVIOUSLY DRAWN POINT (DRAWN BY PLOT, LINE OR DRAW). SEE ALSO DEFLINE EDIT HOW: EDIT EG: PRINT "BACK TO THE EDITOR WITHOUT " PRINT "A PROGRAM END BOX" EDIT PURPOSE: RETURNS TO THE EDITOR. WHEN USED IN DIRECT MODE THE COMMAND ALLOWS A RETURN TO THE EDITOR. IN A PROGRAM IT IS THE SAME AS END BUT WITHOUT THE PROGRAM END ALERT BOX. ELLIPSE HOW: ELLIPSE X,Y,RX,RY [,phi0,phi1] EG: ELLIPSE 100,100,30,40 ELIPSE 200,200,30,40,900,2700 PURPOSE: DRAWS AN ELLIPSE AT X,Y. 'RX' IS THE LENGTH OF THE HORIZONTAL AXIS AND 'RY' IS THE LENGTH OF THE VERTICAL AXIS. THE OPTIONAL ANGLES 'phi0' & 'phi1' GIVE THE START AND FINISH (IN TENTHS OF A DEGREE) ANGLES SHOULD ONLY A SEGMENT BE REQUIRED. END HOW: END EG: DO INC I PRINT I EXIT IF I=10000 LOOP END PURPOSE: CLOSES ALL FILES AND TERMINATES PROGRAM EXECUTION CAN BE USED AT ANY POINT IN A PROGRAM. ITS USE AT THE END OF A PROGRAM IS OPTIONAL. EOF HOW: EOF ([ # ] N) EG: OPEN "O",#1,"DATA" PRINT #1,"BEST BEFORE 17/8/26" CLOSE #1 OPEN "I",#1,"DATA" DO PRINT INP(#1),EOF(#1) EXIT IF EOF(#1) LOOP END PURPOSE: DETERMINES WHETHER THE FILE POINTER FOR THE FILE WITH CHANNEL NUMBER 'N' IS AT THE END OF THE FILE. 'N' IS AN INTEGER BETWEEN 0 & 99 WHICH REFERS TO THE CHANNEL NUMBER OF A FILE OPENED WITH THE OPEN COMMAND. THE LINE: EXIT IF EOF(#1) ABOVE AVOIDS THE ERROR MESSAGE: "END OF FILE REACHED EOF". THIS FUNCTION CAN ONLY BE USED WITH DISC FILES. (NOT FOR CON: LST: etc.). ERASE HOW: ERASE FIELD() EG: DIM A(100,50,5) PRINT FRE(0) ERASE A() PRINT FRE(0) DIM A(3000) PURPOSE: DELETES AN ARRAY AND RELEASES THE DIMENSIONED AREA. IF AN ARRAY HAS BEEN DIMENSIONED WITH DIM IT CANNOT BE RE-DIMENSIONED. THE ERASE COMMAND DELETES THE ARRAY AND THEREFORE ALLOWS IT TO BE DIMENSIONED AGAIN. IF AN ARRAY IS NO LONGER NEEDED FOR THE REST OF THE PROGRAM, AND THE AVAILABE MEMORY IS SMALL, IT IS A GOOD IDEA TO ERASE IT AND FREE THE RESERVED MEMORY. ERR HOW: ERR EG: ON ERROR GOSUB Error-routine REM ATTEMPT TO CALCULATE THE SQUARE ROOT OF -1 PRINT SQR(-1) PROCEDURE Error-routine PRINT "ERROR NUMBER ";ERR RETURN PURPOSE: RETURNS THE ERROR CODE OF ANY ERROR THAT HAS OCCURED. 'ERR' IS A RESERVED NAME AND CANNOT BE USED AS A VARIABLE. SEE ALSO FATAL, ERROR AND ON ERROR ERROR HOW: ERROR N EG: PRINT "ENTER ERROR NUMBER "; INPUT E ERROR E PURPOSE: SIMULATES THE OCCURENCE OF THE ERROR WITH THE ERROR CODE 'N' AND THE APPROPRIATE ERROR MESSAGE IS THEN DISPLAYED. 'N' IS AN INTEGER BETWEEN -128 & 127 EXIST HOW: EXIST ("FILESPEC") EG: PRINT EXIST("A:ZIRCON.DOC") PURPOSE: DETERMINES WHETHER A PARTICULAR FILE IS PRESENT ON A DISC. 'FILESPEC' IS A FILENAME WHICH ALLOWS THE SAME SPECIFICATIONS AS THE DIR COMMAND. IF THE FILE IS PRESENT THE VALUE -1 IS RETURNED, IF NOT THEN THE VALUE 0 IS RETURNED. EXIT HOW: EXIT IF Condition EG: DO A=A+1 PRINT A EXIT IF A=20 LOOP PURPOSE: ENABLES THE EXIT FROM A LOOP. IF THE EXIT COMMAND IS MET WITHIN A LOOP AND THE EXIT CONDITION IS MET, THE PROGRAM CONTINUES FROM THE FIRST COMMAND AFTER THE LOOP. THIS COMMAND ALLOWS ANY LOOP TO BE LEFT ie: FOR...NEXT DO...LOOP, REPEAT...UNTIL AND WHILE...WEND. EXP HOW: EXP(X) EG: PRINT EXP(1) PRINT EXP(0.5) PRINT EXP(-2) PURPOSE: CALCULATES THE VALUE OF AN EXPONANT FATAL HOW: FATAL EG: ON ERROR GOSUB Error-routine ERROR 5 PROCEDURE Error-routine PRINT "FATAL=";FATAL RETURN PURPOSE: RETURNS THE VAUE 0 OR -1 ACCORDING TO THE TYPE OF ERROR. ON NORMAL ERRORS THE FUNCTION RETURNS 0. THE VALUE -1 IS RETURNED ON ALL ERRORS WHERE THE ADDRESS OF THE LAST EXECUTED COMMAND IS NO LONGER KNOWN. NORMALLY THIS IS AN OPERATING SYSTEM ERROR WHICH WOULD LEAD TO THE 'BOMB' ERRORS AND THE BREAKDOWN OF THE PROGRAM. FIELD HOW: FIELD [#]N,expression AS svar ....... EG: OPEN "R",#1,"TEST",50 FIELD #1,20 AS A$,30 AS B$ FOR I=1 TO 4 INPUT "NAME1,NAME2: ",V$,N$ LSET A$=V$ LSET B$=N$ PUT #1,I NEXT I FOR I=4 DOWNTO 1 GET #1,I PRINT A$,B$ NEXT I PURPOSE: DIVIDES RECORDS INTO FIELDS. 'N' IS THE CHANNEL NUMBER. 'expression' DEFINES THE FIELD LENGTH. 'Svar' IS A STRING VARIABLE WHICH ACCEPTS A DATA FIELD. THE SECTION 'expression AS svar' CAN BE REPEATED IF THE RECORD IS TO BE DIVIDED INTO SEVERAL FIELDS. THE SUM OF THE FIELDS SHOULD EQUAL THE RECORD LENGTH. EACH OPEN DATA CHANNEL MAY HAVE ONLY ONE FIELD COMMAND. THE EXAMPLE CREATES A NAME FILE WHICH IS THEN READ IN REVERSE ORDER. GFA BASIC DOES NOT USE A BUFFER OF ITS OWN FOR THIS TYPE OF FILE ACCESS. THEREFORE THE COMMAND VARPTR(#N) IS NOT POSSIBLE. FILES HOW: FILES [ "FILESPEC" [ TO "FILE" ]] EG: FILES "A:*.*" TO "A:CONTENTS" FILES "A:*.*" TO "LST:" PURPOSE: LISTS THE FILES ON A DISC. THIS COMMAND WORKS ALMOST THE SAME AS DIR, THE DIFFERENCE BEING THAT FILES COMPILES A DETAILED DATA LISTING WHICH CONTAINS ITS LENGTH, THE TIME AND DATE AS WELL AS THE FILENAME (SEE DIR FOR FURTHER INFORMATION). FILESELECT HOW: FILESELECT "FILESPEC","FILENAME",X$ EG: DO FILESELECT "/*.*",B$,A$ EXIT IF A$="" PRINT A$ LOOP PURPOSE: CREATES A FILESELECT BOX ON THE SCREEN 'FILESPEC' IS THE SO-CALLED SEARCH PATH. THIS IS A FILE NAME WHICH ALLOWS THE USE OF THE SPECIFICATIONS DESCRIBED IN DIR AND THE HIERACHICAL FILE SYSTEM (/). 'FILESPEC' HAS TO CONTAIN AT LEAST "/*.*". IN THIS CASE ALL THE FILES IN THE ROOT DIRECTORY OF THE CURRENT DISC DRIVE IN THE FILESELECT BOX ARE SELECTED 'X$' RETURNS AS CHOSEN FILENAME. IF THE ABORT BUTTON IS IS CLICKED THEN 'X$' IS RETURNED AS AN EMPTY STRING. FILL HOW: FILL X,Y EG: BOX 10,10,100,100 DRAW 10,10,100,100 FILL 50,30 PURPOSE: FILLS A BORDERED AREA WITH A PATTERN COMMENCING AT THE CO-ORDINATES 'X,Y',. THE FILL PATTERN CAN BE CHOSEN WITH THE COMMAND DEFFILL. FIX HOW: FIX(X) EG: A=3.1415926 PRINT FIX(A) PRINT FIX(-1.99) PURPOSE: RETURNS THE INTEGER OF 'X' AFTER IT HAS BEEN ROUNDED. SAME AS INT(X) FOR POSITIVE NUMBERS BUT FOR NEGATIVE NUMBERS INT(-1.99)=-2 AND FIX(-1.99)=1. FIX IS IDENTICAL TO THE FUNCTION TRUNC AND COMPLEMENTS FRAC. FOR...NEXT HOW: FOR var=A [ DOWN ]TO E [ STEP S ] NEXT var EG: FOR I=3 TO 5 FOR J=5 DOWNTO 3 FOR K=1 TO 5 STEP 2 PRINT I,J,K NEXT K NEXT J NEXT I PURPOSE: CREATES A LOOP WHICH IS EXECUTED AS MANY TIMES AS SPECIFIED AT THE BEGINNING OF THE LOOP. 'var' IS GIVEN THE VALUE 'A' AND THE COMMANDS BETWEEN THE FOR AND NEXT STATEMENTS ARE EXECUTED. WHEN NEXT IS ENCOUNTERED 'var' IS INCREASED BY 'S' (IF 'S' ISN'T GIVEN A VALUE IT DEFAULTS TO 1). IF 'S' HAS A NEGATIVE VALUE 'var' IS DECREMENTED. THE OPTIONAL COMMAND DOWNTO CAN BE USED INSTEAD OF SETTING 'S' TO -1. THE USE OF AN INTEGER VARIABLE (eg. I%) WILL SPEED UP THE EXECUTION OF A LOOP BY UP TO 30%. FORM INPUT HOW: FORM INPUT N,var EG: PRINT "ENTER YOUR NAME" PRINT "(MAX 15 LETTERS)" PRINT AT(15,15); FORM INPUT 15,NAME$ PRINT "YOUR NAME IS ";NAME$ PURPOSE: ENABLES THE INSERTION OF A CHARACTER STRING (LIMITED TO 255 CHARACTERS IN LENGTH) DURING PROGRAM EXECUTION. 'N' REPRESENTS THE MAXIMAL LENGTH OF THE CHARACTER STRING. 'var' IS THE NAME OF THE STRING VARIABLE. BOTH AND CAN BE USED AS CAN THE ARROW KEYS. THE BUZZER SOUNDS WHEN THE MAX LENGTH IS REACHED. FRAC HOW: FRAC(X) EG: A=-10.1234 PRINT FRAC(A) PRINT FRAC(3.1415926) PRINT TRUNC(A)+FRAC(A) PURPOSE: RETURNS THE DIGITS AFTER THE DECIMAL POINT IN A NUMBER. 'X' CAN BE ANY NUMERIC EXPRESSION. IF 'X' IS AN INTEGER THEN A ZERO IS RETURNED. THEREFORE FRAC(X)=X-TRUNC(X) FRE HOW: FRE(X) EG: PRINT FRE(A%) DIM N$(1000) PRINT FRE(0) PURPOSE: RETURNS THE AMOUNT OF MEMORY FREE (IN BYTES) THE PARAMETER 'X' IS DISREGARDED. IF THE FUNCTION FRE IS USED GFA BASIC CALCULATES THE AMOUNT OF FREE MEMORY AFTER DELETION OF ALL UNUSED AREAS (GARBAGE COLLECTION). FULLW HOW: FULLW N EG: FULLW2 PURPOSE: ENLARGES WINDOW 'N' TO FULL SCREEN SIZE. 'N' IS THE WINDOW NUMBER. IF THE WINDOW HAS NOT YET BEEN OPENED, THIS TAKES PLACE AUTOMATICALLY. GET HOW: GET [ # ] N [ ,I ] EG: SEE FIELD PURPOSE: READS A RECORD FROM A RANDOM ACCESS FILE. 'N' IS THE CHANNEL NUMBER (1 TO 99) 'I' IS NUMBER OF THE RECORD TO BE READ (1 TO 65535) IF 'I' IS NOT GIVEN THEN THE NEXT RECORD IN THE FILE WILL BE READ. GOSUB HOW: GOSUB name [ (LIST OF EXPRESSIONS) ] ABBR: GO or @ EG: PRINT "MAIN PROGRAM" GOSUB Routine.1 PRINT "BACK FROM 1" PROCEDURE Routine.1 PRINT "PROCEDURE 1" GOSUB Routine.2(3,2) PRINT "BACK FROM 2" PRINT A,B RETURN PROCEDURE Routine.2(A,B) PRINT A,B PRINT "PROCEDURE 2" RETURN PURPOSE: BRANCHES TO THE PROCEDURE CALLED 'name' A PROCEDURE NAME CAN BEGIN WITH A DIGIT AND CONTAIN LETTERS, NUMBERS, DOTS AND THE UNDERLINE DASH. '(LIST OF EXPRESSIONS)' CONTAINS THE VALUES OF ANY LOCAL VARIABLES TO BE PASSED TO THE PROCEDURE. WHEN THE INTERPRETER COMES ACCROSS A GOSUB COMMAND, IT BRANCHES TO THE PROCEDURE NAMED IN THE GOSUB. IT IS POSSIBLE TO CALL FURTHER PROCEDURES WHILST IN A PROCEDURE, IT IS EVEN POSSIBLE TO CALL THE PROCEDURE ONE IS IN AT THE TIME (RECURSIVE CALL). THE ABOVE EXAMPLE CALLS THE PROCEDURE NAMED 'Routine.1' FROM THE MAIN PROGRAM. FROM WITHIN THIS PROCEDURE, THE PROCEDURE 'Routine.2' IS CALLED AND THE VALUES 2 & 3 ARE GIVEN TO THE LOCAL VARIABLES A & B. SEE ALSO PROCEDURE, RETURN AND LOCAL GOTO HOW: GOTO label EG: Start: PRINT "ENDLESS LOOP" GOTO start PURPOSE: ALLOWS AN UNCONDITIONAL JUMP TO A LABEL. 'label' MUST END IN A COLON AND CAN CONSIST OF LETTERS, NUMBERS, DOTS, DASHES AND CAN BEGIN WITH A DIGIT. GRAPHMODE HOW: GRAPHMODE N EG: DEFFILL 1,3,4 PBOX 10,100,50,250 GRAPHMODE 4 DEFFILL 1,3,5 PBOX 120,200,200,300 GRAPHMODE 1 PBOX 120,180,200,50 DO IF K=1 THEN GRAPHMODE 1 ELSE GRAPHMODE 3 ENDIF MOUSE X,Y,K CIRCLE X,Y,50 CIRCLE X,Y,50 LOOP PURPOSE: SETS THE GRAPHIC MODE 1 TO 4. 1=REPLACE 2=TRANSPARENT 3=Xor 4=REVERSE TRANSPARENT THIS COMMAND DETERMINES THE GRAPHIC MODE OF THE SCREEN IT IS IMPORTANT WHEN PICTURES ARE TO BE DRAWN ON TOP OF EACH OTHER. HARDCOPY HOW: HARDCOPY EG: GRAPHMODE 3 FOR I=0 TO 800 BOX I MOD 640, I MOD 400,639-I MOD 640,399-I MOD 400 NEXT I HARDCOPY PURPOSE: PRINTS THE SCREEN (SAME AS PRESSING & ). HEX$ HOW: HEX$(X) EG: A=-1 B=&022 PRINT HEX$(A) PRINT HEX$(B) PURPOSE: CHANGES THE VALUE OF 'X' INTO A STRING EXPRESSION WHICH CONTAINS THE VALUE OF 'X' IN HEXADECIMAL FORM. SEE ALSO BIN$, OCT$, AND STR$ IF HOW: IF condition [ THEN ] program block [ ELSE ] [ program block ] ENDIF EG: INPUT A,B IF A=3 PRINT "YOU HAVE WON THE " IF B=3 THEN PRINT "JACKPOT !" ELSE PRINT "BOOBY PRIZE !" END IF ELSE PRINT "TRY AGAIN " ENDIF PRINT "SEE YOU SOON " PURPOSE: DIVIDES A PROGRAM UP INTO DIFFERENT BLOCKS DEPENDING ON HOW IT RELATES TO THE 'condition'. FOR A BETTER UNDERSTANDING OF THIS COMMAND IT WOULD BE A GOOD IDEA TO TRY THE ABOVE EXAMPLE. INC HOW: INC var EG: DO INC A EXIT IF A=100 LOOP PRINT A PURPOSE: INCREASES THE VALUE OF 'var' BY 1. THE SAME AS var=var+1 BUT EXECUTES APROX 3.5 TIMES FASTER INFOW HOW: INFOW N,"STRING" EG: INFOW 2,"SMOKING CAN DAMAGE YOUR HEALTH" PURPOSE: ALLOCATES THE (NEW) INFORMATION LINE TO THE WINDOW WITH THE NUMBER 'N'. IF THE STRING IS EMPTY THEN THE LINE IS REMOVED ALTOGETHER. AS THE INFO LINE CANNOT BE SWITCHED ON AND OFF (GEM) WHEN THE WINDOW IS OPENED, INFOW HAS TO BE USED IN FRONT OF OPENW WHEN AN INFORMATION LINE IS REQUIRED. IF THE COMMAND INFOW,N,"" IS USED ("" = NULL STRING) BEFORE OPENW THEN THE WINDOW WILL HAVE NO INFO LINE. INKEY$ HOW: INKEY$ EG: DO REPEAT Z$=INKEY$ UNTIL Z$<>"" PRINT LEN(Z$) PRINT LEFT$(Z$)''ASC(Z$), PRINT RIGHT$(Z$)''ASC(RIGHT$(Z$)) LOOP PURPOSE: READS A CHARACTER FROM THE KEYBOARD. THIS FUNCTION RETURNS A STRING WHICH IS 2,1 OR 0 CARACTERS LONG. IF THE KEY IS A NORMAL KEY, THEN ONE CHARACTER IS RETURNED CONTAINING THE ASCCII CODE. IF THE KEY IS A FUNCTION KEY OR HELP, UNDO etc. THEN TWO CHARACTERS ARE RETURNED. THE FIRST IS ALWAYS ASCCII CODE ZERO AND THE KEY CODE IS IN THE SECOND. INP HOW: INP(X) INP(#N) EG: OPEN "O",#1,"DAT" PRINT #1,"ABC" CLOSE #1 OPEN "I",#1,"DAT" PRINT INP(#1) PRINT "PRESS ANY KEY TO CONTINUE" PRINT INP(2) PURPOSE: READS ONE BYTE FROM THE PERIPHERY OR FROM A FILE. 'X' MUST HAVE A VALUE BETWEEN 0 & 5 0= LST: 1= AUX: 2= CON: 3= MID: 4=NOT POSSIBLE 5= CON: THE FUNCTION INP(X) READS ONE BYTE FROM THE PERIPHERY NAMED IN 'X' AND THE PROGRAM WAITS UNTIL A BYTE IS ACCESSED (eg. WITH X=2 UNTIL A KEY IS PRESSED). INP(#N) READS ONE BYTE FROM THE FILE WITH THE DATA CHANNEL 'N'. THE FUNCTION var=BIOS(1,N) CAN BE USED TO SEE IF A BYTE IS AVAILABLE. INPUT HOW: INPUT [ "TEXT"; (; or ,) ] VAR [ ,VAR.... ] INPUT #N,var [ ,var.... ] EG: INPUT K PRINT AT(5,15); INPUT "ENTER YOUR NAME ";N$ INPUT "Age and Address: ",A,W$ PURPOSE: ALLOWS ENTRY OF DATA DURING PROGRAM EXECUTION WHEN PRINTING TEXT BEFORE INPUT, IT MUST ALWAYS BE IN INVERTED COMMAS. IF THERE IS A SEMICOLON BETWEEN THE 'TEXT' AND 'VAR' A QUESTION MARK AND A SPACE WILL BE DISPLAYED BEFORE THE CURSOR. IF A COMMA IS USED, THE CURSOR WILL BE DIRECTLY AFTER THE LAST CHARACTER OF 'TEXT' IF WRONG INFORMATION IS ENTERED FOR THE TYPE OF 'VAR', A BUZZER WILL SOUND AND ANOTHER ATTEMPT CAN BE MADE. IF THE INFORMATION HAS BEEN TAKEN FROM A FILE (USING INPUT #N) AN ERROR MESSAGE WILL BE DISPLAYED. A STRING CAN BE UPTO 255 CHARACTERS LONG. SPECIAL CHARACTERS CAN BE SEARCHED FOR AND ENTERED IN THREE DIFFERENT WAYS, BY PRESSING :- - KEY TOGETHER WITH ANOTHER KEY - AND TOGETHER, FOLLOWED BY ANOTHER KEY - AND TOGETHER, FOLLOWED BY THE ASCII CHARACTER CODE OF THE CHOSEN KEY THE BEGINNING AND END OF THE TEXT CAN BE REACHED BY USING THE UP AND DOWN ARROR KEYS. IF THE INFORMATION ENTERED CONTAINS A COMMA, THEN ONLY THE PART BEFORE THE COMMA WILL BE ACCEPTED, HOWEVER IF IF THE STRING CONTAINING COMMAS IS ENTERED BETWEEN INVERTED COMMAS, THE WHOLE STRING WILL BE ACCEPTED WITHOUT THE INVERTED COMMAS. INPUT$ HOW: INPUT$(X[,#N]) EG: OPEN "O",#1,"DAT" PRINT #1,"GFA BASIC" CLOSE #1 OPEN "I",#1,"DAT" PRINT INPUT$(3,#1) PRINT "TYPE IN 5 CHARACTERS" PRINT INPUT$(5) PURPOSE: READS 'X' FROM THE KEYBOARD OR FILE AS A STRING 'X' IS AN INTEGER BETWEEN 0 AND 32767 (STRING LENGTH) 'N' IS AN INTEGER BETWEEN 0 AND 99 WHICH REPRESENTS THE DATA CHANNEL NUMBER OPENED WITH 'OPEN' IF THE OPTIONAL PART IS NOT USED, THE COMMAND FORMS A STRING FROM 'X' CHARACTERS FROM THE KEYBOARD. IF THE OPTIONAL PART '#N' IS USED THEN A STRING OF 'X' CHARACTERS WILL BE READ FROM THE FILE #N INSTR HOW: INSTR([N,]A$,B$) OR INSTR(A$,B$[,N]) EG: N$="GFA BASIC" 0 S$="BASIC" PRINT INSTR(N$,"A") PRINT INSTR(4,N$,"A") PRINT INSTR("GFA BASIC","FB") PRINT INSTR(N$,S$) PURPOSE: SEARCHES TO SEE IF B$ IS PRESENT IN A$ AND RETURNS ITS POSITION. 'N' IS A NUMERIC EXPRESSION INDICATING THE POSITION IN A$ AT WHICH THE SEARCH IS TO BEGIN. IF 'N' IS NOT GIVEN, THE SEARCH BEGINS AT THE FIRST CHARACTER OF A$. IF B$ IS FOUND IN A$ THE START POSITION IS RETURNED. INT HOW: INT(X) EG: A=3.1415926 PRINT INT(A) PRINT INT(-1.001) PURPOSE: DETERMINES THE LARGEST INTEGER THAT IS LESS THAN OR EQUAL TO 'X' KILL HOW: KILL "FILESPEC" EG: OPEN "O",#1,"WUBBISH" CLOSE FILES KILL "WUBBISH" PRINT FILES PURPOSE: DELETES A DISC FILE (ONLY ONE AT A TIME) LEFT$ HOW: LEFT$(STRING [ ,N ] ) EG: N$="SOCIALISM" PRINT LEFT$(N$) PRINT LEFT$(N$,2) PRINT LEFT$(N$,5) PURPOSE: RETURNS THE FIRST CHARACTER OR FIRST 'N' CHARACTERS OF A STRING. LEN HOW: LEN(X$) EG: A$="ABCDEFGHIJKLMNOPQRST" PRINT LEN(A$) PRINT LEN(A$+"UVWXYZ") PURPOSE: DETERMINES THE LENGTH OF A STRING. LET HOW: [ LET ] var=expression EG: LET A=666 PRINT A REM OR WITHOUT THE WORD 'LET' A=999 PRINT A PURPOSE: ASSIGNS A VARIABLE WITH HE VALUE OF AN EXPRESSION. LINE HOW: LINE X,Y,XX,YY EG: LINE 0,0,200, 200 LINE 200,0,0,200 PURPOSE: CONNECTS TWO POINTS ('X,Y' & 'XX,YY') WITH A STAIGHT LINE. THIS COMMAND IS IDENTICAL TO DRAW X,Y TO XX,YY SEE ALSO DEFLINE LINE INPUT LINE INPUT # HOW: LINE INPUT [ "TEXT" ; ( , ) ]var [ ,var... ] LINE INPUT #N,var [,var...] EG: LINE INPUT K$ LINE INPUT A$,B$,C$ PRINT AT(15,15) LINE INPUT "ENTER NAME" N$ LINE INPUT "STREET & TOWN ",S$,T$ PURPOSE: MAKES IT POSSIBLE TO ENTER A STRING DURING PROGRAM EXECUTION. 'TEXT' IS A STRING WHICH IS SHOWN ON THE SCREEN PRIOR TO INFORMATION BEING ENTERED. 'var' CAN BE ANY STRING VARIABLE NAME. THIS COMMAND IS THE SAME AS INPUT EXCEPT THAT A COMMA IS TAKEN AS PART OF THE ENTERED STRING AND NOT AS A SEPARATOR. ONLY IS REGARDED AS A SEPARATOR. LIST HOW: LIST "FILENAME" EG: PRINT "LIST PROGRAM TO DISC AS ASCCII CODE" LIST "PROG" PRINT "LIST PROGRAM TO SCREEN" LIST "" PURPOSE: STORES THE PROGRAM CURRENTLY IN MEMORY TO DISC IN ASCCII FORMAT. IF THE 'FILENAME' IS AN EMPTY STRING (eg. "") THEN THE LISTING IS SHOWN ON THE SCREEN. IN ALL OTHER CASES THIS COMAND IS THE SAME AS THE EDITOR MENU OPTION SAVE,A PROGRAMS WHICH ARE TO BE JOINED TOGETHER USING THE COMMAND MERGE MUST BE SAVE USING LIST. IF NO FILENAME EXTENSION IS GIVEN THEN .LST IS ASSUMED. LLIST HOW: LLIST EG: PRINT "LIST PROGRAM TO PRINTER" LLIST PURPOSE: PRINTS OUT THE LISTING OF THE CURRENT PROGRAM. LOAD HOW: LOAD "FILESPEC" EG: SAVE "PROGRAM" LOAD "PROGRAM" PURPOSE: LOADS A PROGRAM INTO MEMORY. IF NO EXTENSION IS GIVEN THEN .BAS IS ASSUMED. FOR 'FILESPEC' SEE DIR. LOC HOW: LOC( [ # ]N) EG: OPEN "O",#1,"DAT" PRINT #1,"1234567" SEEK #1,3 PRINT LOC(#1) PURPOSE: RETURNS THE LOCATION OF THE FILE POINTER FOR THE FILE WITH THE CHANNEL NUMBER 'N' THE LOCATION IS GIVEN IN NUMBER OF BYTES FROM THE START OF THE FILE. LOCAL HOW: LOCAL var [ ,var.... ] EG: A=1000 PRINT A GOSUB sub PRINT A PROCEDURE sub LOCAL A I=I+1 A=I PRINT A IF I=10 THEN ELSE GOSUB sub ENDIF PRINT A RETURN PURPOSE: DECLARES 'var' TO BE A LOCAL VARIABLE. 'VAR' CAN BE ANY VARIABLE (EXCEPT A FIELD (ARRAY?) VARIABLE ). IF THE VARIABLE IS ASSIGNED A VALUE FROM WITHIN A PROCEDURE, THE VALUE OF ANY VARIABLES WITH THE SAME NAME USED OUTSIDE THE PROCEDURE REMAINS UNCHANGED. SEE ALSO GOSUB, PROCEDURE AND RETURN. LOF HOW: LOF ([ # ]N) EG: OPEN "O",#1,"DAT" PRINT LOF(#1) PRINT #1,"1234567" PRINT LOF(#1) PURPOSE: DETERMINES THE LENGTH OF THE FILE (IN BYTES) WITH CHANNEL NUMBER 'N'. SEE ALSO OPEN LOG LOG10 HOW: LOG(X) LOG10(X) EG: A=2.718281818285 PRINT LOG(A)  PRINT LOG(A^2) PRINT LOG10(10*10*10) PRINT LOG10(2.456) PURPOSE: DETERMINES THE NATURAL LOGARITHM (LOG) OR THE LOGARITHM BASE 10 (LOG10) OF 'X'. LPOS HOW: LPOS(N) EG: FOR I=1 TO 600 LPRINT "A"; IF LPOS(1)=30 THEN LPRINT END IF NEXT I PURPOSE: RETURNS THE COLUMN IN WHICH THE PRINTER HEAD (IN THE PRINTER BUFFER) IS LOCATED. 'N' CAN BE ANY NUMBER. THE FIRST COLUMN IS '0' THE VALUE RETURNED BY THIS FUNCTION WILL NOT CORRESPOND TO THE ACTUAL POSITION OF THE PRINTER HEAD IN EVERY CASE BECAUSE FOR THIS FUNCTION ONLY THE LINES ACTUALLY PRINTED ARE COUNTED. CR, LF AND BS [CHR$(13,10,8)] ARE TREATED AS A SPECIAL CASE. LPRINT HOW: LPRINT [ expressions [ , ][ ; ][ ' ]] EG: A$="GFA" B=1986 LPRINT A$' LPRINT B, LPRINT A$,B, LPRINT A$,B;"GFA" LPRINT A$'''''B LPRINT USING "###.##",PI*100 PURPOSE: PRINTS DATA ON THE PRINTER. 'expression' IS ANY NUMBER OF EXPRESSIONS SEPARATED BY COMMAS OR SEMICOLONS OR APOSTROPHES. IF NONE OF THESE IS GIVEN A SEMICOLON IS ASSUMED. THIS COMMAND IS SIMILAR TO THE PRINT COMMAND IN ALL RESPECTS APART FROM THE FACT THAT THE OPTION AT(X,Y) CANNOT BE USED. SEE ALSO PRINT AND PRINT USING LSET HOW: LSET var=string EG: A$="AAAAAAAAA" B$=SPACE$(7) C$="GFA" LSET A$=C$ LSET B$="GFA-BASIC" PRINT A$;B$ PURPOSE: PUTS THE 'string' IN THE STRING VARIABLE 'var' JUSTIFIED TO THE LEFT. IF THE CHARACTER STRING IS SMALLER THAN THE VARIABLE THEN THE UNUSED PART WILL CONTAIN SPACES. IF THE REVERSE IS TRUE, THEN THE STRING WILL BE TRUNCATED FROM THE RIGHT UNTIL IT FITS THE VARIABLE. LSET IS NORMALLY USED IN CONJUNCTION WITH FIELD WHEN CREATING A RELATIVE FILE. IN THIS CASE THE NUMERIC VALUES MUSRT BE TRANSFORMED INTO STRINGS USING MKI$, MKS$, MKF$ OR MKD$ BEFORE THE COMMAND LSET CAN BE USED. LSET IS THE OPPOSITE OF THE COMMAND RSET. MAX HOW: MAX(expression [ ,expression... ]) EG: A=17 B=3 A$="AAA" PRINT MAX(A,B,2*2) PRINT MAX(A$,"AAAA") PURPOSE: RETURNS THE GREATEST VALUE (OR LARGEST STRING) FROM A LIST OF EXPRESSIONS. 'expression' IS ANY NUMERIC OR STRING EXPRESSION. ALL EXPRESSIONS IN THE LIST MUST BE OF THE SAME TYPE (i.e ALL NUMERIC OR ALL STRING). IF NUMBERS ARE BEING COMPARED, THE LARGEST IS RETURNED. IF IT IS STRINGS THENM THE OPERATOR '>' IS USED TO DETERMINE THE 'LARGEST' STRING. THE OPPOSTIE TO MAX IS MIN MENU HOW: MENU field (n) MENU KILL MENU OFF MENU n,x EG: See ON MENU GOSUB PURPOSE: MAKES IT POSSIBLE TO CREATE AND MODIFY MENU STRIP 'field' IS A ONE-DIMENSIONAL FIELD OF STRING VARIABLES WHICH CONTAINS THE TEXT OF THE MENU STRIP. THE FIELD OF STRING VARIABLES MUST BE CONSTRUCTED IN THE FOLLOWING WAY: THE MENU TITLE AND ITEMS OF THE PULL-DOWN MENU MUST BE ENTERED ONE AFTER THE OTHER. AN EMPTY STRING MUST FOLLOW EACH MENU TITLE WITH ITS RESPECTIVE PULL-DOWN MENU. TWO EMPTY MUST FOLLOW THE LAST ITEM IN THE MENU. THE FIRST MENU MUST BE ENTERED IN THE FOLLOWING WAY: TITLE, PROGRAM INFORMATION, A SERIES OF MINUS SIGNS TO SEPERATE IT FROM THE REST, 6 DUMMY STRINGS (LENGTH >0) FOR THE DESK ACCESSORIES. THE MENU STRIP IS ACTIVATED AND DISPLAYED BY USING THE COMMAND 'MENU field()'. THIS MENU DE-ACTIVATED BY THE COMMAND 'MENU KILL'. 'MENU OFF' DISPLAYS MENU TITLES IN THE NORMAL WAY AGAIN IF THEY WERE DISPLAYED INVERSE. MENU ITEMS CAN BE ALTERED BY USING 'MENU n,x'. 'n' IS THE ITEM NUMBER IN THE MENU AND 'x' FOR AN INTEGER FROM 0 TO 3. MENU n,0 REMOVES THE TICK FROM IN FRONT OF THE MENU ITEM WHICH WAS SET WITH MENU n,1 MENU n,1 PLACES A TICK IN FRONT OF A MENU ITEM. THERE MUST BE A SPACE BEFORE THE ITEM FOR IT TO WORK MENU n,2 THE ITEM IS WRITTEN IN PALE LETTERS AND CANNOT BE CHOSEN MENU n,3 THE ITEM IS WRITTEN IN NORMAL LETTERING AND CAN BE CHOSEN AGAIN A MENU ITEM CANNOT BE CHOSEN IF IT STARTS WITH A MINUS SIGN. (AS IN MENU N,2). DESK ACCESSORIES CAN BE DEACTIVATED BY REPLACING THE SIX DUMMY STRINGS WITH MINUS SIGNS. IT IS ALSO POSSIBLE TO ACTIVATE AND DEACTIVATE THEM WITH THE OPTIONS MENU N,3 AND MENU N,2. SEE ON MENU GOSUB AND THE FUNCTION MENU. MENU HOW: MENU(N) EG: SEE ON MENU GOSUB PURPOSE: THE FUNCTION MENU(N) MAKES IT POSSIBLE TO USE THE PARAMETERS FROM THE ON MENU GOSUB ROUTINES. AFTER ON MENU THE FUNCTION RETURNS THE VAUES WHICH WERE RETURNED WHEN 'event_multi' WAS CALLED UP. N=0 THE NUMBER OF CLICKED PULL DOWN MENUS N=1 TO 8 RETURNS THE CORRESPONDING MESSAGE BUFFER ENTRIES N=9 RETURNS A FLAG WHICH INDICATES WHAT THE LAST OCCURENCE WAS (int_out[0]). N=10 & N=11 RETURN THE COORDINATES WHICH MOVE THE MOUSE (int_out[1 & 2]). N=12 RETURNS THE STATUS OF THE MOUSE KEYS (int_out[3]). N=13 RETURNS THE SATE OF THE ALT KEYS. N=14 RETURNS THE KEY THAT WAS CLICKED AS A WORD, HIGH BYTE=SCAN CODE, LOW BYTE=ASCCII CODE (int_out[5]). N=15 RETURNS THE NUMBER OF MOUSE CLICKS (int_out[6]). N=16 RETURNS THE ADDRESS OF THE MENU OBJECT TREE. MID$ HOW: MID$(string,A [ ,N ]) EG: N$="GFA BASIC" PRINT MID$(N$,5) PRINT MID$(N$,1,3) PRINT MID$(N$,3,12) PURPOSE: RETURNS ALL OR 'N' CHARACTERS IN A STRING FROM THE POSITION 'A' ONWARDS. IF THE OPTIONAL PARAMETER 'N' IS NOT USED, THE FUNCTION RETURNS ALL CHARACTERS OF THE STRING FROM 'A' ONWARDS. NOTE: A=0 PRODUCES THE SAME AS A=1. IF 'N'=0 AN EMPTY STRING IS RETURNED. MIN HOW: MIN(expression [ ,expression... ]) EG: A=17 B=3 A$="AAA" PRINT MIN(A,B,2*2) PRINT MIN(A$,"AAAA") PURPOSE: RETURNS THE SMALLEST VALUE (OR SMALLEST STRING) FROM A LIST OF EXPRESSIONS. 'expression' IS ANY NUMERIC OR STRING EXPRESSION. ALL EXPRESSIONS IN THE LIST MUST BE OF THE SAME TYPE (i.e ALL NUMERIC OR ALL STRING). IF NUMBERS ARE BEING COMPARED, THE SMALLEST IS RETURNED. IF IT IS STRINGS THENM THE OPERATOR '>' IS USED TO DETERMINE THE 'SMALLEST' STRING. THE OPPOSTIE TO MIN IS MAX MKDIR HOW: MKDIR "DIRECTORY NAME" EG: MKDIR "A:\DIRECTORY1" MKDIR "A:\DIRECTORY1\DIRECTORY2" FILES "A:\*.*K" FILES "A:\DIRECTORY1\*.*" PURPOSE: CREATES A NEW DIRECTORY. 'DIRECTORY' NAME IS THE NAME OF THE NEW DIRECTORY. IT IS POSSIBLE TO USE THE HIERARCHICAL FILE SYSTEM (\) WHEN CHOOSING THE NAME. MKI$ MKL$ MKS$ MKF$ MKD$ HOW: MKI$(N) MKL$(N) MKS$(N) MKF$(N) MKD$(N) EG: A=0.1111 PRINT MKF$(A) FOR I=0 TO 5 Z=PEEK(VARPTR(A)+I) PRINT Z,CHR$(Z) NEXT I PURPOSE: TRANSFORMS A NUMBER INTO A CHARACTER STRING. MKI$ 16-BIT NUMBER INTO A 2-BYTE STRING. MKL$ 32-BIT NUMBER INTO A 4-BYTE STRING. MKS$ A NUMBER INTO AN ATARI BASIC 4-BYTE FORMAT. MKF$ A NUMBER INTO GFA BASICS OWN 6-BYTE FORMAT. MKD$ A NUMBER INTO A MBASIC COMPATIBLE 8-BYTE FORMAT. EVERY NUMBER THAT IS TO BE STORED IN A RANDOM ACCESS FILE MUST FIRST BE TRANSFORMED WITH ON OF THE ABOVE FUNCTIONS. THE EXAMPLE ABOVE SHOWS THAT GFA BASIC STORES NUMBERS INTERNALLY IN THE 6-BYTE FORMAT WHICH CAN ALSO BE CREATED USING THE MKF$ FUNCTION. SEE ALSO CVI, CVL, CVS, CVF AND CVD MOUSE MOUSEX MOUSEY MOUSEK HOW: MOUSE X,Y,K MOUSEX MOUSEY MOUSEK EG: DO  MOUSE A,B,C PRINT AT(1,1);A,B,C X=MOUSEX Y=MOUSEY K=MOUSEK PRINT AT(3,1);X,Y,K LOOP PURPOSE: DETERMINES THE MOUSE POSITION (X,Y) AND THE STATUS OF THE MOUSE BUTTONS. K=0 NO BUTTONS PRESSED K=1 LEFT BUTTON K=2 RIGHT BUTTON K=3 BOTH BUTTONS MUL HOW: MUL var,N EG: A=2 FOR I=1 TO 20 MUL A,2 PRINT A NEXT I PURPOSE: MULTIPLIES THE VALUE 'var' BY 'N'. SAME AS var=var*N BUT EXCECUTES 30% FASTER. NAME HOW: NAME "OLDFILE" AS "NEWFILE" EG: OPEN "O", #1,"YORK" CLOSE #1 FILES NAME "YORK" AS "NEWYORK" FILES PURPOSE: RENAMES AN EXISTING FILE. THE CONTENTS OF THE FILE ARE NOT AFFECTED. THE COMMAND CAN REFER ONLY TO ONE DRIVE. IF 'OLDFILE' IS ON DRIVE A THEN 'NEWFILE' WILL ALSO BET PUT ON THIS DRIVE. 'NEWFILE' CAN HOWEVER BE PUT INTO ANOTHER FOLDER eg. NAME "B:PARTS" AS "\CAR\SPARES" NEW HOW: NEW EG: PRINT "IS THIS A DAGGER I SEE BEFORE ME ?" NEW PURPOSE: DELETES THE PROGRAM CURRENTLY IN MEMORY AND CLEARS ALL VARIABLES. OCT$ HOW: OCT$(X) EG: A=-1 B=&H22 PRINT OCT$(A) PRINT OCT$(234) PRINT OCT$(B) PURPOSE: CHANGES THE VALUE 'X' INTO A STRING CONTAINING THE VALUE OF 'X' IN OCTAL FORM (PREFIX &O) SEE ALSO HEX$, BIN$ & STR$ ON...GOSUB HOW: ON expression GOSUB procedure list EG: DO INPUT A ON A GOSUB PRO1,PRO2 LOOP PROCEDURE PRO1 PRINT "1<=A<2" RETURN PROCEDURE PRO2 PRINT "2<=A<3" RETURN PURPOSE: DEPENDING ON THE VALUE OF 'expression' ONE OF SEVERAL GIVEN PROCEDURES IS PROCESSED. IF THE VALUE OF 'EXPRESSION' IS GREATER THAN OR = TO 1 AND SMALLER THAN 2, THE FIRST PROCEDURE IN THE LIST IS PROCESSED. IF THE VALUE OF 'EXPRESSION' IS GREATER THAN OR = TO 2 AND SMALLER THAN 3, THE SECOND PROCEDURE IN THE LIST IS PROCESSED AND SO ON. IF THE VALUE DOES NOT COME IN RANGE THEN NO PROCEDURE WILL BE EXECUTED. ON BREAK ON BREAK CONT ON BREAK GOSUB HOW: ON BREAK ON BREAK CONT ON BREAK GOSUB name EG: ON BREAK GOSUB comment PRINT "INTERRUPT PROGRAM" REPEAT UNTIL MOUSEK ON BREAK PROCEDURE comment PRINT "NO INTERRUPTION POSSIBLE" RETURN PURPOSE: ON BREAK CONT MAKES IT IMPOSSIBLE TO STOP A PROGRAM BY PRESSING BREAK ( ). ON BREAK REACTIVATES IT. ON BREAK GOSUB MAKES IT POSSIBLE TO JUMP TO THE PROCEDURE 'name' BY THE ABOVE KEY COMBINATION. ON ERROR ON ERROR GOSUB HOW: ON ERROR ON ERROR GOSUB name EG: ON ERROR GOSUB error routine PRINT SQR(-1) PRINT 3/0 ON ERROR PRINT SQR(-1) PROCEDURE error routine PRINT "ERROR NO. ";ERR ON ERROR GOSUB error routine RESUME NEXT RETURN PURPOSE: PERFORMS THE PROCEDURE 'name' WHEN AN ERROR OCCURS. THE PROGRAM IS NOT INTERUPTED AND NO ERROR MESSAGE IS GIVEN. THE COMMAND MUST BE PRESENT IN THE PROGRAM BEFORE THE ERROR OCCURS. THE PROGRAM WILL DEVIATE ONLY ONCE TO THE PROCEDURE. IF A FURTHER ERROR OCCURS, THE PROGRAM WILL STOP AND AN ERROR MESSAGE WILL BE DISPLAYED AS USUAL. IF IT IS NECESSARY TO DEVIATE WITH EVERY ERROR THEN THIS MODE MUST BE SWITCHED ON EACH TIME WITHIN THE ERROR ROUTINE BY ON ERROR GOSUB BEFORE RETURNING TO THE MAIN PROGRAM. THE COMMAND OR ERROR SWITCHES THE PROGRAM BACK TO THE NORMAL ERROR HANDLING PROCEDURE. ON MENU GOSUB HOW: ON MENU GOSUB proc1 ON MENU KEY GOSUB proc2 ON MENU MESSAGE GOSUB proc3 ON MENU IBOX A,X,Y,B,H GOSUB proc4 ON MENU OBOX A,X,Y,B,H GOSUB proc5 EG: DIM STRIP$(50) FOR I=0 TO 50 READ STRIP$(I) EXIT IF STRIP$(I)="***" NEXT I STRIP$(I)="" STRIP$(I+1) DATA DESK,MENUTEST DATA ------------------------ DATA 1,2,3,4,5,6,"" DATA FILE,LINE1,LINE2,LINE3,"" DATA HELP,HELP 1, HELP 2,"" DATA EDIT,EDIT1,EDIT2,EDIT3,QUIT DATA *** MENU STRIP$() OPENW 0 ON MENU GOSUB menue ON MENU IBOX 1,100,100,200,100 GOSUB inbox1 DO ON MENU LOOP PROCEDURE menue PRINT " MENU SELECTION "; PRINT STRIP$(MENU(0)) IF STRIP$(MENU(0))="QUIT" END END IF RETURN PROCEDURE inbox1 DEFMOUSE 4 ON MENU OBOX 1,100,100,200,100 GOSUB outbox1 RETURN PROCEDURE outbox1 DEFMOUSE 0 ON MENU IBOX 1,100,100,200,100 GOSUB inbox1 RETURN PURPOSE: CERTAIN MENU ASPECTS CAN BE HANDLED USING ON MENU.... 'proc1' TO 'proc5' ARE NAMES OF PROCEDURES WHICH DEAL WITH CERTAIN ASPECTS OF THE MENU. ON MENU GOSUB DEFINES THE PROCEDURE WHICH HANDLES MENU SELECTION.ON MENU KEY GOSUB DEFINES THE PROCEDURE WHICH HANDLES KEY INPUT. (CONT.) ON MENU IBOX...GOSUB AND ON MENU OBOX...GOSUB DEFINE THE PROCEDURES TO MAKE THE MOUSE MOVE IN OR OUT OF PRE-DEFINED RECTANGLES. 'A' DEFINES WHICH ONE OF THE TWO POSSIBLE INDEPENDANT RECTANGLES WILL BE USED 'X' AND 'Y' DEFINE THE TOP COORDINATES AND 'B' AND 'H' DEFINE THE WIDTH AND HEIGHT. THESE MENU ASPECTS CAN ONLY BE CALLED UP BY THE COMMAND ON MENU. THEREFORE, THIS COMMAND SHOULD BE FREQUENTLY USED (FOR EXAMPLE, IN A LOOP). OPEN HOW: OPEN "mode", [#]N,"FILENAME" [ ,LEN ] EG: OPEN "O",#1,"NAME" PRINT #1,"GFA BASIC" OPEN "I",#2,"NAME" DO EXIT IF EOF(#2) PRINT INPUT$(1,#2) LOOP CLOSE PURPOSE: OPENS A DATA CHANNEL OR A CHANNEL TO A DISC FILE. 'mode' MUST ALWAYS BE WRITTEN IN QUOTES AND IS ONE OF THE FOLLOWING :- 'O' OPENS A WRITE FILE CREATING A NEW FILE IF NEEDED. 'I' OPENS A READ FILE. 'A' ENABLES DATA TO BE ANNEXED TO AN EXISTING FILE. 'U' READ/WRITE, BUT FILE MUST BE OPENED BY 'O' FIRST. 'R' STANDS FOR RANDOM ACCESS FILE. THE FOLLOWING PREFIXES CAN ALSO BE USED AS FILENAMES :- 'CON:' FOR THE CONSOLE. 'LST:' OR 'PRN:' FOR THE PRINTER. 'AUX:' FOR THE SERIAL INTERFACE. 'MID:' FOR MIDI. 'VID:' FOR THE CONSOLE IN TRANSPARENT MODE (COMMANDS ARE PRODUCED BUT NOT EXECUTED). 'IKB:' FOR DIRECT ACCESS TO THE KEYBOARD CONTROLLER. 'LEN' IS ONLY USED IN FILES WITH RANDOM ACCESS. THE LENGTH OF A FILE ENTRY IS DEFINED. IF THIS PREFIX IS NOT PRESENT, A LENGTH OF 128 BYTES IS DESIGNATED. OPENW HOW: OPENW N [ ,X,Y ] EG: OPENW 2,320,200 PURPOSE: OPENS A WINDOW WITH THE NUMBER 'N'. THE OPTIONAL 'X & Y' DEFINE THE POINT OF CONTACT FOR THE FOUR POSSIBLE WINDOWS. THESE ARE ARRANGED ON THE SCREEN LIKE THE FOUR QUADRANTS OF A SYSTEM OF COORDINATES. THE POINT OF CONTACT CORRESPONDS WITH THE ORIGIN OF THE COORDINATES IN THE ANALOGY. THE NUMBERING OF THE WINDOWS IS SET AS FOLLOWS :- 1 2 --------------------------------- 3 4 AFTER USING THE COMMAND OPENW 0 THE WHOLE SCREEN, WITHOUT THE MENU STRIP, IS USED AS A WINDOW. THE STARTING POINT FOR GRAPHICS COMMANDS IS SET WITH OPENW 0,X,Y OUT HOW: OUT X,A OUT #N,A EG: OPEN "O",#1,"DATA" OUT #1,65 CLOSE #1 OPEN "I",#1,"DATA" PRINT INPUT$(1,#1) OUT 2,66 PURPOSE: TRANSFERS A BYTE WITH THE VALUE 'A' TO A PERIPHERAL DEVICE OR FILE. 'X' IS AN INTEGER FROM 0 TO 5 WHERE :- 0=LST: 1=AUX: 2=CON: 3=MID: 4=IKB: 5=VID: 'A' IS AN INTEGER FROM 0 TO 255. IF 'A'>255 THEN 'A' mod 256 IS SENT. OUT X,A SENDS THE VALUE 'A' TO THE DEVICE 'X' OUT #N,A SENDS THE VALUE 'A' TO A FILE CHANNEL 'N' PAUSE HOW: PAUSE X EG: PRINT "PLEASE WAIT FIVE SECONDS" PAUSE 250 PRINT "READY" PURPOSE: INTERRUPTS A PROGRAM FOR EXACTLY X/50 SECONDS. PBOX HOW: PBOX X,Y,XX,YY PCIRCLE HOW: PCIRCLE X,Y,R [ ,PHI0,PHI1 ] PELLIPSE HOW: PELLIPSE X,Y,RX,RY [ ,PHI0,PHI1 ] PRBOX HOW: PRBOX X,Y,XX,YY PURPOSE: THE FOUR COMMANDS ABOVE ARE THE SAME AS BOX, CIRCLE, ELLIPSE AND RBOX EXCEPT THAT THEY DRAW FILLED SHAPES. THE TYPE OF FILL IS DEFINED BY THE COMMAND DEFFILL. PEEK DPEEK LPEEK HOW: PEEK(X) DPEEK(X) LPEEK(X) EG: A$="A" D=ARRPTR(A$) A=LPEEK(D) L=DPEEK(D+4) C=PEEK(A) PRINT "DESCRIPTOR ADDRESS"''D PRINT "ADDRESS"''A PRINT "LENGTH"''L PRINT "ASCCII CODE"''C PURPOSE: RETURNS THE CONTENTS OF THE MEMORY AT ADDRESS 'X' PEEK RETURNS A 1 BYTE AT ADDRESS X DPEEK RETURNS A 2 BYTE NUMBER FROM X AND X+1 LPEEK RETURNS A 4 BYTE NUMBER FROM X, X+1, X+2 & X+3 FOR DPEEK AND LPEEK, 'X' MUST BE AN EVEN NUMBER PI HOW: PI EG: PRINT PI PURPOSE: RETURNS THE VALUE OF PI. THE VALUE OF PI IS 3.141592653.....etc. PLOT HOW: PLOT X,Y EG: PLOT 320,200 DEFLINE 1,6,2,2 PLOT 30,30 PURPOSE: PLOTS A POINT ON THE SCREENA COORDINATES 'X,Y'. THIS COMMAND IS THE SAME AS DRAW X,Y. IF A LINE WIDTH HAS BEEN SET WITH DEFLINE, IT IS NECESSARY TO SET THIS BACK TO 1, OTHERWISE NO DOT WILL BE DRAWN. THERE IS AN EXCEPTION TO THIS RULE: IF THE BEGINNING AND THE END TYPE OF DEFLINE IS 'ROUNDED DOWN', A LARGE DOT, VARYING IN SIZE ACCORDING TO THE WIDTH SET, WILL BE DRAWN (SEE EXAMPLE). POINT HOW: POINT X,Y EG: PLOT 10,10 PRINT POINT(20,20) PRINT POINT(20,21) PURPOSE: CHECKS IF A GRAPHIC DOT (AT 'X,Y') HAS BEEN SET AND RETURNS ITS COLOUR VALUE. POKE DPOKE LPOKE HOW: POKE X,N DPOKE X,N LPOKE X,N EG: A$="A" L=ARRPTR(A$) DPOKE L+4,4 Z=VARPTR(A$) LPOKE Z,1111638594 PRINT A$ POKE Z,67 PRINT A$ PURPOSE: WRITES 1, 2 OR 4 BYTES INTO MEMORY AT AN ADDRESS WHICH STARTS AT 'X'. THE VALUE OF 'X' MUST BE AN EVEN NUMBER FOR DPOKE AND LPOKE. 'N' MUST BE :- FROM 0 TO 255 FOR POKE FROM 0 TO 65535 FOR DPOKE FROM -2147483648 TO +2147483648 FOR LPOKE THE COMMANDS MENTIONED HERE ALL WORK IN THE 68000 'USER' MODE (USUALLY THE AREAS 0 TO 2047 AND THE AREA OVER 8MBYTES CANNOT BE USED). IN ORDER TO REACH THESE AREAS THE SUPERVISOR COMMANDS SPOKE, SDPOKE AND SLPOKE ARE REQUIRED. POLYLINE POLYFILL POLYMARK HOW: POLYLINE N,X(),Y() [OFFSET XX,YY ] POLYFILL N,X(),Y() [OFFSET XX,YY ] POLYMARK N,X(),Y() [OFFSET XX,YY ] EG: DIM X(8),Y(8) FOR I=0 TO 8 X(I)=320+150*SIN(I*2*PI/8) Y(I)=200+150*SIN(I*2*PI/8) NEXT I DEFFILL 1,2,9 POLYFILL 9,X(),Y() PURPOSE: DRAWS A (FILLED IN) SHAPE OF 'N' DOTS OR MARKS THE CORNER POINTS. 'N' STATES THE NUMBER OF DOTS (MAX 128). IF A CLOSED SHAPE IS TO BE DRAWN THEN THE FIRST AND LAST DOT POSITIONS MUST BE IDENTICAL. THESE COMMANDS WORK SIMILARLY TO DRAW BUT THEY ARE MUCH QUICKER, ESPECIALLY WITH INTEGER ARRAYS X%() AND Y%(). X() & Y() ARE NUMERIC FIELDS (ARRAYS) WHICH CONTAIN THE COORDINATES OF THE 'N' DOTS FROM WHICH THE SHAPE WILL BE DRAWN. IT IS NECESSARY TO STORE THE FIRST DOT IN X(0) AND Y(0). IF THE OPTIONAL 'OFFSET XX,YY, IS USED THEN THE ENTIRE SHAPE WILL BE DRAWN RELATIVE TO THESE COORDINATES. DEFFILL DEFINES THE FILL PATTERN AND DEFMARK DEFINES THE TYPE OF MARK TO BE USED WITH POLYMARK. POS HOW: POS(N) EG: FOR I=0 TO 600 PRINT "A"; IF POS(1)=30 THEN PRINT END IF NEXT I PURPOSE: RETURNS THE COLUMN IN WHICH THE CURSOR IS POSITIONED. 'N', A HYPOTHETICAL ARGUMENT, IS OPTIONAL. THE COLOUMNS START AT 0. THE VALUE DOES NOT ALWAYS CORRESPOND TO THE ACTUAL CURSOR POSITION. PRINT AT AND CURSOR COMMANDS ARE IGNORED. IF OVER 80 CHARACTERS WITHOUT A CARRIAGE RETURN IS PRINTED THEN POS CAN RETURN A VALUE GREATER THAN 100. PRINT PRINT# HOW: PRINT [ AT(X,Y) ][ ; ][ expr [ , ][ ; ][ ' ]] PRINT #N [ ,expr [ , ][ ; ][ ' ]] ABBR.: P OR ? EG: A$="GFA" B=1986 PRINT A$' PRINT B, PRINT A$,B;"GFA" PRINT A$'''''B PRINT AT(77,25);A$; PURPOSE: DISPLAYS INFORMATION ON THE SCREEN OR SENDS IT TO DATA CHANNEL 'N'. 'expr' CAN BE ANY NUMBER OF EXPRESSIONS WHICH MUST BE SEPARATED BY COMMAS, SEMICOLONS OR APOSTROPHES. IF THESE SIGNS ARE MISSING A SEMICOLON WILL BE INSERTED AUTOMATICALLY. ; -ITEMS ARE PRINTED ONE AFTER AN OTHER IN ONE LINE. , -ITEMS ARE PRINTED AT INTERVALS OF 16 COLUMNS. ' -EACH APOSTROPHE CAUSES A SPACE TO BE PRINTED. IF NONE OF THE ABOVE ARE PLACED ON THE END OF 'expr' THEN A CARRIAGE RETURN AND LINE FEED IS MADE. THE OPTIONAL AT(X,Y) SPECIFIES THE ROW & COLUMN AT WHICH PRINTING WILL START. PRINT USING HOW: PRINT USING "FORMAT",LIST [ ; ]# PRINT #N,USING "FORMAT",LIST [ ; ]# EG: PRINT AT(7,5);USING "###.##",PI*100 PRINT USING "A!b","LAMBDA" PURPOSE: ISSUES FORMATED DIGITS AND CHARACTER STRINGS. 'FORMAT' IS A STRING EXPRESSION WHICH SETS THE PRINTING FORMAT (SEE BELOW). 'LIST' IS A LIST OF EXPRESSIONS SEPARATED BY COMMAS. # RESERVES SPACE FOR FIGURES. . POSITION OF THE DECIMAL POINT. + EXECUTES A PLUS SIGN. - RESERVES SPACE FOR A MINUS SIGN. * ZEROS BEFORE THE COMMA ARE REPLACED BY * OTHERWISE THE SAME AS #. $$ PREFIX $. ' INSERTION OF A COMMA. ^^^^ EXECUTION IN EXPONENT FORM E+100 ^^^^^ " " " " E+1000 ! INDICATES THAT THE FIRST CHARACTER OF A STRING IS ISSUED. & THE WHOLE STRING IS ISSUED. \..\ AS MANY CHARACTERS AS THE LENGTH OF \..\ IS ISSUED (INCLUDING BACK-SLASHES). - PRINTS THE PROCEEDING CHARACTER. PROCEDURE HOW: PROCEDURE name [ (VARIABLE LIST) ] EG: PRINT "MAIN PROG" GOSUB subr(7) PRINT "BACK A=";A PROCEDURE subr(a) PRINT "PROC A=";A RETURN PRINT "IS DISREGARDED" PURPOSE: MARKS THE BEGINNING OF A PROCEDURE. BASIC WILL ONLY PROCESS A PROCEDURE WHEN IT IS CALLED BY THE COMMAND GOSUB. IF IT COMES ACROSS THE COMMAND PROCEDURE DURING 'NORMAL' RUNNING OF THE PROGRAM, IT CONSIDERS IT TO BE THE END OF THE PROGRAM. (SEE GOSUB & RETURN FOR FURTHER INFORMATION). PUT HOW: PUT X,Y,A$ [ ,MODE ] EG: FOR I=1 TO 5 CIRCLE 320,200,I*40 NEXT I GET 0,0,320,399,A$ PUT 320,0,A$,3 PURPOSE: WRITES A STRING OBTAINED BY GET ONTO THE SCREEN AS A BIT PATTERN. 'X,Y' MARKS THE STARTING POINT OF THE BLOCK. 'A$' IS A STRING VARIABLE WHICH HOLDS THE BIT PATTERN DATA. 'MODE' IS A NUMBER (0 TO 15) WHICH DEFINES THE WAY IN WHICH THE STRING WILL BE DISPLAYED ON THE SCREEN. 0 = DELETE 8 = NOT (S OR B) 1 = S AND B  9 = NOT (S OR B) 2 = S AND (NOT B) 10 = NOT B (INVERSE) 3 = S (OVERWRITE) 11 = S OR (NOT B) 4 = (NOT S) AND B 12 = NOT S (INV. OVERWRITE) 5 = B (DO NOTHING) 13 = (NOT S) OR B 6 = S XOR B 14 = NOT (A AND B) 7 = S OR B 15 = 1 PUT HOW: PUT [ # ]N[ ,I ] EG: SEE FIELD PURPOSE: WRITES A RECORD TO A RANDOM ACCESS FILE. 'N' DATA CHANNEL NUMBER (0 TO 99). 'I' IS AN INTEGER EXPRESSION BETWEEN 1 AND THE NUMBER OF RECORDS IN THE FILE (MAX 65535) AND DENOTES THE RECORD NUMBER OF THE RECORD TO BE WRITTEN. IF I IS NOT USED THEN THE NEXT RECORD IN THE FILE WILL BE WRITTEN. QUIT HOW: QUIT EG: INPUT "ENTER PASSWORD! ";P$ IF P$<>"SPLIB IBBLE LIBBLE IB" THEN QUIT ENDIF PURPOSE: CAUSES A RETURN TO THE GEM DESKTOP, SAME AS SYSTEM. RANDOM HOW: RANDOM(X) EG: PRINT "DIE THROW=";RANDOM(6)+1 PURPOSE: RETURNS A RANDOM INTEGER BETWEEN 0 (INCLUSIVE) AND 'X' (EXCLUSIVE). RANDOM(X) = TRUNC(X*RND) RBOX HOW: RBOX X,Y,XX,YY EG: RBOX 50,50,590,350 PURPOSE: DRAWS A RECTANGLE WITH ROUNDED CORNERS FROM THE TWO DIAGONALLY OPPOSITE CORNER POINTS 'X,Y' AND 'XX,YY' SEE ALSO DEFLINE READ HOW: READ var [ ,var0 ] ...... EG: READ P,N$,Z% PRINT P'N$'Z% DATA LONDON.W1 PURPOSE: READS VALUES FROM A DATA COMMAND AND ASSIGNS THEM TO A VARIABLE 'var'. THE VALUES READ FROM THE DATA LINES MUST BE OF A TYPE WHICH CORRESPONDS TO THE VARIABLE IN THE READ COMMAND. (IMPORTANT SEE ALSO DATA AND RESTORE). RELSEEK HOW: RELSEEK [#]N,X EG: OPEN "O",#1,"DATA" PRINT #1,"1234567890" SEEK #1,8 RELSEEK #1,-5 PRINT LOC(#1) PURPOSE: MOVES THE RANDOM ACCESS FILE POINTER FORWARD (+X) OR BACKWARDS (-X) 'X' NUMBER OF BYTES. REM HOW: REM remark ABBR.: R OR ' EG: REM calculation of distance LET S= (A*T*T)/2 PURPOSE: WHATEVER FOLLOWS A REM COMMAND ON A PARTICULAR LINE IS IGNORED BY BASIC. REM CAN BE USED TO PUT REMARKS INTO A PROGRAM TO MAKE THE LISTING MORE READABLE. IT CAN ALSO BE USED TO DEACTIVATE A LINE OF CODE TO AID IN DEBUGGING. REPEAT...UNTIL HOW: REPEAT UNTIL end EG: REPEAT A=A+1 PRINT A UNTIL A=20 PURPOSE: CREATES A PRE-DEFINED LOOP. THE SECTION OF THE PROGRAM BETWEEN REPEAT AND UNTIL IS REPEATED CONTINUOUSLY UNTIL THE CONDITION IS FULFILLED. THE CONDITION IS CHECKED AT THE END OF THE LOOP ie. THE LOOP HAS TO BE COMPLETED AT LEAST ONCE. RESTORE HOW: RESTORE [label] EG: RESTORE READ A,B,C,D RESTORE Other READ E$,F,G,H DATA 1,2,3,4 Other: DATA MORE,5,6,7 PURPOSE: PLACES THE DATA POINTER AT THE BEGINNING, OR BEHIND THE LABEL NAMES 'label' 'label' CAN BE ANY LIST OF CHARACTERS AND CAN CONTAIN DIGITS, LETTERS, UNDERSCORE AND FULL STOPS. UNLIKE OTHER VARIABLE NAMES IT CAN BEGIN WITH A DIGIT. IF NO LABEL IS SPECIFIED, THE POINTER IS SET TO THE FIRST DATA STATEMENT. RESUME HOW: RESUME RESUME NEXT RESUME label EG: see ON ERROR GOSUB PURPOSE: EXITS OUT OF AN ERROR ROUTINE RESUME REPEATS THE ERRONEOUS COMMAND. RESUME NEXT RESUMES PROGRAM EXECUTION AFTER AN INCORRECT COMMAND. RESUME 'label' BRANCHES TO THE 'label'. IF A FATAL ERROR OCCURS ONLY RESUME 'label' IS POSSIBLE RETURN HOW: RETURN EG: PRINT "main program" GOSUB sub PRINT "return" PROCEDURE sub PRINT "procedure" RETURN PURPOSE: TERMINATES A SUB-ROUTINE IF THE INTERPRETER COMES ACROSS THE COMMAND RETURN IN A PROCEDURE (SUB-ROUTINE) EXECUTION IS CONCLUDED AND EXECUTION CONTINUES AFTER THE GOSUB COMMAND WHICH MADE THE PROGRAM BRANCH OFF INTO THAT PROCEDURE. LOCAL VARIABLES ARE DELETED. (see GOSUB, PROCEDURE, LOCAL) RIGHT$ HOW: RIGHT$(string[,n]) EG: N$="GFA BASIC" PRINT RIGHT$(N$) PRINT RIGHT$(N$,5) PRINT RIGHT$(N$,12) PURPOSE: RETURNS THE LAST CHARACTERS OR 'n' NUMBER OF CHARACTERS (FROM THE RIGHT) OF A CHARACTER STRING 'string' 'string' IS A CHARACTER STRING OR STRING VARIABLE. 'n' IS, LOGICALLY ENOUGH, A NATURAL DIGIT OR A VARIABLE. (DECIMAL DIGITS CAN ALSO BE USED, IN WHICH CASE THE EDITOR WILL ONLY CONSIDER THE WHOLE NUMBER OF THE DECIMAL) IT FUNCTION PRODUCES A PARTIAL STRING OF 'n' CHARACTERS (STARTING FROM THE RIGHT) - SPACES INCLUDED. IF THE OPTIONAL 'n' IS NOT USED, THE FUNCTION RETURNS THE LAST CHARACTER OF THE CHARACTER STRING 'string'. IF 'n' IS GREATER THAN THE NUMBER OF CHARACTERS IN 'string' THEN THE WHOLE OF 'string' IS RETURNED. IF 'n' IS ZERO, AN EMPTY STRING IS RETURNED. RMDIR HOW: RMDIR "directory name" EG: MKDIR "A:DIRECTORY" FILES "A:*.*" RMDIR "A:DIRECTORY" FILES "A:*.*" PURPOSE: DELETES EMPTY DIRECTORIES FOR 'directory name' - See MKDIR WHEN DELETING FROM A SPECIFIC DIRECTORY THE DIRECTORY SEARCH PATH MUST BE ENTERED IN FRONT OF THE DIRECTORY NAME. FROM A ROOT DIRECTORY, THIS ALWAYS BEGINS WITH '\', FOR EXAMPLE, RMDIR "\vehicle\driver" WOULD DELETE A DIRECTORY 'driver' FROM 'vehicle' IN THE ROOT. RND HOW: RND [(x)] EG: FOR I=1 TO 20 PRINT RND NEXT I PURPOSE: RETURNS A RANDOM NUMBER BETWEEN 0 AND 1 THE OPTIONAL PARAMETER (x) IS DISREGARDED. RND RETURNS A RANDOM NUMBER BETWEEN 0 (INCLUSIVE) AND 1 (EXCLUSIVE) IT IS POSSIBLE TO CREATE RANDOM NUMBERS BETWEEN 1 AND 'n' (BOTH INCLUSIVE) WITH THE FOLLOWING FORMULA: Z=INT(RND*n)+1 (see RANDOM) SAVE PSAVE HOW: SAVE "file name" PSAVE "file name" EG: SAVE "A:\PROG" FILES "A:\*.*" PURPOSE: SAVES A PROGRAM FILE (PSAVE IS WITH LIST PROTECTION) 'file name' IS THE NAME OF THE PROGRAM. SEE MKDIR FOR THE EXPLANATION OF HIERARCHICAL FILING SYSTEM. IF A PROGRAM ALREADY EXISTS WITH THE SAME NAME IT WILL BE WRITTEN OVER DURING THE SAVE. PROGRAMS WHICH ARE SAVED WITH PSAVE ARE NOT LISTED BUT RUN STRAIGHT AFTERH THE COMMAND 'LOAD' IS GIVEN. SEEK HOW: SEEK [#]n,x EG: OPEN "O",#1,"DAT1" OPEN "O",#2,"DAT2" PRINT #1,"1234567" PRINT #2,"ABCDEF" SEEK #1,3 SEEK #2,5 PRINT LOC(#1),LOC(#2) PURPOSE: SETS THE FILE POINTER ON THE BYTE NUMBER 'x' OF FILE #n 'n' IS AN INTEGER EXPRESSION BETWEEN 0 AND 99 WHICH REFERS TO THE CHANNEL NUMBER. 'x' HAS A VALUE (TOTAL) EITHER GREATER OR SMALLER THAN THE LENGTH OF THE FILE ADDRESSED. EVERY DATA CHANNEL HAS A FILE POINTER (READING AND WRITING POINTER) WHICH POINTS TO A SPECIFIC BYTE IN THE FILE. THIS POINTER CAN BE PLACED ON ANY BYTE IN THE FILE BY SEEK. POSITIVE 'x' PLACES IT AY BYTE NUMBER 'x' AT THE BEGINNING OF THE FILE, WHEREAS NEGATIVE 'n' VALUES CAUSE THE POINTER TO BE PLACED 'n' NUMBER OF BYTES FROM THE END OF THE FILE. SETCOLOR HOW: SETCOLOR i,r,g,b OR SETCOLOR i,n EG: SETCOLOR 0,0,0,0 FOR COL=1 TO 30000 SETCOLOR 0,COL NEXT COL PURPOSE: DEFINES THE COLOURS RED, GREEN AND BLUE FOR THE COLOUR REGISTER 'i'. 'r,g,b' ARE THE LEVELS OF THE THREE PRIMARY COLOURS FROM 0 TO 7. ANOTHER WAY OF DEFINING COLOURS IS TO USE THE VALUE 'n' WHERE N=R*256+G*16+B SETTIME HOW: SETTIME timestring,datestring EG: PRINT TIME$,DATE$ SETTIME "11:30:11", "29.6.1987" PRINT TIME$,DATE$ PURPOSE: SETS THE TIME AND THE DATE. 'timestring' IS A STRING EXPRESSION WHICH CONTAINS THE TIME. HOURS, MINUTES AND SECOND CAN BE DISPLAYED. THE COLONS ARE OPTIONAL AS TWO DIGITS HAVE TO BE ENTERED. THE SECONDS CAN ALSO BE LEFT OUT. 'datestring' IS A CHARACTER STRING EXPERSSION FOR THE DATE. IT MUST ALWAYS CONTAIN: Day, Month and Year, EACH SEPERATED BY A FULL STOP. WHEN USING THE YEARS BETWEEN 1980 AND 2097 THE FIRST TWO DIGITS CAN BE LEFT OUT. SGN HOW: SGN(x) EG: INPUT A B=SGN(A)*A PRINT B PURPOSE: ASCERTAINS WHETHER 'x' IS POSITIVE, NEGATIVE OR 0 'x' CAN BE ANY NUMERIC EXPERSSION. SGN(x) IS THE MATHEMATIC SIGN FUNCTION. THE VALUES -1, 0 AND 1 CAN BE RETURNED:- - 0 IF X=0 - +1 IF X>0 - -1 IF X<0 (See ABS) SIN HOW: SIN(x) EG: 1) INPUT RAD PRINT SIN(RAD) INPUT GRAD PRINT SIN(GRAD*PI/180) 2) PLOT 320,200 FOR I=1 TO 5400 X=I/36*SIN(I*PI/180) Y=I/36*SIN(I*PI/180) DRAW TO 320+X,200+Y NEXT I PURPOSE: RETURNS THE SINE VALUE OF 'x' 'x' IS A NUMERIC EXPERSSION WHICH SHOWS THE ANGLE, FOR WHICH THE SINE IS CALCULATED, IN RADIAN MEASURE (RAD) IF THE ANGLE IS TO BE INDICATED IN DEGREES, 'x' IS REPLACED BY GRAD*PI/180. IN THE FIRST EXAMPLE THE (RAD) OF THE CHOSEN ANGLE IS CALCULATED AND THEN THE DEGREE ACCORDING TO THE SINE VALUE. IN THE SECOND EXAMPLE A 'SNAIL' FORM IS CREATED BY USING DEGREES. SOUND HOW: SOUND voc,vol,note,octave[,dur] SOUND voc,vol,note,#period[,dur] EG: FOR I=1 TO 8 SOUND 1,15,1,I,40 FOR J=1 TO 6 READ A SOUND 1,15,A,I,20 NEXT J RESTORE NEXT I DATA 3,5,6,8,10,12 PURPOSE: GENERATES MUSICAL NOTES 'voc' IS AN EXPRESSION WITH ONE OF THE VALUES 1,2,3 AND SELECTS THE SOUND CHANNEL. 'vol' IS AN EXPRESSION WITH A VALUE OF 1 TO 15 AND SELECTS THE VOLUME. 'note' IS AN EXPRESSION WITH A VALUE OF 1 TO 12 AND SELECTS ONE OF THE FOLLOWING NOTES: 1=C, 2=C#, 3=D, 4=D#, 5=E, 6=F, 7=F#, 8=G, 9=G#, 10=A 11=A#, 12=B 'octave' IS AN EXPRESSION WITH A VALUE BETWEEN 1 AND 8, AND DETERMINES THE OCTAVE IN WHICH THE NOTE IS PLAYED. THE NOTE A IN TH SCALE OF C (440 Hz) IS THE 4th OCTAVE (10th NOTE). 'dur' IS AN INTEGER EXPRESSION AND SPECIFIES THE TIME IN 1/50ths OF A SECOND THE TIME GFA BASIC HAS TO WAIT BEFORE EXECUTION OF THE NEXT COMMAND. A FURTHER POSSIBILITY TO CHOOSE THE PITCH IS TO ENTER 'PERIOD' PREFIXED BY '#' INSTEAD OF 'note' AND 'octave'. THE PERIOD CAN BE CALCULATED FROM THE FREQUENCY AS FOLLOWS: Period = TRUNC(125000/frequency +0.5) THEREFORE THE NOTE A (440 Hz) HAS A PERIOD OF 284. THIS NOTE CAN BE PLAYED FOR 10 SECONDS THUS: SOUND 1,15,10,4,500 OR SOUND 1,15,#284,500 (See WAVE) SPACE$ HOW: SPACE$(x) EG: FOR I=0 TO 20 PRINT SPACE$(I);I NEXT I PURPOSE: CREATES A CHARACTER STRING CONTAINING 'x' SPACES. 'x' IS A NUMERIC EXPRESSION WITH A VALUE WHICH MUST LIE BETWEEN 0 AND 32767. ONLY INTEGERS OF 'x' WILL BE ACCEPTED. SPC HOW: SPC(n) EG: PRINT "GFA";SPC(10);"BASIC" PRINT "here";SPC(200);"there" PURPOSE: PRODUCES 'n' SPACES INA PRINT COMMAND 'n' IS AN INTEGER EXPERSSION. HOWEVER, ONLY THE VALUE TRUNC(n MOD 256) IS CONSIDERED. THE FUNCTION SPC CAN ONLY BE USED WITH PRINT COMMANDS. SPOKE SDPOKE SLPOKE HOW: SPOKE x,n SDPOKE x, SLPOKE x,n EG: A$="A" L=ARRPTR(A$) SDPOKE L+4,4 Z=VARPTR(A$) SLPOKE Z,1111638594 PRINT A$ SPOKE Z,67 PRINT A$ PURPOSE: WRITES 1, 2 or 4 BYTES INTO AN AREA OF MEMORY WHICH BEGINS WITH THE ADDRESS 'x' 'x' IS A NUMERIC EXPRESSION WHICH NAMES AN ADDRESS IN  THE MAIN MEMORY. THE VALUE OF 'x' MUST BE AN EVEN NUMBER IN THE COMMANDS SDPOKE AND SLPOKE. 'n' IS A NUMERIC EXPRESSION WHEREBY THE VALUE FOR SPOKE MUST LIE BETWEEN 0 AND 255, THE VALUE FOR SDPOKE BETWEEN 0 AND 65535 AND THE VALUE FOR SLPOKE BETWEEN -2147483648 AND +2147483647. THIS COMMAND WORKS IN THE SUPERVISOR MODE OF THE 68000 CPU, IE. RESERVED STORAGE SPACE CAN ALSO BE ACCESSED. OTHERWISE THE SAME AS POKE. SPRITE HOW: SPRITE A$[,x,y] EG: A$=MKI$(1)+MKI$(1)+MKI$(0) A$=A$+MKI$(0)+MKI$(1) FOR I=1 TO 16 A$=A$+MKI$(0)+MKI$(65535) NEXT I SPRITE A$,20,20 PAUSE 200 SPRITE A$ PURPOSE: PUTS THE SPRITE DEFINED IN A$ AT (X,Y) OR, IF NO COORDINATES ARE GIVEN, DELETES IT. A$ IS 74 CHARACTERS LONG :- A$ = MKI$(X POSITION) + MKI$(Y POSITION) + MKI$( 0=NORMAL OR 1=XOR MODE) + MKI$(SCREEN COLOUR MOSTLY 0) + MKI$(SPRITE COLOUR MOSTLY 1) + BIT PATTERN OF SCREEN AND SPRITE UNLIKE DEFMOUSE THE BIT PATTERNS FOR SCREEN AND SPRITE ARE NOT STORED IN SEPARATE BLOCKS BUT IN ALTERNATE WORDS (16 BITS). IF THE SAME SPRITE IS PUT ONTO THE SCREEN IN ANOTHER POSITION THEN THE FIRST SPRITE IS DELETED. SQR HOW: SQR(X) EG: INPUT X PRINT SQR(X) PURPOSE: CALCULATES THE SQUARE ROOT OF 'X'. STOP HOW: STOP EG: FOR I=0 TO 200 PRINT I IF I=123 THEN STOP ENDIF NEXT I PURPOSE: STOPS EXECUTION OF A PROGRAM. UNLIKE THE END COMMAND IT DOES NOT CLOSE ANY FILES AND BY TYPING CONT THE PROGRAM WILL RESUME FROM THE LINE FOLLOWING THE STOP COMMAND. STR$ HOW: STR$(X) EG: INPUT "INPUT A NUMBER ";N A$=STR$(N) PRINT A$ PURPOSE: TRANSFORMS THE VALUE 'X' INTO A CHARACTER STRING. (SEE ALSO HEX$, OCT$ AND BIN$) STRING$ HOW: STRING$(N,string) OR STRING$(N,C) EG: Z$="A" PRINT STRING$(50,Z$) PRINT STRING$(50,"A") PRINT STRING$(50,65) PRINT STRING$(25,"AA") PURPOSE: PRODUCES A STRING FORMED BY REPEATING 'string' OR CHR$(C) 'N' TIMES. 'N' IS A NUMBER FROM 0 TO 32767. ALL THE ABOVE EXAMPLES PRODUCE A STRING OF FIFTY LETTER 'A's. SUB HOW: SUB VAR,N EG: FOR I=5 TO 50 PRINT I,SUB I,5 NEXT I PURPOSE: DEDUCTS 'N' FROM 'VAR'. SAME AS VAR=VAR-N BUT EXECUTES ALMOST TWICE AS FAST. SWAP HOW: SWAP var1,var2 EG: DIM A(3),B(8) ARRAYFILL B(),8 A$="FIRST" B$="SECOND" SWAP A$,B$ SWAP A(),B() PRINT A$,B$ PRINT A(8),B(2) PURPOSE: EXCHANGES THE VALUES OF 'var1' AND 'var2'. THE VARIABLES MUST BE OF THE SAME TYPE. WHEN SWAPPING ARRAY FIELDS THE DIMENSIONS ARE ALSO SWAPPED. SYSTEM HOW: SYSTEM EG: INPUT "ENTER PASSWORD! ";P$ IF P$<>"BEH HEH HEH HEH" THEN SYSTEM ENDIF PURPOSE: CAUSES A RETURN TO THE GEM DESKTOP, SAME AS QUIT. TAB HOW: TAB(N) EG: PRINT TAB(30);"GFA" PRINT SPACES$(40) PRINT TAB(30);"BASIC" PURPOSE: SETS THE TABULATOR TO THE Nth COLOUMN. TAB CAN ONLY BE USED IN CONJUNCTION WITH THE PRINT COMMAND. IF THE CURREN POSITION IS ALREADY PAST 'N' THEN THE TAB FUNCTION IS SET FOR THE NEXT LINE. TAN HOW: TAN(X) EG: INPUT RAD PRINT TAN(RAD) INPUT GRAD PRINT TAN(GRAD*PI/180) PURPOSE: RETURNS THE VALUE OF THE TANGENT OF 'X' 'X' IS THE ANGLE IN RADIANS. TEXT HOW: TEXT X,Y, [ L, ]string EG: DEFTEXT 1,16,0,21 A$="ABC D" TEXT 10,50,A$ TEXT 10,350,200,A$ TEXT 300,350,-200,"ABC D" PURPOSE: PUTS A TEXT ONTO THE SCREEN AT GRAPHICS COORDINATES 'X,Y'. THE GRAPHICS CAN FIRST BE DEFINED BY USING THE COMMAND DEFTEXT. THE POINT 'X,Y' IS AT THE BOTTOM LEFT HAND CORNER OF THE TEXT TO BE PRINTED. THE OPTIONAL PARAMETER 'L' CAN BE POSITIVE OR NEGATIVE AND DETERMINES THE LENGTH OF THE TEXT TO BE DISPLAYED IN GRAPHIC DOTS. IF +L THEN THE TEXT IS SET TO THIS LENGTH BY ALTERING THE SPACING BETWEEN THE CHARACTERS. IF -L, THEN THE TEXT IS MADE TO FIT BY ALTERING THE SPACES BETWEEN THE WORDS. (SEE EXAMPLE ) IF L=0 THEN THE TEXT IS UNCHANGED. TIME$ HOW: TIME$ EG: DEFTEXT 1,16,0,32 DO PRINT AT(1,1);TIME$ TEXT 240,180,TIME$ LOOP PURPOSE: RETURNS THE SYSTEM TIME. THE STRING FORMAT IS HH:MM:SS . THE SECONDS ARE UPDATED EVERY TWO SECONDS. TITLEW HOW: TITLEW N,"title" EG: TITLEW 2,"HEADING" PURPOSE: GIVE THE WINDOW NUMBER 'N', THE NEW TITLE 'title'. IF BEFORE OPENW A TITLEW N,"" IS EXECUTED THEN THE WINDOW DOES NOT HAVE A TITLE LINE. THIS CAN BE CHANGED BY ENTERING TITLEW N,"". TRON TROFF HOW: TRON TROFF EG: TRON DO PRINT I INC I IF I=25 THEN TROFF ENDIF LOOP PURPOSE: SWITCHES THE TRACE FUNCTION ON AND OFF. TRUNC HOW: TRUNC(X) EG: A=3.14155 PRINT TRUNC(A) PRINT TRUNC(-12) PRINT TRUNC(-1.99) PURPOSE: RETURNS THE INTEGER PORTION OF 'X'. TRUNC IS IDENTICAL TO FIX (SEE ALSO). UPPER$ HOW: A$="basic" PRINT UPPER$(A) PRINT UPPER$("1a") PRINT UPPER$("GFA") PURPOSE: TRANSFORMS ALL LOWER CASE LETTERS OF A STRING TO UPPER CASE. ANY NON LETTER CHARACTERS ARE LEFT UNCHANGED. VAL HOW: VAL(X$) EG: A$="4000 DUESSELDORF 11" PRINT VAL(A$) PRINT VAL("1.5E+05") PRINT VAL("GFA") PURPOSE: TRANSFORMS 'X$' INTO A NUMBDER, AS FAR AS POSSIBLE. IN THE CASE OF A PURELY ALPHABETICAL STRING THE VALUE 0 IS RETURNED. VAL? HOW: VAL?(X$) EG: A$="22 KG" PRINT VAL?(A$) PRINT VAL?("1.0+E19") PRINT VAL?("1E19") PRINT VAL?("AB123") PURPOSE: DETERMINES THE NUMBER OF CHARACTERS STARTING AT THE BEGINNING OF A STRING THAT CAN BE CONVERTED INTO A NUMERICAL VALUE WITH VAL. VARPTR HOW: VAPTR(var) EG: A%=17 N$="GFA" PRINT VARPTR(A%) PRINT LPEEK(VARPTR(A%)) PRINT VARPTR(N$) PRINT PEEK(VARPTR(N$)) PRINT PEEK(VARPTR(N$)+1) PRINT PEEK(VARPTR(N$)+2) PURPOSE: DETERMINES THE ADDRESS OR STARTING ADDRESS OF A VARIABLE 'var'. WAVE HOW: WAVE voc,env,form,len,dur EG: SOUND 1,15,1,4,20 SOUND 2,15,4,4,20 SOUND 3,15,8,4,20 WAVE 7,7,0,65535,300 WAVE 0,0 PURPOSE: PRODUCES NOISES FROM THE THREE SOUND CHANNELS. 'voc' IS TREATED 'BIT-WISE' WITH THE BIT-VALUES FOR THE THREE CHANNELS AS FOLLOWS. BIT 1=CHANNEL 1 BIT 8 NOISE ON CHANNEL 1 BIT 2=CHANNEL 2 BIT 16 NOISE ON CHANNEL 2 BIT 4=CHANNEL 3 BIT 32 NOISE IN CHANNEL 3 256*PERIOD OF THE NOISE GENERATOR (0 TO 31) CAN ALSO BE ADDED TO THIS. 'env' DEFINES WHICH CHANNELS THE ENVELOPE WILL BE ACTIVE UPON (eg. BINARY 101 WOULD BE CHANNELS 1 & 3). 'form' SPECIFIES THE ENVELOPE SHAPE :- 0 TO 3 = LINEAR FALLING. 4 TO 7 = LINEAR RISING AND TERMINATING. 8 = SAWTOOTH FALLING. 9 = LINEAR FALLING (AS 0 TO 3). 10 = PEAKED BEGIN FALLING. 11 = LINEAR FALLING VAR.LOUDNESS. 12 = SAWTOOTH RISING. 13 = LINEAR RISING CONTINUOUS. 14 = PEAKED BEGIN RISING. 15 = LINEAR RISING (AS 4 TO 7) 'len' SPECIFIES THE PERIOD OF THE ENVELOPE. 'dur' IS THE TIME IN 1/50S BEFORE NEXT COMMAND. PARAMETERS WHICH ARE LOCATED AT THE END OF THE COMMAND AND WHICH ARE TO REMAIN UNCHANGED CAN BE OMITTED IN THE NEXT COMMAND. WAVE 0,0 SWITCHES OFF ALL SOUND CHANNELS. WHILE....WEND HOW: WHILE condition WEND EG: WHILE A<10 A=A+1 PRINT A WEND PURPOSE: CREATES A CONDITIONAL LOOP BETWEEN WHILE AND WEND UNTIL THE 'condition' IS FULFILLED. THIS IS CHECKED AT THE BEGINNING OF THE LOOP AND SO IT IS POSSIBLE THAT THE LOOP IS NEVER EXECUTED. WRITE HOW: WRITE [ expressions ][ ; ] WRITE #n [ expressions ][ ; ] EG: OPEN "O",#1,"DAT" WRITE #1,"SMITH","JOHN",18 CLOSE #1 PURPOSE: STORES DATA IN A SEQUENTIAL FILE TO BE READ WITH INPUT. UNLIKE THE PRINT COMMAND THE NUMBERS ARE SEPARATED BY COMMAS AND THE STRINGS ARE ENCLOSED IN QUOTES. (SEE ALSO PRINT) SPECIAL FUNCTIONS * HOW: * EG: DIM A$(9) FOR I=0 TO 9 A$(I)=STR$(RND) NEXT I @DSP @SORT(*A$()) @DSP PROCEDURE DSP FOR I=0 TO 9 PRINT A$ NEXT I RETURN PROCEDURE SORT(P.SARR) !SORT X$() IF TYPE(P.SARR)<>5 ERROR 47 !STRING PARAMETER END IF SWAP *P.SARR,X$() !WORK FIELD LOCAL I%,J% REM BUBBLESORT SLOW FOR I%=DIM?(X$())-2 DOWNTO 0 FOR J%=0 TO I% IF X$(J%)>X$(J%+1) SWAP X$(J%),X$(J%+1) ENDIF NEXT J% NEXT I% SWAP *P.SARR,X$() !FIELD RETURN RETURN PURPOSE: PASSES ON VARIALBLES AND ARRAYS INDIRECTLY. THE ASTERIX IS NOT ONLY FOR MULTIPLICATION BUT ALSO SIGNIFIES THE INDIRECT ADDRESSING IN PROCEDURES WITH PARAMETERS OR FIELDS TO BE RETURNED. GOSUB XXX(*A) DOES NOT SPECIFY THE VALUE OF 'A' BUT IT'S ADDRESS. *PTR=5 SETS THE VARIABLE WHOSE ADDRESS IS CONTAINED IN PTR TO 5. WITH FIELDS IT IS ONLY POSSIBLE TO CHANGE AN ELEMENT OF THE FIELD BY MEANS OF AN INDIRECT SWAP. TYPE() SHOWS WHAT SORT OF VARIABLE IS AT THE POINTER LOCATION. IMPORTANT LOCAL VARIABLES AND GLOBAL VARIABLES WITH THE SAME NAME ARE STORED IN THE SAME AREA (THE GLOBAL VALUES ARE SAVED WHEN LOCAL BEGINS AND RESTORED ON RETURN). THEREFORE LOCAL VARIABLES MAY NOT HAVE THE NAME OF A RETURN PARAMETER. == HOW: a==b EG: FOR I=-1 TO 0 STEP 0.1 EXIT IF I==0.5 NEXT I PRINT I PURPOSE: COMPARISON OPERATOR FOR APPROXIMATELY EQUAL 'a' AND 'b' ARE NUMERIC EXPRESSIONS. THE == OPERATOR IS USED IN THE SAME WAY AS A COMPARISON WITH = EXCEPT THAT THE CONDITION IS TRUE NOT ONLY WHEN THE TWO ARE EQUAL, BUT WHEN THEY ARE APPROXIMATLEY EQUAL. 28 BITS OF THE MANTISSA ARE COMPARED i.e. ABOUT 8.5 DIGITS. IN THE EXAMPLE THE LOOP IS LEFT ALTHOUGH IT IS POSSIBLE THAT DUE TO ROUNDING ERRORS THE NUMERIC VARIABLE IS NEVER EXACTLY 0.5 (see DEFNUM and PRINT USING) BASEPAGE HOW: BASEPAGE EG: VOID GEMDOS(&H1A,BASEPAGE+128) P$="*.*"+CHR$(0) STAT=GEMDOS(&H4E,L:VARPTR(P$),8) D.name$="" IF STAT=0 ! <>0 Something wrong I%=BASEPAGE+30 WHILE PEEK(I%) D.name$=D.name$+CHR$(PEEK(I%)) INC I% WEND END IF PURPOSE: RETURNS THE ADDRESS OF THE BASEPAGE OF GFA-BASIC EVERY PROGRAM THAT IS LOADED UNDER GEMDOS IS ASSIGNED A BASEPAGE WHICH HAS A LENGTH OF 256 BYTES. THE FIRST 128 BYTES OF THIS PAGE CONTAIN INTERNAL INFORMATION THAT THE OPERATING SYSTEM NEEDS TO ORGANISE PROGRAMS IN MEMORY - A POKE HERE CAN, AMONGST OTHER THINGS, LEAD TO SYSTEM BREAKDOWN ON 'QUIT'. THE SECOND HALF OF THE BASEPAGE CONTAINS THE COMMAND LINE. THE FIRST 44 BYTES OF THE SECOND HALF ARE USED, THE REST CAN, FOR EXAMPLE, BE USED FOR SMALL MACHINE CODE PROGRAMS WHICH RETURN JOYSTICK INFORMATION.  BITBLT HOW: BITBLT s%(),d%(),p%() PURPOSE: RASTER COPYING COMMAND. 's%' CONTAINS THE SOURCE MEMORY FORM DESCRIPTOR - THE DESCRIPTION OF THE SOURCE RASTER 'd%' CONTAINS THE DESTINATION MEMORY FORM DESCRIPTOR - THE DESCRIPTION OF THE DESTINATION RASTER 'p%' CONTAINS THE CO-ORDINATES OF THE TWO EQUALLY SIZED RECTANGLES AND THE COPYING MODE (see PUT). THESE FIELDS MUST BE AS FOLLOWS: s%(0) = RASTER ADDRESS (EVEN) e.g. XBIOS(3) s%(1) = RASTER WIDTH IN POINTS e.g. 640 (MUST BE DIVISIBLE BY 16) s%(2) = RASTER HEIGHT IN POINTS e.g. 400 s%(3) = RASTER WIDTH IN WORDS e.g. 40, i.e. s%(1)/16 s%(4) = ALWAYS 0 s%(5) = NUMBER OF BIT PLANES (e.g. 2/4) d%() as s%() p%(0...3) = SOURCE RECTANGLE (x0,y0,x1,y1) p%(4...7) = DESTINATION RECTANGLE (AS ABOVE) p%(8) = MODE (see PUT) BGET HOW: BGET [#] i,adr,cnt EG: OPEN "I",#1,"SCR.DAT" SEEK #1,8000 BGET #1,XBIOS(3)+24000,8000 CLOSE #1 PURPOSE: READS FROM A DATA CHANNEL INTO AN AREA OF MEMORY 'i', 'adr' AND 'cnt' ARE INTEGER EXPRESSIONS. 'i' IS A CHANNEL NUMBER. 'cnt' BYTES ARE READ IN AND STORED IN MEMORY STARTING AT ADDRESS 'adr' UNLIKE BLOAD, SEVERAL DIFFERENT AREAS OF MEMORY CAN BE READ FROM A FILE. IN THE EXAMPLE, THE SECOND QUARTER OF THE SCREEN FILE IS READ INTO THE BOTTOM EDGE OF THE SCREEN. (see BPUT, BSAVE, BLOAD) BMOVE HOW: BMOVE scr,dst,cnt EG: BMOVE XBIOS(3),XBIOS(3)+2,31998 PURPOSE: FAST MOVEMENT OF MEMORY BLOCKS 'scr', 'dst' AND 'cnt' ARE INTEGER EXPRESSIONS. 'scr' IS THE ADDRESS AT WHICH THE BLOCK TO BE MOVED BEGINS. 'dst' IS THE ADDRESS TO WHICH THE BLOCK IS TO MOVED 'cnt' IS THE LENGTH OF THE BLOCK IN BYTES. BMOVE IS A FAST, INTELLIGENT MOVING ROUTINE WHICH MEANS THAT IT IS ALSO SUITABLE FOR OVERLAPPING SOURCE AND DESTINATION ADDRESSES. THE EXAMPLE DISPLACES THE CONTENTS OF THE SCREEN BY TWO BYTES. BPUT HOW: BPUT [ # ] I,adr,cnt EG: OPEN "O",#1,"SCREEN.DAT" BPUT #1,XBIOS(3)+16000,16000 BPUT #1 XBIOS(3),16000 CLOSE #1 PURPOSE: READS FROM AN AREA OF MEMORY OUT TO A DATA CHANNEL. 'I' IS A CHANNEL NUMBER. 'cnt' BYTES ARE READ FROM ADDRESS 'adr' AND GIVEN OUT ON A DATA CHANNEL. CLR HOW: CLR var [ ,var ] EG: CLR A,B,C%,D!,E$ PURPOSE: DELETES VARIABLES. THE EXAMPLE ABOVE SETS THE SPECIFIED VARIABLES (NOT ARRAYS) TO ZERO AND IS THE SAME AS:- A=0 B=0 C%=0 D!=0 E$="" CRSCOL CRSLIN HOW: CRSCOL CRSLIN EG: CX=CRSCOL CY=CRSLIN PRINT AT(9,9);"TEST" PRINT AT(CX,CY); PURPOSE: RETURNS THE CURRENT CURSOR LINE AND COLUMN. (SEE ALSO PRINT AT). DEFNUM HOW: DEFNUM N EG: DEFNUM 8 FOR I=-1 TO 1 STEP 0.1 PRINT I NEXT I PURPOSE: ROUNDS ALL NUMBERS BEFORE OUTPUT TO 'N' DIGITS. 'N' IS AN INTEGER BETWEEN 3 AND 11. (SEE ALSO PRINT USING) EVEN HOW: EVEN N EG: REPEAT INPUT "ENTER AN EVEN NUMBER";N UNTIL EVEN(N) PURPOSE: DETERMINES WHETHER A NUMBER IS EVEN. (SEE ALSO ODD) EXEC HOW: EXEC flg,name,cmd,env EXEC (flg,name,cmd,env) EG: RESERVE FRE(0)-10000 EXEC 0,"TEST.PRG","","" RESERVE FRE(0)+10000-255 PURPOSE: LOADS AND EXECUTES MACHINE CODE PROGRAMS OR COMPILED PROGRAMS FROM DISC. flg=0 IS LOAD AND GO . flg=3 IS LOAD ONLY. 'name' IS THE NAME OF THE PROGRAM. 'cmd' IS COMMAND LINE (SEE BASEPAGE). 'env' IS ENVIRONMENT STRING (USUALLY JUST ""). THE NAMED PROGRAM IS LOADED FROM DISC, THE ABSOLUTE ADDRESSES ARE RELOCATED, A BASEPAGE IS CREATED AND IF REQUIRED THE PROGRAM IS RUN. IF EXEC IS USED AS A FUNCTION THE RESULT IS THE RETURNED VALUE FROM THE PROGRAM OR, WHEN flg=3 THE BASEPAGE ADDRESS OF THE LOADED PROGRAM. (SEE ALSO RESERVE AND HIMEM). FALSE HOW: FALSE EG: FLAG!=FALSE PURPOSE: CONSTANT 0. THIS IS SIMPLY ANOTHER WAY OF EXPRESSING THE VALUE OF A CONDITION WHEN IT IS FALSE AND IS EQUAL TO ZERO. (SEE ALSO TRUE). FORM INPUT AS HOW: FORM INPUT n AS var EG: PRINT "CHANGE FIELD 3" PRINT AT(15,15); FORM INPUT 15 AS FIELD3$ PURPOSE: ALLOWS A CHARACTER STRING TO BE CHANGED DURING A PRORAM. 'n' IS THE MAXIMUM LENGTH FOR THE STRING VARIABLE 'var' THIS COMMAND WORKS IN THE SAME WAY AS FORM INPUT EXCEPT THAT THE OLD CONTENTS OF HE STRING VARIABLE IS GIVEN OUT TO BE CHANGED. (SEE ALSO FORM INPUT) HIDEM HOW: HIDEM EG: HIDEM DO PLOT MOUSEX,MOUSEY LOOP PURPOSE: SWITCHES OFF THE MOUSE POINTER. (SEE ALSO SHOWM). HIMEM HOW: HIMEM EG: SEE EXECUTE PURPOSE: RETURNS THE ADDRESS OF THE AREA OF MEMORY WHICH IS NOT REQUIRED BY GFA BASIC. BASIC OCCUPIES THE MEMORY BETWEEN BASEPAGE AND HIMEM. WITH HIIEM ONE CAN DETERMINE THE FIRST ADDRESS ABOVE BASIC WHICH IS FREE (NORMALLY 16384 BYTES BELOW THE SCREEN AREA). ABOVE HIMEM THERE SHOULD BE AT LEAST 4000 BYTES FREE BECAUSE THE FILESELCT BOX AND OTHER GEM CALLS REQUIRE THIS MUCH SPACE. UNFORTUNATELY THE EXACT AMOUNT REQUIRED IS NOT DOCUMENTED BY ATARI, BUT EXPERIMENTS HAVE SHOWN THAT IT REQUIRES AT LEAST 2500 BYTES. INP? HOW: INP?(N) EG: IF INP?(1) @Routine ENDIF PURPOSE: DETERMINES THE INPUT STATUS OF A PERIPHERY. 'N' IS THE NUMBER OF AN INTERFACE (0=LST: 1=AUX: 2=CON: 3=MID: ). THE FUNCTION RETURNS THE VALUE 0 IF A BYTE IS PRESENT OTHERWISE -1. THE EXAMPLE CALLS A SUBROUTINE IF SOMETHING HAS ARRIVED AT THE SERIAL PORT. (SEE ALSO OUT?) MONITOR HOW: MONITOR [ N ] PURPOSE: CALLS A MONTIOR RESIDENT IN MEMORY OR A COMMAND EXTENSION. WITH THIS COMMAND A MINITOR OR DEBUGGER IS CALLE UP IF IT HAS SUITABLY SET THE ILLEGAL INSTRUCTION VECTOR SO THAT THE MSB OF THE VECTOR IS ZERO BEFORE LOADING GFA BASIC (THIS IS DONE, FOR EXAMPLE, BY THE DEBUGGER IN THE ATARI DEVELOPEMENT SYSTEM). IT IS POSSIBLE TO PASS ON THE INTEGER VALUE 'N' IN REGISTER D0 AND THEREFORE WRITE COMMAND EXTENSIONS. IN ADDITION TO THIS IN A0 THE ADDRESS OF A POINTER TABLE IS PASSED ON HICH POINTS TO THE EIGHT VARIABLE TYPES (SEE TYPE). THESE EIGHT POINTERS ARE ALSO AVAILABLE FOR THE COMPILER. ODD HOW: ODD(N) EG: REPEAT INPUT "ENTER AN ODD NUMBER ";N UNTIL ODD(N) PURPOSE: DETERMINES WHETHER A NUMBER IS ODD. (SEE ALSO EVEN) ON MENU BUTTON HOW: ON MENU BUTTON C,M,S GOSUB proc EG: ON MENU BUTTON 8,1,1 GOSUB button DO ON MENU LOOP PROCEDURE button PRINT MENU(15)' !NUMBER OF CLICKS PRINT MENU(10)'MENU(11) !X,Y IF MENU(15)=4 !EXIT ONLY ON END !FOUR CLICKS END IF RETURN PURPOSE: RETURNS MOUSE CLICKS. C=MAX. NUMBER OF CLICKS TO BE COUNTED. M=MASK (1=LEFT 2=RIGHT 3=BOTH). S=STATUS (AS FOR 'M') IN THE EXAMPLE A MAXIMUM OF 8 CLICKS IS EXPECTED. WHEN THE MOUSE IS CLICKED, THE NUMBERR OF CLICKS AND THE MOUSE POSITION IS SHOWN. IF THE NUMBER OF CLICKS IS 4 THEN THE PROGRAM ENDS. OPTION OPTION BASE 0 OPTION BASE HOW: OPTION BASE 0 OPTION BASE 1 OPTION [ " ]TEXT[ " ] EG: OPTION "TRAPV +" OPTION BASE 1 DIM A(9) FOR I=1 TO 9 A$(I)=STR$(I) NEXT I PURPOSE: CHANGES THE FIELD ARRAY BASE OR CONTROL FOR THE COMPILER. OPTION BASE 0/1 ALLOWS THE LOWER LIMIT FOR  FIELD DIMENSIONING TO BE CAHNGED FROM 0 TO 1. SOME PROGRAMS CAN SAVE A FEW BYTES FOR THE ZERO ELEMENT. WITH OPTION "TEXT" CONTROL COMMANDS CAN BE PASSED ONTO THE COMPILER. OUT? HOW: OUT?(N) EG: DO OUT 0,0 !IGNORED EXIT IF OUT?(0) PRINT "PRINTER ON !!!!" LOOP PURPOSE: DETERMINES THE OUTPUT STATUS OF A PERIPHERY. THIS FUNCTION RETURNS 0 IF A CHARACTER CAN BE OUTPUT. IN THIS EXAMPLE THE READINESS OF THE PRINTER IS CHECKED. (SEE ALSO INP?) RESERVE HOW: RESERVE n EG: see EXEC PURPOSE: INCREASES OR DECREASES THE MEMORY USED BY BASIC 'n' IS A NUMERIC EXPRESSION WHICH DETERMINES HOW BIG FRE(0) SHOULD BE AFTER THIS COMMAND. AS 'HIMEM' CHANGES IN STEPS OF 256, FRE(0) CAN BE UPTO 255 BYTES LONG. WITH THIS COMMAND AREAS OF MEMORY CAN BE PROTECTED FROM ACCESS VIA BASIC AND CAN BE USED, FOR EXAMPLE, FOR MACHINE CODE PROGRAMS OR RSC FILES. FOR AREAS CONTAINING PURELY DATA MALLOC() - that is - (adr=GEMDOS(&48,1:number) SHOULD BE USED TO PROTECT AGAINST ACCESS VIA GEM (fileselect, alert, etc) (see HIMEM, EXEC) SGET HOW: SGET var EG: SGET SCREEN1$ FOR I=1 TO 100 PRINT I' NEXT I SGET SCREEN2$ DO SPUT SCREEN1$ SPUT SCREEN2$ LOOP PURPOSE: FAST READING OF THE ENTIRE SCREEN AREA INTO A STRING VARIABLE. (SEE ALSO SPUT, GET, PUT AND BMOVE) SHOWM HOW: SHOWM EG: SHOWM DO PLOT MOUSEX,MOUSEY LOOP PURPOSE: MAKES THE MOUSE SYMBOL APPEAR. (SEE ALSO HIDMEM) SPUT HOW: SPUT var EG: SEE SGET PURPOSE: FAST COPYING OF A 32000 BYTE STRING INTO THE SCREEN AREA. (SEE ALSO SGET, PUT, GET AND BMOVE) TRUE HOW: TRUE EG: FLAG!=TRUE PURPOSE: CONSTANT 0. THIS IS SIMPLY ANOTHER WAY OF EXPRESSING THE VALUE OF A CONDITION WHEN IT IS TRUE AND IS EQUAL TO ZERO. (SEE ALSO FALSE). TYPE HOW: TYPE(ptr) EG: SEE * PURPOSE: DETERMINES THE TYPE OF THE VARIABLE AT WHICH A POINTER IS SET. 'ptr' IS AN INTEGER EXPRESION (USUALLY *var). TYPE(ptr) RETURNS A CODE ACCORDING TO THE TYPE OF VARIABLE TO WHICH 'ptr' IS POINTING. 0=var 1=var$ 2=var% 3=var! 4=var() 5=var$() 6=var%() 7=var!(). ON ERRORS -1 IS RETURNED. (SEE ALSO *) VDIBASE HOW: VDIBASE PURPOSE: DANGEROUS POKES! DETERMINES THE ADDRESS ABOVE THE AREA USED BY BASIC AND THE REQUIRED TABLES AND VARIABLES. THIS IS THE POINT FROM WHICH THIS VERSION OF GEM KEEPS PARAMETERS FOR THE VDI (TEXT STYLE, CLIPPING etc.). AFTER THIS FOLLOWS THE BASIC PROGRAM. BY USE OF PEEK AND POKE IN THIS AREA, VARIOUS EFFECTS (AND ALSO NASTY CRASHES !) CAN BE OBTAINED. VOID HOW: VOID exp EG: VOID FRE(0) VOID INP(2) PURPOSE: SUBSTITUTE FOR DUMMY= . (FASTER, ESPECIALLY FOR THE COMPILER). THIS COMMAND PERFORMS A CALCULATION AND FORGETS THE RESULT, THIS MAY SOUND SILLY BUT THERE ARE OCCASIONS WHEN THIS COMMAND IS REQUIRED. FOR EXAMPLE, FORCED GARBAGE COLLECTION (FRE(0)) OR WAITING FOR A KEYSTROKE (INP(2)) OR CALLING VARIOUS BIOS-, XBIOS, GEMDOS OR C: ROUTINES WHICH HAVE NO PARAMETERS. VSYNC HOW: VSYNC PURPOSE: ENABLES SYNCHRONIZATION WITH THE SCREEN OR CAN BE USED AS A PAUSE. HALTS THE PROGRAM UNTIL THE NEXT VERTICAL SYNC PULSE IS RECEIVED, i.e. UNTIL THE PICTURE IS COMPLETE ON THE SCREEN. THIS CAN HELP AVOID FLICKERING OF THE SCREEN DURING ANIMATIONS (eg. WITH GET/PUT) BUT THE NEXT SCREEN MUST BE PUT ONTO THE SCREEN VERY QUICKLY THIS FUNCTION IS THE SAME AS VOID XBIOS(37).  NEOChrome Version 0.5 Manual Typed in by Sewer Possum for inclusion on the SEWER DOC DISCS. "Full color art and design program for your ATARI ST computer" INTRODUCTION NeoChrome is a painting program for the low resolution mode of the ATARI personal computer system. NeoChrome uses many of the features of the ST's GEM system. With NeoChrome you can create colorful full-screen pictures and save them to disc for use in other programs or with the NeoChrome slide show program (SLIDENEO.PRG) TERMS USED When we use the word SELECT, click on the left mouse button once while pointing at a specific object on the screen. RIGHT SELECT indicates that you should click the right button once. DRAG indicates that you hold the left button and slide the mouse, while RIGHT DRAG is the same function with the right button. DOUBLE CLICK means you should click the left button twice rapidly. TO INSTALL Place the NeoChrome disc in the drive and double-click on on the drive icon to get the directory to appear. Select the NEO.PRG icon to highlight it, then move the pointer up to the OPTIONS menu. Select INSTALL APPLICATION. With the keyboard, type NEO, then move the pointer to OK and click once (don't hit the RETURN key). Now NeoChrome is installed so you can work with previously created pictures easily. Finally save the desktop to your TOS disc so that you needn't reinstall NeoChrome in future sessions. TO START Just double-click on NEO.PRG. After a few seconds the screen back ground will turn black and the NeoChrome screen appears. Now you can start a new drawing. To with a previously saved screen, double-click on the name of that picture instead of NeoChrome. If you get a dialog box with the choices "SHOW,PRINT,CANCEL", that means that NeoChrome needs to be installed....use the above instructions to install NeoChrome then click on the picture name. THE NEOCHROME MENU The lower half of the screen contains the NeoChrome menu, a collection of icons that represent the functions available. The top edge of the menu area shows the 16 colours in the colour palette. The left side of the menu of the menu contains the tools, shown in a 3 by 5 grid. The middle of the of the menu area scrolls through all the ST's colours and magnifies the drawing area. The right side of the menu area shows options depending on the tool that is currently selected. Above the options area are the colour mixer and the UNDO box. FULL SCREEN AND HALF SCREEN DISPLAY NeoChrome pictures occupy a full screen. To see the entire screen, move the pointer to the left of the icon area onto the "FULL SCREEN" box and click once. To return to the half screen/menu display, move the pointer until it is on any corner of the screen and click again. The ESC key of the keyboard also switches between the two displays. SCROLLING VERTICALLY When in the half screen display, you can scroll the visible area of the picture up and down. The GRABBER (row 1 column 2) performs this function. First select the Grabber, then drag the image up and down. THE COLOUR PALETTE You can choose any combination of the ST's 512 colors to fill the 16 color palette. First choose which palette colour to change by selecting it. A small triangle appears below the colour to indicate that the palette position is now selected. This colour is used for any drawing operation until you select a different palette colour. Some of the palette positions are used by NeoChrome for specific functions. The leftmost position is the background colour of the screen and border. The rightmost palette colour is used for the cursor. Note: This means that the cursor may not be visible if it is located over an area containing the rightmost palette colour. One way to change a palette colour is to pick one from the colour map window. You can view all the ST's 512 colours by scrolling through them - just right drag the colour map from side to side.  Select the individual colour you want. The colour now appears in the mixer area (upper right side of the menu area). If that is the desired colour, double click and that colour fills the selected palette position. The other way to change the palette is to use the mixer. Move the pointer up to the three digits, which represent the red, green and blue values respectively for each colour (the same values you would see on the CONTROL PANEL desk accessory). With the pointer positioned over one of the digits, clicking the left button makes the digit increase and clicking the right button makes it decrease. The colour sample appears in the small window to the right of the digits. When the colour reaches the desired shade, double click the left button on the colour sample to get that colour into the palette. UNDO The UNDO box on the screen (or the UNDO key on the keyboard) will erase the last drawing operation performed. If you make a mistake, use UNDO. If you didn't mean to UNDO the operation, hit UNDO once more to "undo" the UNDO! THE TOOLS First choose a colour from the palette by selecting it...a triangle appears below it. PENCIL (row 1 column 5): Select the pencil, then drag to draw or right drag to erase pixel by pixel (actually this draws the background colour). For better accuracy, you can watch the magnify window at the center of the menu area, which appears whenever the pointer is in the image area. ERASER (row 3 column 4): Select the eraser then drag to erase broad areas of the picture. LINE DRAW (row 2 column 1): Select the line draw tool, then drag to see the line and let go of the button to leave the line in position (or click the right button to abort the line). Right drag to create a "ramp line" made up of colours between the colour ramp pointers (notches on the palette). To move these pointers, right drag them from side to side. AREA FILL (row 2 column 2): Select this tool to fill an area with solid colour. The bottom "droplet" from the icon shows which pixel is used for the fill operation...the magnifier is helpful for better accuracy in filling an area. Be sure that the area to be filled is completely enclosed or the colour will "leak out" into other areas of your drawing....use UNDO if this happens and use the pencil to touch up your borders. PAINT BRUSH (row 2 column 5): Select this to paint using various sizes and shapes of brush. The brushes are selected in the OPTIONS area. Drawing with a paint brush is similar to the PENCIL tool. SPRAY CAN (row 3 column 5): Select this for an airbrush effect. Select the nozzle from the OPTIONS area. There are four "speeds" for a paint spray. Left drag for a faster rate and right drag for a slower rate, with both speeds increased when using the full screen display. TEXT (row 1 column 4): Select TEXT then select a starting position on the screen. You will see a flashing text cursor. Typing on the keyboard now puts text on the screen. You can move the pointer at any time to the options area and change the type size, style and alignment on the screen. You can also change the color of the text while creating it. Hit backspace to correct mistakes. You can click on the "system" selection in the options area to type with the upper half of the system character set, and again on "system" to return to the normal character set. COPYING PARTS OF THE IMAGE COPY BOX (row 1 column 3): lets you move rectangular parts of the image or copy them into other pictures. Select COPY BOX, then drag to surround an area of the image. Release the left button, then drag when the cursor is within the box or cancel the box by clicking outside it. The right side of the options area shows two icons, the lower for "transparent" copy and the upper for "opaque" copy. The difference is that the transparent mode does not copy any pixels in the background colour, letting underlying pixels show through, while the opaque mode moves every pixel in the rectangle including background spaces. The left side of the options area shows CUT, COPY, PASTE and CLEAR. "Cut" removes the surrounded area and puts it into a special unseen buffer. "Copy" puts the surrounded area into a buffer without removing it from the screen. "Paste" retrieves the area from the buffer. "Clear" removes the contents of the copy box. Once you've placed an image in the buffer, you can retrieve and paste it at any time later, even after a new picture has been loaded from disc, as long as you have not exited the program. You can drag the copy box to the desired location and then "stamp" it with the right button. If you don't want to remove the area from its original location, click the right button before moving the mouse. SAVING, QUITTING and LOADING DISKETTE (row 3 column 1): The diskette is used to exit back to the desktop, save the current image to disk, or load a new image. To exit or save the picture, select it and a dialog box appears to allow you to save, exit the program, or cancel the dialog box without taking any action. Right select gives you a menu of all the NEO files in the current directory. You can use this menu to load a different picture, replacing the current one. The contents of the buffer (see "copy box" above) remain intact. COLOR PALETTE ANIMATION NeoChrome can perform special effects by shifting the colors in the palette. The slideshow demo on the NeoChrome master disc animates several of the images like the waterfall by using this technique. Choose the range of colours on the palette to be shifted by moving the notched pointers on the palette using the right drag, as described in the "ramp line" function above. The arrows on either side of the colour mixing area control this. Select the arrow for one shift in that direction, or right select it for a continuous color palette shift. When in continuous shifting, left button clicks speed up the shift and right button clicks slow it down. To stop continuous shifting, select or right select on the opposite arrow. The SLIDENEO.PRG gives you a slideshow which can also animate your colours. To use this feature, you must have activated the colour scroll at least once before saving the picture. To program the duration that a picture is presented with the slideshow, first set the desired speed, direction and range of colour scrolling. then stop the scrolling by clicking on the opposite arrow. Each time scrolling is stopped, the time since it was started is remembered by the NeoChrome program, and this amount of time is used for the presentation. FUTURE VERSIONS NeoChrome is a product still under development. Features included in version 0.5 are complete, but Atari will continue refining this product and adding new features during the next few months. Enjoy this "preview" version for now, and watch for the final version. PROTEXT COMMANDS Typed by Mark on PROTEXT, edited for ASCII by Sewer Possum Because of the restrictions of this text mode I couldn't display all the characters in the original document. I've tried to ilustrate those characters by either adding bracketed statements or adding the odd footnote. Sewer Possum EDIT MODE Alternate Key Function Cursor Movement (Left cursor) Move left one character (Right cursor) Move right one character (Up cursor) Move up one character (Down cursor) Move down one character SHIFT-(L.cursor) Move left one word SHIFT-(R.cursor) Move right one word SHIFT-(Up cursor) Scroll back one line SHIFT-(Down curs) Scroll forward one line HOME CTRL-(L.cursor) Move to start of line END CTRL-(R.cursor) Move to end of line PgUp CTRL-(Up cursor) Scroll back 18 lines PgDn CTRL-(Down curs) Scroll forward 18 lines (no overlap) CTRL-[ Move to start of memory CTRL-] Move to end of memory CTRL-HOME CTRL-[ CTRL-[ Move to start of document CTRL-END CTRL-] CTRL-] Move to end of document CTRL-( Move back one page CTRL-) Move forward one page CTRL-< Move back one paragraph CTRL-> Move forward one paragraph CTRL-L Go to last position CTRL-G Go to line/page/column ENTER RETURN Insert mode - split line and move to left margin of next line Overwrite mode - move to left margin of next line SHIFT-RETURN Move to left margin of next line CTRL-RETURN Move to left margin of next line TAB Insert mode - insert tab character Overwrite mode - move to next tab SHIFT-TAB Insert mode - move to next tab Overwrite mode-insert tab character Insertion and Deletion CTRL-I Insert line CTRL-PrtSc Delete line CTRL-(L.curs)DEL Delete to start of line CTRL-E CTRL-DEL(R.curs) Delete to end of line (L.curs)DEL Delete character before cursor DEL DEL(R.curs) Delete character at cursor SHIFT-(L.curs)DEL Delete word left SHIFT-DEL SHIFT-DEL(R.curs) Delete word right INS CTRL-TAB Toggle insert/overwrite mode CTRL-A Transpose (alternate) characters CTRL-U Undo last delete operation CTRL-* Split line at cursor CTRL-+ Join lines Block Commands F9 CTRL-Z Set or clear block markers CTRL-K Clear all block markers CTRL-M Move block F10 CTRL-INSERT Copy block CTRL-DEL Delete block CTRL-O Copy block from another document Formatting and Rulers CTRL-F Format to end of paragraph SHIFT-CTRL-F Format whole paragraph CTRL-C Centre line CTRL-D Copy default ruler (first active ruler in document) CTRL-R Copy previous ruler but one CTRL-J Justify on/off CTRL-W Word wrap on/off Find and Replace, Place Marker F6 CTRL-Keypad ) Next find F5 CTRL-Keypad ( Previous find F8 n CTRL-@ n Set/go to marker F8 ? CTRL-@ ? Insert multiple marker F8 [ CTRL-@ [ Go to [ block marker F8 ] CTRL-@ ] Go to ] block marker F8 L CTRL-@ L Go to left margin F8 R CTRL-@ R Go to right margin CTRL-Keypad + Go to next marker CTRL-Keypad - Go to previous marker Other Commands F1 CTRL-H Help on and more help CTRL-N space Non-break space CTRL(SHIFT -)N hyphen Non-break hyphen CTRL-P Page mode on/off CTRL-V B Scroll help back CTRL-V H Help off CTRL-V R Ruler line visible/hidden CTRL-V S Hard spaces visible/hidden CTRL-V T Tabs and returns visible/hidden CTRL-V V Control codes visible/hidden CTRL-T Reserved for future expansion F7 CTRL-X Insert printer control code F7 = CTRL-X = Insert spell ignore marker F7 * CTRL-X * Insert index word marker F7 # CTRL-X # Insert index phrase marker CTRL-Y Switch between documents in memory CTRL-/ Convert to upper case CTRL-\ Convert to lower case CTRL-hyphen Insert soft hyphen CTRL-space insert a space ALT-letter Insert stored phrase ESC Enter command mode F3 Enter main menu Spell Checking CTRL-Q Spell check single word CTRL-S Spell check from cursor to end of file Extra Characters ALT-H Half ALT-Q Quarter ALT-< Open quotes fr. ALT-> Close quotes fr. ALT-! Inverted exclamation mark ALT-? Inverted question mark ALT-(Up cursor) Up arrow ALT-(Down cursor) Down arrow ALT-(Up cursor) Left arrow ALT-(R. cursor) Right arrow Accents and Special Characters ALT-' Acute ALT-\ Grave ALT-^ Circumflex ALT-% Ring ALT-" Umlaut ALT-~ Tilde ALT-A a umlaut ALT-C c cedilla ALT-E ae diphthong ALT-I (dutch) ALT-L o slash ALT-N n tilde ALT-O o umlaut ALT-P oe diphthong ALT-S Double s (German) ALT-U u umlaut STORED COMMANDS Key a an ASCII character f a filename n an integer between 0 and 255 v a variable identifier (x) an optional parameter [x] a parameter that may occur 0 or more times (refer to footnote 1.) expr a string expression text a string of chars, optionally in quotes cond a conditional string expression Paper Layout Commands >BM n Bottom margin >EM n Even side margin >FM n Footer margin >HM n Header margin >OM n Odd side margin >PL n Page length >SM n Side margin >TM n Top margin >ZM Zero margins Page Formatting Commands >CE text Centre line >CP ON/OFF Continuous/Single sheet printing >EA nn End at page number >EF text Define even footer text and turn footers on >EH text Define even header text and turn headers on >EP (n) Even page throw (can be conditional) >FF ON/OFF Form feeds enabled/disabled >FO text Define footer text and turn footers in >FO ON/OFF Turn footers on/off >FP ON/OFF Formatting whilst printing on/off >FX ON/OFF Fix text (will not be reformatted during reformatting) >HE text Define header text and turn headers on >HE ON/OFF Turn headers on/off >LS n Line spacing >LF ON/OFF Turns last page footer on/off >NC n Number of copies >NP ON/OFF Enable/disable new page at end of printing >OF text Define odd footer text and turn footers on >OH text Define odd header text and turn headers on >OP (n) Odd page throw (can be conditional) >PA (n) Page throw (can be conditional) >PE ON/OFF Print even pages only >PN nn Page number of next page >PO ON/OFF Print odd pages only >PS ON/OFF Paper sensing on/off >RJ ON/OFF Right justifying on/off >SA nn Start at page number Messaging Commands >CO text Comment line >CS text Clear screen and display message >DM text Display message >ST text Stop printing and display text >WM text Write message to file - used with WF >WT text Wait and display text Miscellaneous General Purpose >EX text Execute command >IN f Insert file >WC Write file close >WF f (A) Open file for writing (appending) >WF ON/OFF Writing to file on/off Printer Control Commands >CC a[n] Define printer control code (NOTE:refer footnote 1) >CW n Define microspace character width >MC n {n} Define microspace code sequence >MF n Define microspace factor >MM n Set microspacing method >MS ON/OFF Microspacing on/off >OC n {n} Output codes to printer >PP ON/OFF Proportional spacing on/off >PR f Load printer driver >PW n Proportional character width >RC a [n] Redefine character (refer footnote 1.) Variable and Data Input - Mail Merging >AV v [v] Ask for variables (see footnote 1) >CF Close data file >DC ,(symbol above \). Set the decimal character >DF f [f] Define data file (see footnote 1) >DP n Set number of decimal places >DU Dumps currently defined variables to screen >RU v [v] Read variables unconditionally (see footnote 1) >RV v [v] Read variables and pad with nulls (see footnote 1) >SV v=expr Set variables Conditional Printing and Mail Merging >EI End of ID, IE, IF or IU block >EL Else - print block if previous IF condition false >ID v Print block if variable defined >IE Print block if data file exhausted >IF cond Print block if condition true >IU v Print block if variable undefined >RP Repeat - until following UN condition is true >SK cond Skip printing if condition true >UN cond Until condition is true - repeat from RP command COMMAND MODE Key to parameters a an ASCII character dr Drive letter f a filename (may include drive and/or directory path) af ambiguous filename (may contain wildcards) cfgfile configuration file dict dictionary filename inf input filename outf output filename newf new filename oldf old filename outdict resultant dictionary n an integer between 0 and 255 nn an integer between 0 and 65535 wordpat a sequence of characters COMMAND ABBR. DESCRIPTION MM of F3 Call main menu Document Handling CLEAR Clear text DOC Select document editing mode EXT Set filename extension for load/merge LOAD L Load new file MERGE M Merge file with current text NAME N Assign name to current file PRINTF PF Print to disk, including printer control codes, opt. from disk PRINTFB PFB Print block to disk, including printer control codes PROG Select program editing mode SAVEA SA Save to disk as ASCII file SAVEAB SAB Save block to disk as ASCII file SAVE S Save text SAVEB SB Save block SPLIT SPL Split large file SPOOL SPON Echo all screen output to a file SPOOLOFF SPOFF Turn off echo to file SWAP SW Swap between two documents in memory TYPE T Types the file to screen Printing Options PRINT (f) P Print file, optionally from disk PRINTB PB Print marked block of text only PRINTF PF Print to disk including printer control codes PRINTFB PFB Print block to disk including printer control codes PRINTP (f) PP Print pages selectively, opt. from disk PRINTPQ (f) PPQ Print pages selectively in NLQ, opt. disk PRINTPS (f) PPS Print to screen selectively, opt. from disk PRINTS (f) PS Print text to screen, opt. from disk PRINTSB PSB Print block to screen PRINTQ (F) PQ Print, NLQ mode, optionally from disk PRINTQB PQB Print block, NLQ Printer Control Commands ABANDON AB Abandon printing. Certain printers only PARALLEL (n) PAR Select parallel (Centronics port) PRINTER PR Load printer driver SERIAL (n) SER Select serial port Sundry Printing Options PRINTON PRON Echo all screen output to printer PRINTOFF PROFF Turn off echo to printer TYPEWRITER (n) TW Typewriter mode Disk Drive Selection A,B,C or D Drives A to D may be selected by typing the letter without the colon CAT (af) Catalogue directory File Protection ACCESS (af) ACC Set file(s) to read-write status PROTECT (af) PROT Set files to read-only status Text Manipulation And Formatting FIND F Find string FIX Remove tabs, soft spaces and soft returns FIXB As for fix, but on marked block FORMAT FT Format text FORMATB FTB Format block NUMBER NUM Number lines of text NUMBERB NUMB Number lines of text in marked block only REPLACE R Find and replace string TAB Set tabs for program mode Spell Checking ANAGRAM AN Search for words containing same characters BUILD BU Build file of unrecognised words COUNTD (dict) COD Count words in dictionary DELWORDS (dict) DW Delete words in text file from dictionary FINDW FW Search for words with same character pattern INSWORDS (dict) IW Add words in text file to dictionary JOIND JD Merge two dictionaries together LISTD (dict)(word) LD List dictionary LOOKUP LK Search for similar words MAKED MKD Make dictionary from text file SPELL () SC Two pass spell check of file SPELLB SCB Spell check current block Phrase And Exec Commands CODE Display token returned by a key ECHO ON/OFF Turn command echo on or off EXEC X Execute file of commands LPHRASES LP List defined phrases PHRASE KEY Define phrase, function key or token Miscellany CALC CA Calculator COUNT Count words COUNTB Count words in block FF Send a form feed to the printer GOTO G Go to page/line/column number HELP (subhead) H Display HELP subheadings (opt. commands) INK Assign colour to ink LOADCFG LCFG Load configuration (CFG) file PAUSE Pause (optionally with message) QUIT Q Quit PROTEXT STATUS STAT Lists useful configuration settings Disk Management Commands CHDIR CD Change current directory COPY Copy a file or files DIR (af) Display directory listing ERASE DEL Delete a file or files MKDIR MD Create a new directory RENAME REN Rename a file RMDIR RD Remove a directory UPDATE UP Copy file or files if later versions Time And Date Commands DATE Set the system date TIME Set the system time TOUCH Set a files time and date to be the current time and date EXTERNAL UTILITY PROGRAM COMMANDS The following commands call programs which must be available to PROTEXT. In other words the specified ".PRG" files must be available on the disk. CONVERT CV File conversion program MAKECFG MCFG Full configuration program SETPRINT SP Printer driver creation utility FOOTNOTE 1-The variables bracketted in this line have the uppermost symbols above '[' and ']' enclosing them. STARQUAKE INSTRUCTIONS - COURTESY OF SEWER RAT THE GAME A black hole has appeared at the edge of the galaxy and belched forth a new planet. However the planet's core is unstable and will implode, destroying the whole galaxy unless it can be re- stabilised. You control BLOB, the Bio-Logically Operated Being, who has been chosen to rebuild the planets core. You start the game next to your crashed ship. At the top of the screen is the status display which details (from left to right) your score, lives left, battery level, supply of bridging units, ammmunition level and objects carried. Below this display is your view of the planet's surface. Using the control keys detailed below you can move left and right and rise up on bridging units which enable you to reach ledges and cross gaps. However, these units disolve into nothing after a few seconds. You can also pickup useful objects as you move around (see below). Beneath the surface of the planet you will find docking posts. Many contain hoverpads which enable you to fly through the caverns quickly. However you will not be able to pick up objects while flying around, so you will have to deposit the hoverpad in a vacant docking post then go back in search of the objects. Your task is to search out the planet's core which is located at the centre of the underground complex. Here you will discover which nine objects you will need to collect to re-stabilise the core. Go in search of these, then bring them back to the core where they will be taken from you. You can only carry four objects at once. If you pick up a fifth the first object you picked up will be dropped. You can trade one object for another at any of the Cheops pyramdids, but you will need the Access card to get inside. There are 15 teleporters located around the planet. When you enter one of these its five letter codeword will be displayed. Make a note of these codewords as you can teleport from one machine to the other by entering the codeword for the particular teleporter. GAME CONTROLS KEYBOARD JOYSTICK RESULT Z Left Move Left X Right Move Right J Down Move down (Hoverpad) or lay bridging unit I Up Move up (Hoverpad) or pick up an object Spacebar Fire Fire energy bolt Pause the game: Press F1, Restart with any joystick action or movement key. Abort the game: Press ESC twice Display high scores: Press H from the title screen. The ST version includes a demo mode which commences after a short time, or can be activated by pressing D. HINTS - There are a few secret passages to make it easier to solve the game. - Smash through crash traps from a great height to access new areas. - Collect the Access card to get through security doors and into the Cheops pyramids. - Trade items in your inventory for more useful ones, at any of the pyramids. - Collect joysticks for extra lives, and other objects to build up your supplies of bridging units, battery level and stock of ammunition. - Draw a map to help you navigate round the caverns - this is better than trying to memorise all 512 screens! ------------------------------------------------------------------- Yet another useful DOC file typed for your convenience by SEWER RAT and presented for your appreciation by SEWER SOFTWARE in this SEWER DOC DISK NUMBER 3 ROCKFORD - DOC TYPED FOR SEWER SOFTWARE BY DELTA ================================================ THE WORLDS ON EACH OF THE FIVE EXCITING WORLDS THAT YOU WILL BE ADVENTURING OVER,YOU WILL FACE A FRESH SET OF MINDTWISTING PUZZLES,AND A NEW RANGE OF MAYHEM WREAKING MONSTERS AND A DIFFERENT TYPE OF TREASURE HOARD.EACH OF THE WORLDS CONTAIN FOUR DIFFICULTY LEVELS.EACH OF THESE LEVELS IS COMPLETELY DIFFERENT FROM ANY OF THE OTHERS.THERE IS A COMPLETE RANGE OF CHALLENGES,FOR EVERY ONE OF THE SIXTEEN SCREENS THAT MAKE UP A WORLD HAS HUNDREDS OF PUZZLES FOR YOU TO SOLVE AS YOU TRY TO COLLECT ALL OF THE TREASURE WITHOUT ENDING UP CRUSHED UNDER A ROCK. WORLD 1.. ROCKFORD THE HUNTER IN "THE CAVERNS OF GRAYMAR" THE FABULOUS CAVERNS OF GRAYMAR CONTAIN A PHAROHS TREASURE STORE, YOU ARE COLLECTING THE PHAROH'S DEATH MASKS.PREVENTING YOU FROM DOING THIS THERE ARE GREEN AND BLUE SNAKES,BATS AND MONKEYS.THE NORMAL WALLS ARE MADE UP OF TOUCANS,THE MAGIC WALLS OF ELEPHANTS. WORLD 2.. ROCKFORD THE COOK IN "THE KITCHENS OF KYSSANDRA" YOU HAVE TO COLLECT THE APPLES OF ETERNAL YOUTH (THERE IS ONLY ON TREE AND IT,S LOCATION IS ONLY KNOWN TO THE OVERLORD OF THIS VALLEY LI'TSI'PAI.)WATCH OUT FOR THE SNAKES MADE UP OF HAMBURGERS AND PIZZAS,AVOID THE FALLING ORANGES,AND THE EGGS AND TOAST THAT ARE FLYING AROUND ,WALLS ARE EITHER CORN COBS OR CUTLERY. WORLD 3.. ROCKFORD THE COWBOY IN "THE SEARCH FOR EL DORADO" WAS THE TALES OF EL DORADO A MYTH ? .ROCKFORD KNOWS WHERE THE AZTEC GOLD IS.HERE YOU ARE COLLECTING THE AZTEC PENNIES,THESE ARE THE COINS WITH THE RED INDIAN HEAD-DRESS MOTIF.WATCH OUT FOR THE WAGON TRAIN AND THE IRON HORSE,OR RAILWAY TRAINS THAT WILL BE HEADING FOR YOU.MAKE SURE THAT YOU DO NOT TUMBLE OVER THE TUMBLE WEED.AVOID BEING SCALPED BY THE TOMAHAWKS OR SHOT BY THE REVOLVERS OR IT WILL BE BOOT HILL FOR YOU.FINALLY,DO NOT FORGET THAT THERE IS NO WAY THROUGH THEM CATUS,AND YOU WILL RIDE OFF INTO THE SUNSET. WORLD 4.. ROCKFORD THE SPACEMAN IN "THE DEEP DARK DEPTHS OF OUTER SPACE " THE FURTHEST OF YOUR TRAVELS FOR THIS IS NOT EVEN IN THIS WORLD, ALL YOU NEED TO WORRY ABOUT ARE THE ALIENS AND FLYING SAUCERS, ROGUE COMETS AND STRAY ROCKETS,GALAXIES,PLANETS AND SHOOTING STARS.WERE IT NOT FOR THESE MINOR PROBLEMS YOU WOULD HAVE NO TROUBLE GATHERING THE GREATEST OF ALL TREASURES.YOU MUST COLLECT THE SUNS,WHILE AVOIDING THE CRAZY COMETS,THE SPACESHIPS AND THE ROCKETS.REMEMBER NEWTON AND DO NOT LET ANY OF THE PLANETS FALL ON YOU. WORLD 5.. ROCKFORD THE DOCTOR IN "DOCTOR FRANKENSTIEN " . IN WORLD FIVE YOU ARE DOCTOR FRANKENSTIEN,COLLECT THE HEARTS AND AVOID EVERYTHING ELSE,ESPECIALLY THE DANCING SKELETONS AND THE FRANKENSTIEN MONSTERS.YOU DO NOT WANT TO FIND OUT WHY THE EARS ARE FLYING AROUND,AND YOU CERTAINLY DO NOT WANT TO TRY TO OUTSTARE THE EYES.WITH THE SKULLS OUT TO INVITE YOU OVER TO THEIR SIDE OF LIFE,YOU WILL BE PLEASED TO KNOW THAT THE GRAVES ARE AN IMPENETRABLE BARRIER. OTHER FEATURES JUST IN CASE THAT IS NOT ENOUGH FOR YOU,THERE ARE SEVERAL OTHER FEATURES TUCKED AWAY.OF COURSE ALL THE WORLDS HAVE AN ADEQUATE SUPPLY OF FIRE AND TAPS AND AMOEBAS AND OTHER DELIGHTS,ALL THE CREATURE COMFORTS OF HOME.MIND YOU,NOT ALL THE LEVELS FEATURE WATER,FOR IN THE DOCTORS WORLD THE TAPS DRIP BLOOD. FIRE IS OF COURSE DANGEROUS,IT NEEDS TO BE PUT OUT BY THE WATER,OR BLOOD,YOU NEED FIRST TO FIND A TAP AND TURN IT ON,YOU CAN THEN PUSH THE DROPS OF LIQUID AROUND TO QUENCH THE FLAMES. SNAKES HAVE MAGICAL POWERS TO ALTER OBJECTS,SOME SNAKES TURN ANY ROCK THAT THEIR HEAD TOUCHES INTO TREASURE,BUT BEWARE,OTHERS TURN TREASURE INTO ROCKS. WALLS WILL GROW HORIZONTALLY ON CERTAIN LEVELS,SO BE CAREFUL HOW YOU MOVE OBJECTS,OR YOU WILL END UP BOXED IN.ON OTHER LEVELS YOU CAN CREATE TREASURE BY DROPPING ROCKS THROUGH THE WALLS.CLOCKS WILL GAIN YOU EXTRA TIME IF YOU CAN GET TO THEM. IN CERTAIN CIRCUMSTANCES THERE IS NOTHING TO DO EXCEPT TO COMMIT SUICIDE BY PRESSING THE RESTART LEVEL KEY. AT THE START OF PLAY YOU CAN CHOOSE WHICH OF THE FIVE WORLDS YOU WISH TO ADVENTURE IN. WHAT YOU WILL SEE ON THE SCREEN. MOST OF THE SCREEN IS TAKEN UP BY THE PLAYING AREA ITSELF.THIS WILL SCROLL AS YOU MOVE ABOUT THE SCREEN SHOWING YOU THE REST OF THE FOUR SCREENS THAT MAKE UP EACH LEVEL.OBVIOUSLY THIS IS MADE UP OF TREASURE AND ROCKS AND MONSTERS AND WALLS.AT THE TOP OF THE SCREEN THERE IS A STATUS PANEL. STATUS PANEL THE PANEL GIVES YOU THE FOLLOWING INFORMATION :- NUMBER OF TREASURE ITEMS COLLECTED TIME LEFT TO COMPLETE THE LEVEL NUMBER OF LIVES LEFT CURRENT LEVEL AND WORLD CONTROLS ATARI...JOYSTICK ONLY...F10 RESTARTS LEVEL.... FOLLOW THE ON SCREEN INSTRUCTIONS TO SELECT STARTING LEVEL. TYPED IN BY DELTA THE SDI DOCS...TYPED IN BY SEWER RAT AND NOT EVEN TOUCHED BY POSSUM! +++++++++++++++ PLAYER ROLE SDI is a science-fiction adventure that takes you into orbit some 30 years into the future.You're Sloan McCormick,commander of the American SDI force,about to confront KGB-led revolutionaries bent on starting -- and winning -- World War III.How can you prevent global destruction? To defeat the Soviet renegades,you'll fly a spaceship,operate a space station,shoot missiles out of the sky,combat revolutionaries and work with an old friend.An old Russian friend.The commander of the Soviet space station,Natalya Kazarian,is holding out against the militant fanatics on orders from her government,which is still in power -- barely -- at the Kremlin.As the U.S. space commander, you have a three-part objective: defend America from missile attacks,protect U.S. space installations from attacking KGB ships and rescue the Soviet commander if her station's defenses fall. Your first goal should be mastering the controls of your starfighter.Fly the ship anywhere in Earth orbit,circling the globe with full thrusters just for the fun of it,blasting Russian attack ships into space dust or attempting to dock with one of the two space stations,Soviet or American.Docking with the U.S. space station,you can go to the bridge through the airlock and access SDI control screens to defend America against Russian missile attacks.You can also use the ship to repair or deploy new SDI satellites. SHIP CONTROLS Fly the starfighter anywhere in Earth orbit,docking with either of the two space stations.Use the ship to track down and destroy KGB ships as they enter orbit.Fly out to replace SDI satellites as they are destroyed by the Russian ships. - In the ship,your joystick allows you to guide your craft and fire her weapons. - To change course,push LEFT,RIGHT,UP or DOWN. - To increase speed,type "+" (plus sign) - To decrease speed,type "-" (minus sign) - To fire weapons,press the joystick button Instrument panel: - Speed Indicator - Displays the speed of your ship. - Shield Indicator - Displays the status of your shields. - Energy Indicator - Displays your energy level. Accessing Navigation Displays: - Orbital Scanner - Hit O to access the Orbital Scanner. - Satellite Status - Hit S to access the Satellite Status. ORBITAL SCANNER Navigation with the Orbital Scanner. This screen displays your ship's position in orbit over a map of the world.Also displayed are the positions of the two space stations (Soviet and American) and the locations of any KGB spaceships that have entered orbit. It can be accessed from your starfighter or the U.S. space station. - To plot a course toward any destination,move the arrow cursor over your target and press the joystick button. - Your navigational computer changes the ship's heading automatically and you exit the display. - If you want to leave this screen without changing course (OR if you accessed it from the bridge),move the cursor over the words "STAND DOWN" and press the joystick button. SATELLITE STATUS AND REPAIR The Satellite Status Display,a map of the U.S. with pictures of 12 satellites,can be accessed from your starfighter or the space station,and shows whether your SDI satellites are functioning or damaged.If the KGB fanatics launch ships into orbit,they'll try to knock out yor satellites,so intercept the attacking ships before they reach the area over the U.S. The 12 SDI satellites in orbit protect the U.S. completely if all of them are operational.They are positioned to protect the four time zones (PACIFIC,MOUNTAIN,CENTRAL and EASTERN),and each time zone is covered by three satellites.Holes in the defense are created if satellites are knocked out by KGB ships.If a hole exists,a missile passing through the affected area is much harder to target and destroy. To repair or replace a satellite you must be in the starfighter (not in the space station) and follow these steps: - First set a course by moving the cursor over the satellite and pressing the joystick button. - When you approach within range of the satellite,type R on your keyboard.Your ship's navigational computer will perform the satellite acquisition and repair automatically. - When the procedure is complete,start your engines and set course for your next destination. - If you called the satellite display from the space station bridge (or if you want to exit without changing course),move the cursor over the words "STAND DOWN" and press the joystick button. DOCKING To reach one of the space stations from your ship in orbit,call up the orbital scanner by typing O.Select one of the space stations as the destination (see NAVIGATION) and the navigational computer will set the correct course and return you to the cockpit display. - When the space station comes within range,type D to begin the docking procedure. - Use your docking computer to guide your ship into the docking bay at the center of the station. - To steer,push the joystick LEFT,RIGHT,UP or DOWN. - To slow down,press the joystick button to fire braking rockets. - When docking is completed successfully,you'll exit your ship through an airlock and enter the space station. - If you miss the docking bay the first time,steer your ship back around for another attempt. SPACE STATION The U.S. space station is your base.Here,you may access the orbital scanner to view the strategic situation,check on the status of the SDI satellite array,and use SDI to defend the U.S. against missile attacks. After docking with the station,you enter the bridge and take your seat at the command console.Three screen displays are shown on the walls of the bridge.To access one of them,move the arrow cursor over the screen of your choice on the wall and press the joystick button: - Orbital Scanner - see ORBITAL SCANNER for instructions. - Satellite Status - see SATELLITE STATUS & REPAIR for instructions. - SDI Control Screen - see S-D-I CONTROL for instructions. - To return to your ship,move the cursor over the exit hatch in the center of the screen and press the joystick button. - If the space station is attacked,hurry to your ship to defend the station -- it has shields,but extremely weak defenses.If the station is destroyed,the U.S. lies open to nuclear attack. Your mission will have failed. S-D-I CONTROL The S-D-I Control Screen is accessed from the space station bridge (see SPACE STATION).If the KGB launches a missile attack against the U.S.,get to this display as quickly as you can. - To shoot down the incoming missiles,move the target crosshairs over the missile you want to destroy and press the joystick button. - A view of the missile appears in a close-up window at the bottom of the screen. - To fire the particle beam weapon,aim the crosshairs at the missile and press the fire button. - When the missile is destroyed,quickly select another incoming missile for targeting. - The 12 SDI satellites each cover a different geographic region (see SATELLITE STATUS & REPAIR).If one of the satellites has been destroyed,missiles passing through its region will be more difficult to hit.The nearest functioning satellite will fire at the missile you've targeted,but the greater distance to the target increases the chance of missing it. - To exit this display,move the cursor over the words "STAND DOWN" and press the joystick button. LENIN DEFENSE STATION When the Soviet V.I, Lenin Defense Station is under attack,its commander may request help.Set your course for the station (see ORBITAL SCANNER) and dock with it as described under DOCKING.Once inside,you'll have to fight your way through the enemy guards that have stormed the station. - In each room,shoot as many guards as you can by aiming the crosshairs and pressing the fire button. - When you are ready to risk their fire and run to the next room, then "RUN FOR IT" by moving the crosshairs over the words at the bottom of the screen and pressing the fire button. - If you make it all the way to the Soviet command center,Talya should be waiting. URGENT: THIS IS A RED ALPHA MESSAGE - PRIORITY ONE TO: MCCORMICK FROM:SAC HEADQUARTERS Disregard your current S.D.I. command instructions.New instructions are NOW in effect! REPEAT: Your flight manual is INVALID!These are your new controls.Good luck sloan,and may God be with you ..... Loading Instructions: Insert S.D.I. REEL ONE into your drive.If you have a second drive load it with S.D.I. REEL TWO.Double-click on the file SDI.PRG. (1040 owners will be given the option of creating a "ram disk") After the CINEMAWARE screen appears,push your joystick button if you want to skip the intro. Here are your objectives: 1. Destroy enemy fighters. 2. Repair damaged satellites. 3. Eliminate Russian missile strikes. 4. When the Russian station is overthrown (Natalya will call for help) you must at least ATTEMPT a rescue. 5. After leaving the Russian station,finish off the remaining enemy fighters. SPACE STATION - Scanner - Click on the flashing green screen display. - Satellite Status - The flashing display in the upper-right hand corner brings up the S.D.I. satellite network. - SDI Control - The two flashing screens in the middle take you to the missile defense sequence. - Airlock - To enter the fighter click on your character in the center of the screen.An elevator will take you to the airlock. Missile Defense: Target the inbounds by moving your cursor to the end of the missiles arc and pressing the joystick button.The following information will be displayed: PRIMARY SATELLITE STATUS (functional or damaged), MISSILE DESTINATION (an American city), SATELLITE NUMBER,and MISSILE COORDINATES.Quickly press the button to continue.Now the screen prompts you for PRIMARY or SECONDARY satellite sequencing.Move the joystick right to select PRIMARY or left to choose SECONDARY.Then decide between FULL BEAM or PULSE. When the missile appears in your view screen,target it with the cursor and fire. - Primary - Selects the primary satellite for sequencing. - Secondary - If the primary satellite is damaged you MUST choose secondary at the prompt. (However,destroying the missile will be much more difficult.) - Full beam - Discharges a single,powerful beam.Easier to target, but you have only one chance to hit the missile. - Pulse - Recommended with secondary sequencing.When missiles no longer appear click on the word "EXIT" SHIP CONTROLS The indicator on the left displays your speed.Your fuel guage is in the center and your shield status is displayed on the right.The U.S. and Soviet stations will show up as dark black dots on your radar.Damaged satellites are displayed as small blinking dots. (Satellites that need to be repaired will blink on your main view screen as well.)When an enemy missile strike is called the computer automatically begins counting down.You have exactly two minutes to dock with the U.S. station,make repairs and refuel,and enter the missile defense sequence.Get back too early and you'll waste time.Get back too late and you'll lose cities!When the Russian station is overthrown the timer will count down from four minutes.The sooner you dock with the Russian station the more time you'll have to rescue Natalya from the evil KGB. The following keyboard commands are available: - M When the white message light is blinking press "m" to view the incoming message. - + - Use plus (+) and minus (-) to increase/decrease speed. - D Press "d" to engage docking mode.Maneuver your ship with the joystick to center one of the two stations inside the red "docking target."Press the joystick button to call up the computer aided docking sequence.Press the "d" key again to return to "firing" mode. - S The scanner constantly updates relative positions on a world map.Your ship is displayed as a small white triangle Rotate your fighter by tapping the joystick to the left or right.Your ship will move in the direction it's pointing. Accessing the scanner will return your ship to the correct altitude for docking and satellite repair.Exit the scanner by pushing your button. - R Repairing satellites is similar to docking.When the damaged satellite is centered in your green "repair target" push the button.Press "r" again to exit repair mode. Computer Aided Docking Sequence: Center the docking port in your view screen using the joystick.Your ship will accelerate automatically.Slow down by pushing the joystick button to fire your retro rockets.If you're not centered or moving too quickly the docking will be aborted.After a successful dock with the U.S. station you have an opportunity to refuel,recharge your shields and make repairs.Move the cursor to the words highlighted in red and push your button.To enter the station select ENTER AIRLOCK. Choose DISENGAGE to return to combat. Fire your lasers by pushing the joystick button.When your ship is hit the screen displays a close-up of your character.Return to the base if you need to make repairs.Press the space bar to toggle the music on and off. S.D.I. allows you to join Flash Gordon,Han Solo and all the rest of the interplanetary heroes as you protect Earth from danger. There is an important difference,however.This time the danger comes,not from an alien invasion,but from a force here on Earth. Let us hope that the geopolitical scenario which forms the basis for the game,remains just that,a scenario for a computer game. `?</Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NV"l`Yd&-KNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H` <C킰NpC킰NT+@RN SOLVES.SWRHP -R"_N"+mRF -F:+@JpiN|HPNDOC.SWR4r"_Np"<NRC>NpNADNRA9NXNrHPpr"_NCPNAPNvANN\HPp"_NC4NA4NvAN <r$<ANN8vNANN?< @N\LHmNpr"_NpJBgp/HmNbo"_NpJBgp$VHfN'N*NpN|NpbNp N|NNp rNN(Disable Printer Control Codes (Y)es/(N)oNNp rNN(Choose Yes if your printer isNNp rNNnot Epson compatible)%NNNCbNHmbpyN|"_NpJBgp/HmbpYN|"_NpJBgp$VHfN%tN*NoffCNNp rNN'Prepare printer EXACTLY in position for4NNp rNN'printing and press 'Return' to continue4NNNCbNHmbp N|"_NgNp N|NNHmNpr"_NfN%nN*NpN|NpbNpN|NNp rNNPress 'S' at any time toNNp rNNterminate printingNN'HmbpnN|"_NpJBgp/HmbpNN|"_NpJBgp$VHfN'~N*Np rNN!Ensure Printer is Switched On and4NNp rNN#Press 'Return' to Commence Printing4NNNCbNHmbp N|"_NgNpN|HPp@N|"_N0NNpN|HPp?< @N\L ->X/?<NN\ADNf ->X/?<NN\N -F$OHWH>?< @N\LpiN|HPAzr"_Np"<NRC Np"<}NRCNpNANf - X/?<NN\NNCNHmp N|"_NfN(N(N(NBm"ANnHmNpr"_NfN*A3NXA N&<x*<N"fN)PBm$N,8A퀄N&<x*<N"fN*N*BmNpN|NpbNpN|NNp rNNStop Printing (Y)es/(N)oNNNCbNHmbpYN|"_NpJBgp/HmbpyN|"_NpJBgp$VHfN*BHmNon"_NfN*/-A/??<@NA ??<>NAXBg?<LNANuEDO YOU REALLY WANT TO SAVE THE FILE ?? (Y)ES / (N)O STAR TREK HELP - COURTESY OF SEWER POM ************************************** KEY: R=REGIONAL ZONE L=LOCAL ZONE QZ=QUARANTINE ZONE I-BEAM GENERATORS CAN BE FOUND ON: 1 Cermen 64:67:11 Klingon 2 Herniez 46:63:26 Klingon 3 Molion 66:70:30 R-Klingon(pods) 4 Bolius 37:70:55 R-Klingon(pods and guard) 5 Raniem 10:62:38 R-Klingon 6 Parlur 79:72:70 R-Klingon 7 Lerner 76:67:85 L-Klingon 8 Ganiez 46:62:64 R-Klingon 9 Tiliul 25:70:67 QZ-Klingon 10 Sonax 86:64:41 R_Klingon(guard) LEPTON GUNS CAN BE FOUND ON: 1 Loriol 71:25:84 Federation 2 Nuziol 72:47:81 R-Romulan 3 Zersur 31:37:49 QZ-Independant 4 Toziuz 49:94:66 R-Federation 5 Sakiel 70:50:41 QZ-Klingon 6 Xuner 28:17:46 Federation 7 Somum 61:10:41 QZ-Klingon 8 Hamul 25:56:76 R-Klingon 9 Perriaz 45:31:21 R-Klingon 10 Vorsiuk 55:85:25 R-Federation SIGNALS CONSOLE PLANET: 1 Romok 53:10:38 L-Klingon(guard) KLINGON CODES FILE PLANET: 1 Moliul 25:70:29 2 Birnan 62:76:55 L-Klingon(need Fluox) BLACKMAIL FILE PLANET: 1 Manak 50:14:30 R-Klingon(need Fluox) PSYCHOGEN PLANETS: 1 Kuxam 56:41:58 R-Federation(pods) 2 Dozox 89:46:50 R-Romunlan(pods) 3 Bikes 34:52:55 R-Klingon 4 Mines 34:64:79 R-Federation 5 Danian 63:62:51 R-Federation 6 Sakien 15:50:42 L-Klingon 7 Tariax 39:74:18 QZ-Independant 8 Zarral 20:30:48 R-Klingon 9 Bisiul 25:82:53 R-Romulan 10 Geslium 61:33:16 R-Romulan 11 Zorziuk 55:97:49 R-Federation REBEL COMMANDER PLANETS: 1 Sisus 85:34:43 R-Federation(need Fluox) 2 Henax 38:15:75 R-Federation 3 Lorsun 19:37:37 L-Federation 4 Lorren 64:79:83 R-Federation 5 Dakiak 51:50:50 QZ-Federation DILITHIUM DELTA 6 PLANETS: 1 Gesok 53:81:64 Klingon 1 Verkas 32:55:25 L-Independant PEACE VIRUS AMPOULE PLANET: 1 Tenak 50:15:67 ================================================================== Yet another useful DOC file typed by SEWER POM and presented for your enjoyment by SEWER SOFTWARE THE FLINTSTONES: typed in by ICEMAN LOADING INSTRUCTIONS ATARI ST: Insert disk into drive and turn on machine. The disk will now load and run. CONTROLS KEYS FOR ATARI ST LEFT = Z RIGHT = X UP = P DOWN = L JUMP = Space PAUSE ON = F 10 PAUSE OFF = F 9 MUSIC ON = F 8 MUSIC OFF = F 7 PAINTING SCENE Space bar = to paint Keys as above to move Fred RESCUE SCENE Use control keys as stated above DRIVING SCENE Fire = JUMP Slow down = Z Speed up = X Jack up car = P & L together BOWLING SCENE Move Fred up screen = P Move Fred down screen = L Add left hand spin = Z Add right hand spin = X Hold down space to select speed Release space on desired speed OR JUST USE JOYSTICK PORT AIM OF THE GAME Fred is looking forward to the Bedrock Super Bowl, till Wilma reminds him that he has to paint the living room which he promised. No painting , no bowling. To paint the room you must dip your brush into the paint and paint away. To paint the higher parts of the wall you use the ladder. During the process of painting the room peebles draws pictures on the wall you have just painted you must grab peebles and put her back in her little pen. When Fred puts peebles back in the pen you lose control of your elusive paintbrush! THE NEXT DAY Fred and Barney set off for the Bowling Final but run into trouble when they lose a wheel on fred's car. You then must quickly find a suitable replacement to fit on, so you can get to the Bowling Final on time. THE BOWLING ALLEY Fred and Barney make it in time to the Bedrock Super Bowl and it's Fred with histwinkle toes against no-nonsense, butter fingers Barney. May the best man win. THE RESCUE Fred and Barney return home to find Wilma very distressed as Peebles has escaped from her pen and disappeared. Fred eventually finds her perched high up on a stone girder, above the new building site, totally unaware of the dangers around her. It's Fred Flinstone to the rescue but with such a bewildering array of girders and ladders, will he be able to get to her in time? F15 STRIKE EAGLE ---------------- Typed in by Sewer Possum for DOC DISC III. "F-15 is a faithful simulation of the high-tech F-15 all weather air superiority and ground attack fighter, including all major flight, weapons and information systems. F-15 puts you in the cockpit of the world's most advanced fighter airplane to plan your strategy and make the critical split second decisions which spell the difference between success or failure! Good luck." Well gee, I think I must have loaded the wrong program, cos I've seen spreadsheets more exciting than this crap. Microprose is capable of a hell of a lot more than this! Anyway, here's an abridged version of the manual (it sure as hell isn't worth typing the whole thing in!). AUTHENTICATION: Should you be unfortunate enough to have an uncracked version of this "simulation" you'll be asked to enter your secret F-15 authentication codes and type the countercode letter which matches the number displayed. 0 C 1 K or H 2 I 3 P 4 L 5 M 7 R 8 E NOTE: No 6 not required. 9 D 10 N 11 G 12 Y 13 O 14 F 15 W KEYS: BACKUP THROTTLE 1 - 0 on keyboard BAILOUT SWITCH ESC RADAR RANGE SELECTOR R ELECTRONIC COUNTER MEASURES E AFTERBURNER A SHORT RANGE MISSILE ARM S SPEED BREAK SWITCH X DROP TANK RELEASE D FLARE ACTIVATE SWITCH F GUN ACTIVATE SWITCH G BOMB ACTIVATE SWITCH B MED RANGE MISSILE ARM M FRONT/REAR VIEW SPACE NAV TARGETTING CONTROLS SHIFT & CURSORS PAUSE CONTROLS P MISSIONS ======== 1. Daytime, climb to 10,000 ft. If attacked engage Libyan aircraft and bomb the air command centre (primary target) and airfields. 2. Penetrate air defences, bomb command centre primary target and as many airfields and SAAM sites as possible. Return to base. 3. Night, penetrate air defences at 1000 feet or at high altitude. Bomb railyards in harbor areas. Bomb airports and SAAM sites. Return to base. 4. Daytime, fly over border and identify SAM-9 emplacements. If attacked, engage enemy and bomb air command centre. Bomb SAAM sites and air bases. 5. Night, bomb oil storage depots. Bomb SAM sites and airfields, return to base. 6. Penetrate air defences below 1500 ft to avoid radar. Bomb SAM sites and air bases. 7. If attacked engage enemy aircraft. Penetrate airspace at medium altitude. Bomb primary targets, SAM sites, air bases. Return to base. thank you" sign-off without changing the dictionary. Helpful hints If you have multiple drives or a ramdisk, you can speed up the process, by specifying different devices foVOLUME 1 of ARCADE TIPS from an idea by BRIAN C. Typed by Brian C. and SEWER POSSUM for DOC DISC III. If you've got some tips for aracde or adventure games, why not send 'em in (photocopies, IBM, ST or AMIGA 3.5" format disc docs....we're not fussy!) Here are...Bombuzal,BDTA,Bubble Bobble,Carrier Command,Cybernoid 2,Gauntlet 2,Eliminator,Fernandez Must Die,Great Giana Sisters, Ikari Warriors,Leathernecks,Mickey Mouse,IK+,Enduro Racer,Oids, Nebulus,Outrun,Return to Genesis,SDI,Rolling Thunder,Super Hang On,Star Quake,StarRay,Karate Kid 2,StarGlider 1 & 2, Menace,Hunt for Red October,Menace,Street Fighter,Virus,Sorcery+,Spy Vs Spy, StarGoose,Elite,Arkanoid,Hades Nebula,Airball,Overlander,Captain Blood,Terramex...in that order! BOMBUZAL ======== Here are some codes for the game: RATT ROSS LISA GOLD DAVE OFAL BETTER DEAD THAN ALIEN ====================== Here's the complete set of codes for both the ST and Amiga versions. LEVEL PASSWORD COMMENT ----- -------- ------- 001 ELEKTRA PRACTICE 002 SYZYGY A DODDLE 003 DRAMBUIE VERY EASY 004 PLUG EASY 005 SOPRANO QUITE EASY 006 MAYONNAISE AVERAGE 007 FAUCET SOME EFFORT 008 POTATO MUCH EFFORT 009 WOOMERA GREAT EFFORT 010 NARCISSUS TOTAL EFFORT 011 DEBUTANTE HARD! 012 FIRKIN REAL HARD 013 ACOUSTIC VERY HARD 014 TRIPTYCH LUDICROUS 015 JABBERWOCKY ABSURD 016 WHIMSICAL POSSIBLE? 017 CORNUCOPIA DO THIS ONE! 018 PUNJABI OK, NOW THIS 019 TIDDLY POM STILL HERE?! 020 KEWPIE DOLL BRILLIANT! 021 SEPULCHRE IMPOSSIBLE.. 022 EUPHEMISM ..OR WAS IT? 023 GRAMMARIAN THE END. 024 CROSSWORD THE END II 025 QUARANTINE THAT'S IT. And here's the cheat mode! Type ELV to activate cheat, then press F1 Scatterbolts F2 Multiple fire F3 Auto fire F4 Armour Missile F5 Stun F6 Neutron Bomb F7 Clone ship F8 Sheild F9 Skip Level F10 Extra Power BUBBLE BOBBLE ============= Press F1 to advance 1 screen Press F2 to advance six screens Press F3 to advance eleven screens CARRIER COMMAND =============== A lot in this excellent simulation. PAUSE the game and type GROW OLD ALONG WITH ME then press + on the numeric keypad for your mantas and walruses to become sheilded. Press - to disable. PAUSE the game, type "The Best is Yet to Be". A message will be displayed that tells you the cheat mode is active. exit Turns power light on/off 9 Gives current difficulty level 7 Speeds up game (useful!) 6 Shows all colors and shades in the game (thrilling!) Try pressing CTRL and M on the main screen for some interesting effects. CYBERNOID ========= On the title screen press the space bar, type in RAISTLIN and press the space bar once more for infinite ships. CYBERNOID II ============ Select the define keys option and define the keys as Y, G, R, O (in that order) - you now have unlimited lives. GAUNTLET II =========== When you open a treasure chest, hold down the "HELP" key, then when you open a second chest, hold down the "INSERT" key - a golden cross will appear. Collect this and you'll find your health points mysteriously rises to 50,000, you'll also have super shots for the remainder of that level. Oh, by the way - don't forget to unplug your printer when you boot the game up or you'll be plagued by an uncontrollable Elf! ELIMINATOR ========== Press the HELP key once the game is loaded and type in the passwords listed below, to progress to your chosen levels. STAGE PASSWORD 02 AMOEBA 03 BLOOOP 04 CHEEKI 05 DOINOK 06 ENIGMA 07 FLIPME 08 GEEGEE 09 HANDEL 10 ICICLE 11 JAMMIN 12 KIKONG 13 LAPDOG 14 MIKADO FERNANDEZ MUST DIE ================== Pause the game and type in SPINYNORMAN (Obviously programmed by Monty Python fans) and lo and behold you've got infinite lives at your disposal. THE GREAT GIANA SISTERS ======================= While playing, hold down the keys A,R,M,I and N to skip to the next level. HELTER SKELTER ============== Here are the passwords for those elusive later levels. LEVEL PASSWORD 11 SPIN 21 FLIP 31 BALL 41 GOAL 51 LEFT 61 TWIN 71 PLAY IKARI WARRIORS ============== Type in FREERIDE on the high score table and you'll start the next game with an invisible soldier. LEATHERNECK =========== This cheat works for both the ST and Amiga. Start the game and type 'CUTHBERTNECK', then press F3. This will give all players protection from enemy fire, but not from your team-mates' bullets. To return to normal press F3 once again. MICKEY MOUSE ============ While playing, type in 61315688. A flickering line should appear in the border, indicating that the cheat mode is in operation. The following keys will now activate these handy features... F2 - Opens the door to the next sub-game F3 - Starts a fight between you and a witch F4 - Refills your water pistol INTERNATIONAL KARATE + ====================== Codes to type in while playing- FREZ Freeze the game PAC Pacman moves across screen FISH Makes a fish leap out of water BIRD Bird flies across screen PERI periscope rises out of water Typing FUCK and CUNT results in an interesting message. ENDURO RACER ============ When you first begin to play Enduro Racer, after the countdown type the word CHEAT in on the keyboard. Having typed that in, pressing one of the following keys will result in a specific effect. T - Gives you an extra 10 seconds to complete the race S - Advances you one checkpoint F - Gives you turbo speed (210 kmh) NEBULUS ======= While on the title screen, type in HELLOIAMJMP (no spaces) to activate the cheat mode, awarding you infinite Pogos. Not only that, but you can also press keys F1 to F8 to access any of the towers.  OIDS ==== The following listing (which must be type in using lower case only) will give you infinite lives. 10 rem omit line 30 if you are using the new ST basic 20 dim a%(770):cheat=varptr(a%(1)) 30 def seg=0 40 gload "a:start.prg",cheat 50 poke cheat+&h260,&h357c:poke cheat+&h262,&h302c OUTRUN ====== Type in STARION whilst playing the game then select any of the following codes: B - Gives extended play Q - Gives you info about the program T - Adds ten seconds to your time S - Takes you through the locations D - Saves the screen in DEGAS format x - crashes the computer! RETURN TO GENESIS ================= On the title screen type WASP ASM then press F5 for invincibility. SDI (Activision) ================= Cheat modes seem to be getting harder to activate every day, with this one being one of the weirdest to date. On the playable high score table, shoot down all the swirling pods with your lasers, allowing you to enter your name. Type in ALERIC and the cheat mode is up and running, allowing you to select any level you want with the function keys. ROLLING THUNDER =============== Type JIMBBBY for infinite energy - type 1 to change level. SUPER HANG-ON ============= On the high-score table enter 207L, which should then be replaced by a row of dots (indicating that there's cheating afoot). When the next screen appears, press CTRL, ALT, Z and T to get the cheat mode running, allowing you to change the strength of the centrifugal force (what a strange cheat!). Zero will allow you to whip around the course at top speed without crashing at all, while the higher numbers will more than likely send you off the course at every bend. STARQUAKE ========= To help you get about a bit, here's a complete list of teleport codes: FLIED ROKEA CHING HINDI DAVRO SOCHI SOLUN NICHA TABET BORNO LUANG CWORE TSOIN KWANG KALED ADKEA STARRAY ======= Unfortunately the cheat mode isn't as straightforward as the game play. Here's the step by step guide to getting an invincible ship. Make sure your mouse is plugged in, but don't use it to move the highlight. Access the OPTIONS SCREEN (ie: press the SPACE BAR). Move down to the VIEW GAME SCREEN option. Push the joystick LEFT and press FIRE. The GAME SCREEN should appear. Centre the joystick and press FIRE again. The OPTIONS SCREEN should reappear. Move down to the SOUND ON option. Push the joystick to the RIGHT and press FIRE. If SOUND ON changes to SOUND OFF, start again from scratch. Return to the VIEW GAME SCREEN option. Push the joystick RIGHT and while holding it in this direction, hold down the RIGHT MOUSE BUTTON. Press the LEFT MOUSE BUTTON. The OPTIONS SCREEN should change to CHEAT MODE. Return to RESUME GAME and continue play with a shield that never depletes. If this doesn't work, try again from a new game. KARATE KID 2 ============ Press P to go to next level (works for both ST & AMIGA) (More) GREAT GIANA SISTERS =================== On level 3 stand at the end of the row of blocks and jump up to hit an invisible block that takes you to level 6. STARGLIDER ========== Slow down to minimum speed and select F for fixed gunsights. Pause the game and type JS ARG S followed by RETURN, then type JS ARG S and hit RETURN again. Pressing M stops all enemies in their tracks, while P awards an extra missile. N gives an extra 5000 points to your score. STARGLIDER II ============= Press BACKSPACE (DELETE) to pause and type WERE ON A MISSION FROM GOD and press 1 on the main keyboard. Then press K to get ALL the weapons and if you run out, just press K again. MENACE ====== Type XR31 TURBO NUTTER BASTARD and hit keys 1-6 to select a level. Then press RETURN for extra weapons. (Not sure about this one, works for Amiga, but haven't tried it on the ST yet) HUNT FOR RED OCTOBER ==================== If you are surrounded by the enemy ships then simply save the game. When you restore that game all the ships have disappeared. STREET FIGHTER ============== To progress to the next level of this abominable licensed beat'em up, type STREET CHEAT on the title screen and press the HELP key. Easy when you know how, eh? VIRUS ===== Start the game and hold down ENTER on the keypad. Whilst keeping it depressed, press P then O. Now when you thrust a third bar will appear below your fuel and altitude bars. Each of the following keys now have different effects... L - Gives you an extra missile and hoverplane D - Turns demo on/off F - Restores your fuel to full B - Disables graphics (pretty useless) N - Turns cheat mode off C - Disables graphics update (just makes a mess) SORCERY + ========= Type GAS MASK WHEELER WANTS CHEAT (include spaces) and the sorceror becomes invisible. SPY Vs SPY ========== Wait by the door to the airport and booby trap all doors. When the other spy has got all the stuff, he'll get killed trying to get to the exit - just go through the door which he tried to get through. Pick up the stuff by searching the furniture and escape. If he does get through, just beat the shit out of him and head for the exit. STAR GOOSE ========== Hit all the function keys from F1 through to F10 and you've got unlimited protection in this cute shoot em up. ELITE ===== The official ELITE cheat. When asked for the code word from the manual, type SARA. Now type in the correct word when prompted and begin play. Press the * key to access the hacker screen, where bytes and variables can be changed to suit. CHANGE BYTE FOR 32 to 01 Cloaking Device 31 to 01 ECM Jammer 20 to 01 Escape Capsule 23 to 01 Energy Bomb 24 to 01 Energy Unit 26 to 01 Docking Computer 28 to 01 Galactic Hyperdrive 80 to 01 Document 84 to 01 Fugitive Rating 85 to 01 Offender Rating 88 to 01 Mostly Harmless Rating 88 to 01-08 Poor - Elite rating 1F to 01 Fuel Scoop 34 to 03 Cargo Hold 7C to 01 Unhappy Refugees Press ESC to get back to the game. ARKANOID ======== Yeh, it's ancient I know, but its a cheat ain't it? When the game loads (before the title screen changes) type DEATHSTAR (holding down that SHIFT key). Now pressing S jumps you forward a screen when you want. When you lose all your lives and are at the high score table, type in PAJ in capital letters to return to the screen where you lost your last life. HADES NEBULA ============ Nice game, but bloody difficult. Type MONITOR. on the high score table (include the full stop) and you'll find that when you restart the game you have 5 ships and this number will remain constant. OVERLANDER ========== Just a few tips- When cruising the highway don't stop shooting, and always choose the highest paid mission. Buy fuel carefully - only enough for that level, after level 1 you MUST buy a leanburner. Try to stay in the middle of the road and travel fast, travelling slowly only burns more fuel. Fire bombs are more useful than smart bombs when you learn how to use them. Bulletproofing is necessary after level 2. When travelling through the barriers the best speed is 90-120mph. AIRBALL ======= The spellbook is in the room with the candle. You have to pick up and remove the blocks to get it. Take the spellbook back to the start screen and drop it in the top left corner and follow the instructions to get the ingredients to complete the game. CAPTAIN BLOOD ============= When you encounter a particularly friendly alien, ask it the following question using the alien icons: CODE GG1. The alien will then give you the co-ordinates of another alien called GG. Go to the specified planet and you can then ask GG for the co- ordinates of all the other aliens around by asking CODE INFORMATION HELP. If you're met with blind ignorance then put in the name of an alien after the HELP. TERRAMEX SOLUTION - COURTESY OF SEWER POM ================================?<??<<<< directly before its text, the paragraph will be tagged with that style automatically when it is imported. (Thats what the manual sez!) If you use a paragraph tag that has not been defined, a new tag will be created for you, using the selections of the current Body Text tag. When the program sees a carriage return mark it will change to default Body Text. For example: Sewer Doc Disc 2 Back Bigger Than Ever! This text will be in the currently selected Body Text style. NOTE: The title within the brackets must match the name in your style sheet or a new paragraph tag will be created instead. If you enter <-> in a word in your text, a Soft Hyphen will be inserted at that point. <_> will place a Hard Space. ASCII values can be entered. (ie: <42> will enter a *. EDITING TEXT To insert new text, enter Text mode. Move the I-Beam pointer to the point you want to insert text and click. Type from this point. Whole blocks of text can be cut by highlighting it and then pressing DELETE or ALT X. Find and Replace Editing: Click on Text tool. Use Find... command in the TEXT menuto search through text. If the PUBLISHER finds a string it is marked as a block. Find, Find and Replace... and Find Again only work in Text mode and from the position of the cursor to the end of the story. Typing in New Text: Select text mode. Click in an empty frame and type directly in. No Library entry will be created for text typed directly into the PUBLISHER. The style for highlighted text can be selected by clicking on a style in the Library, or choosing it from the STYLE menu. USING A STYLE SHEET. Saving the Style Sheet: Click on Save Style Sheet... in the FILE menu to save your current page format and paragraph styles to disc. Adding Headers and Footers: Headers and Footers can be added at any time. Select Headers and Footers... in the TEXT menu. Click on the appropriate boxes. You can prevent a header or footer from appearing by selecting Header on This Page or Footeron This Page from the TEXT menu. Headers and Footers will appear if this option is checked. DESIGNING PARAGRAPHS. Each paragraph of text within a document is 'tagged' with a style name. The default paragraph style is Body Text. If you're in Paragraph mode and click on on a paragraph, the whole paragraph will appear highlighted. The name of the paragraph style being used for the selected paragraph will be highlighted in the Library. To create a new paragraph style, double click in the Library on the name of the existing style which is closest to the style you want to create. A Dialog Box will appear that gives a list of choices that affect paragraphs. Click on New Style... Another Dialog Box will appear showing the name of the selected style. Delete the old name by pressing ESC and type in the name of the new style. Changing the Tag of an Existing Paragraph: To change the style of an existing paragraph, select the paragraph you wish to change whilst in paragraph mode. The current paragraph style will be highlighted in the Library. now click on the style you want in the Library. Alternatively, you can highlight the paragraph using the Paragraph tool and press the function key for the desired tag or simply press the function key for the desired Paragraph style while in the Text mode. Changing Text Style: If you want to, you can change the appearance of a piece of text without affecting other text tagged with the same Paragraph Style. Enter TEXT mode by clicking on the T icon. Highlight the block of text you want to change by dragging across it. Then choose a style from the STYLE menu (ie: italic). The block of text will be changed to reflect your choice. Alternatively you can choose a style from the Library. Click on Delete Style Box to delete unwanted paragraph styles. Assigning Function Keys: Choose Function Key... to allocate a function key for each paragraph style. Press the relevant function key in Paragraph or Text mode to tag the selected paragraph with a style name. PARAGRAPH INDENTS AND MARGINS. The Dimensions Dialog Box is used to specify margins, the amount of space between lines and the amount of space above each paragraph. A hanging indent (the first line extending further left than the others) can be created by making the first line indent less than the indent for the other lines. The first paragraph within a frame will be placed immediately below the frame border, with no space above it. The amount of space after a paragraph is always determined by the amount of space above the next paragraph. Variations in the inter-line spacing (leading) can be used to adjust the amount of white space between text lines. JUSTIFICATION. Click on Justification... option in the Paragraph Style Dialog Box to specify justification format, hyphenation and letter spacing and prescence / abscence of bullet symbol at the start of paragraph. Four different styles of Justification are allowed. If you don't want the space between the letters to vary, you can disable Letter Spacing by clicking on the Letter Spacing Off Box. Bullets: Suitable for lists or un-numbered sets of instructions. Select by clicking on the appropriate box in the Options Dialog Box after selecting Justification. SETTING TABS. Enter Paragraph mode, select paragraph style you wish to place tabs in. Select Paragraph Style... from the TEXT menu. If you wish to create a new tag, click on New Style... and enter its name. Notice that the paragraph format Set Tabs... is dimmed (not selectable) if the paragraph tag doesn't have "TABLE" justification. To select "TABLE" click on Justification and select the text format "TABLE", then click on OK. Now select Set Tabs... and you will see the SET TABS POINTS Dialog Box. Each paragraph formatted in the Table style may have up to nine tab points. The simplest form of tab is just enter the position from the left edge of the frame, tab type "Left", and leave "Leaders" as "Spaces". These are like tabs you use in your word processor. When you press TAB, the cursor will move to the Tab position you set, and further text will be entered from that point. Aligning Text at a Tab Point: You must choose from one of the three basic tab types: Left, Center and Right. These control how the text is aligned at the tab point. ie: If you press TAB and type "SewerSoft", the word "SewerSoft" can be either left aligned, centered or right aligned about the tab point. Example: Left Tab Center Tab Right Tab I I I SewerSoft SewerSoft SewerSoft The remaining tab type is decimal, used for entering numbers. If you press TAB and move to a tab point you have defined as decimal, then the number you enter will be automatically aligned at its decimal point. Even if you do not enter a decimal point, the PUBLISHER will still align the number properly. Using Leaders: You can fill the distance to the tab point with dots or underscores. To do this, bring up the Set Tab Points Dialog Box and click on either "...." or "- - - -" under "Leaders". You can adjust the space between leaders as needed. Now when you press TAB, the space will be filled with the leader character you choose. Example: Clothing..........................123.45 Gasoline and oil...................88.50 I decimal tab with....leaders NOTE: For tabs to work properly, the tab positions should be placed such that Tab 1 is less than Tab 2, and so on through Tab 9. CONTROLLING TEXT SPACING. Spacing between Two Characters (Kerning): Kerning is the term for adjusting the spacing between letters on a line. To reduce the spacing between the letters in a word such as "S E W E R", place the text cursor between the letters you wish to move and press ALT K as many times as is necessary. Kerning can also be carried out using the Kern... command in the TEXT menu. Place the text cursor between the letters you wish to adjust and select the Kern... command. The Dialog Box offers + to increase space, - to decrease it. Remember ALT K will always adjust the two letters .5 points closer together each time you press it (no matter what value the Kern... dialog box contains. Hyphenation: Layout of text between margins is also affected by hyphenation. The PUBLISHER uses an automatic form of hyphenation rules that can be turned off by clicking on Hyphenation OFF. Select Paragraph Style... from the TEXT menu and choosing Justification... A dialog box will appear with the option to turn hyphenation on or off. Soft Hyphens: Normal hyphenation rules can be overridden by inserting a soft hyphen at the point where you would prefer a word to be broken. The word selected will then only be split at the position of the soft hyphen. You may have more than one soft hyphen per word. Enter TEXT mode, and move the cursor to the selected position. Insert the hyphen either by pressing CTRL - or by selecting Soft Hyphen in the TEXT menu. If you would prefer not to allow a particular word to be split at all, you can place a soft hyphen in front of its first letter. Fixed Spaces: Use a fixed space to link words or numbers which you do not want to be split over different lines during justification. Press CTRL SPACEBAR to insert a fixed space. Fixed spaces won't be stretched during justification. Spacing Between Words: Click on the Paragraph Tool, then choose Paragraph Style from the TEXT menu. The Word Spacing Dialog box allows you to select the maximum and minimum space in ems which you wish to appear betwwen the words in each paragraph style. The hyphenation hot zone is also set using the same box, and is the area at the end of a line of text within which the line break will be placed when a ragged right margin is being used. If automatic hyphenation is turned on, the hyphen will be placed within this zone. Spacing Between Lines: You may adjust the spacing between lines of text by clicking on Dimensions... button from the Paragraph Style Box. Type in the number of points you want from one baseline to the next. The default value is dependent on the current font you have chosen for that paragraph style. CHANGING FONT AND POINT SIZES. Select Font/Size... from the Paragraph Style option in the TEXT menu. Select new font and size required by clicking on appropriate boxes. The Character Set: The fonts available depend on the equipment you're using. Within a block of text, other characters can be obtained by selecting Font/Size... in the STYLE menu and then choosing the Bullets font. The keys for lower case 'a' to 'o' will then represent the 15 bullets, and if pressed one of the bullet characters will be entered. LINKING STORY FRAMES TOGETHER. If an imported story is too long to fit into a single frame it can be "poured" into subsequent frames. To do this, select the next frame, then click on the name of the story in the Library. The next part of the story will flow into the frame, either until it has all appeared or until the frame is full. Stories flow into the frames in page order. When the story occupies more space than is available in the frame(s), the bottom edge of the last frame will be dashed to indicate that there is more text than can be shown. If existing frames are sized, the text will be reformatted to fit. Info about length of story, frames it currently occupies and how much remains to be placed can be obtained by double clicking on the story's name in the Library. TEXT RUNAROUND. When a frame is placed over another frame which contains text, that text will wrap around the edges of the overlying frame. The text will be "pushed aside" by the top frame so that it always remains visible. This option can be selected by choosing Text Runaround in the OPTIONS menu. If the option is not selected, any text which lies behind a frame with an opaque tint will be hidden from view. Remember that if you type text into a frame without having first imported it, there is no Library entry. Therefore, text entered cannot be made to flow from frame to frame. This is important because text text that has run around the edge of an overlying frame may now exceed the size of the frame into which it was entered. If not linked to another frame, you will have to resize the frame to display any text that is not visible. WORKING IN BLOCKS OF TEXT. After marking a block of text you can move, delete, copy or restyle it. Before trying these options, you will need to mark the block. To mark a block of text, drag the mouse from one end of the block to the other. The marked block will be highlighted. A quick way to mark a whole word is to double click on the mouse while the pointer is on any letter of it. The word and space following it will be marked. Cutting a Block of Text: To cut a selected block of text to the buffer you can do one of the following.... - Press INS - select Paste in the EDIT menu or - press ALT V WARNING! Each time a block of text is cut to the buffer it replaces any text which was previously cut. Copying a Block of Text: To copy a block of text into the buffer without deleting it from the document, select Copy in the EDIT menu or press ALT C. Pasting a Block of Text: To paste from buffer to document, position the cursor and do one of the following- - Press INS - select Paste in the EDIT menu or - press ALT V You can paste in as many copies of the same block of text into as many documents as you like. RESTYLING A BLOCK OF TEXT. You can alter the style of a block of text in much the same way that you preset the style when inserting new text. In the Text mode, once the block has been marked, the STYLE menu, Library or the quick keys can all be used to select a style or combination of styles for that block. You can also change the typeface and the size of the block. First, make sure that the block has been marked. Then click on Font/Size... in the STYLE menu to display the Font and Point Size Dialog Box. Make the selections you want then click on OK. The marked block will take on the characteristics you have chosen. These selections will override any font or style attributes set with Paragraph Tagging. DELETING OR RENAMING A STORY. To remove a story from the Library, double click on its name and the resultant Dialog Box will allow you to rename the story or delete it altogether from memory. ---------- * ---------- STEP 3 - ADDING GRAPHICS You can use art from DEGAS, Neochrome, GEM Draw, Easy Draw etc in the PUBLISHER. Either 'line' art (Easy Draw, GEM Draw) or 'image files' from programs like DEGAS. There's a few drawing tools in the PUBLISHER too, though personally I wouldn't try drawing much, they're really only useful for touching up a few details. IMPORTING PICTURES. To load a picture into your document, select Import Picture... from the FILE menu. Select the type of pic you want from the Dialog Box. The name of the picture will be added to the Library, if a frame has been selected the picture will be placed in that frame. If no frame has been selected, just click on an empty one to select it and then click on the picture name. It will appear in the frame. HIDING PICTURES. Hiding pictures covers the frame with an X and will considerably increase the speed at which the screen is redrawn. Select Hide All Pictures... from the OPTIONS menu. This command is checked when your pictures are turned off. EDITING IMAGES. Scaling a Picture: Only for use with painted or bit-mapped art. Click on Scale Picture... to display a Dialog Box which allows you to choose whether to preserve Aspect Ratio of the picture or ignore it. Aspect ratio is the relationship between the pictures height and width, as measured in pixels. Note that 'Whole Pixel Scaling" prevents the 'tartan' patterns which occur when an image file is made larger or smaller by an irregular amount (ie: x 1.3) Cropping a Picture: Select Crop Picture from the GRAPHICS menu in order to select only a portion of a picture. When that portion fills the frame, the pointer will change to a pair of scissors and you can 'rubber band' the portion you want shown. The original pic remains unaffected. To undo the cropping, select the frame. Then click on the picture name in the Library. The entire picture will be shown in the frame again. Touching Up a Picture: Use Edit Picture command from the GRAPHICS menu to edit an image in the selected frame. The PUBLISHER will open a new window showing the entire picture enlarged four times. You can add or delete pixels using the mouse. Click on the Close Box to display a Dialog Box giving you the choice of saving the edited picture back onto the page or abandoning your changes. NOTE: You can only use this feature when in frame mode and have selected a frame holding an image file. DELETING A PICTURE. Double click on the picture name in the Library. Click on Delete in the Status Dialog Box. WORKING WITH OBJECTS. Objects are Frames or anything created with Graphic tools. They are not pictures or bit maps imported from other drawing programs. Objects have 'handles' around them when selected. Sizing Objects: To change the size or shape of a graphic object within a frame, first click on it with the arrow tool to select it. Drag the handle to the size and shape you want. If you don't want the frame contents stretched too, hold down the SHIFT key whilst resizing the frame. (This don't work with imported images however.) Moving Objects: Select the frame and use the grabber hand to move the selected object. If you want to copy a graphic object to another frame, use the buffer. Cutting and Pasting Objects: You can cut and paste graphic objects within frames or between frames by selecting them with the arrow tool and then using the Cut, Copy and Paste commands in the EDIT menu or the appropriate Quick Key. Stacking Objects: Graphic objects in a drawing normally are stacked in the order in which they were created. If you wish to change this order, you can do so using the Bring to Front and Send to Back commands in the PAGE menu. Select the object then select the appropriate command in the PAGE menu. DRAWING GRAPHICS. Use to draw simple line art in your document. Selecting a Frame: You can draw graphics in any selected frame. Switch to Graphics mode by clicking on the Pencil tool. Click in the frame to select it, the frame will fill with a grid of small dots. Using the Drawing Tools: Click on the drawing tool icon you want from the selection on the left hand side of the screen. ------------------------------------------------- - LIBRARY Window - ------------------------------------------------- ------------------------------------------------- - Straight Line - Graphic pointer - - - for moving & Sizing - ------------------------------------------------- - Box - Rounded Corner Box - - - - ------------------------------------------------- - Circle - Ellipse - - - - ------------------------------------------------- - Connected lines or - Freehand - - Polyline - - ------------------------------------------------- You can control whether or not the drawn graphics will snap to the grid by using the Snap to Grid... option on the GRAPHICS menu. Text is best added by placing in a seperate frame from the drawn objects and then superimpose the text frame on the drawing. Changing the Line Style: Choose the thickness and style of line you wish to draw by clicking on the Line Style... command in the GRAPHICS menu. Changing Fill Style: Click on Fill Style... in the GRAPHICS menu to select one of 36 fill styles. Note that you can't fill a shape drawn with the straight line, free-hand line or poly-line drawing tools. You may use fill styles in two ways: either on a previously drawn shape (by selecting it and then choosing a fill pattern from the menu) or by first choosing a fill style and then drawing the shape. Any subsequent shapes will also use the new Fill style. ---------- * ---------- STEP 4 - ADDING THE FINISHING TOUCHES The difference between an "okay" looking document and a "great" document is often nothing more than some slight adjustments and on more pass through the printer. Consider your first print-out a draft. ---------- * ---------- STEP 5 - PRINTING YOUR DOCUMENT The number of typefaces and sizes of fonts available depends on your printer. To print the document in memory, use the Print... command in the FILE menu. If you select the Collate option from the the dialog box displayed, each copy of your document will be printed in the order 1,2,3... 1,2,3... etc. rather than 1,1... 2,2... etc. ADJUSTING THE PRINTING POSITION The printing position on the page varies for different printers and depends on whether you are using continuous paper or a sheet feeder. There may be a difference between the position on screen and on paper, the printed version being moved down and right compared with its screen position. You can adjust the printing position by using the the test card document. 1. Select Open... in the FILE menu. Select TESTCARD.DTP which you'll find in the DTP folder on the DATA disc. 2. Select Show Rulers in the OPTIONS menu. 3. Select Print... in the FILE menu to print TESTCARD.DTP. 4. Measure how far up and to the left the print position should move to match the screen. 5. Select Set Column Guides... in the OPTIONS menu and enter the values you measured into the Vertical Page offset and Horizontal Page Offset fields. 6. Print the document again and repeat the process until the output looks just right. 7. Select Save in the FILE menu to save TESTCARD.DTP When you are happy with the print position, it is a good idea to modify your default style sheet so that all new documents have the correct print position. Follow these steps: 1. Click on New... in the FILE menu. 2. Click on YES when asked if you want to load a style sheet. 3. Select DEFAULT.STY which will be found on your STARTUP disc (if you're using a DS drive). 4. Select Set Column Guides... in the OPTIONS menu and enter the position adjustments into the VPO and HPO fields. 5. Select save Style Sheet... from the FILE menu to save DEFAULT.STY to disk. Now every time you create a new DTP document it will use this style sheet, so your documents will be printed in the correct position. SAVING YOUR DOCUMENT AND QUITTING THE PUBLISHER Saving Your Document With The Same Name: Select the Save Command or press ALT S. The document remains unchanged in memory. Saving Your Document With a new Name: The Save As... command allows you to change the document name. The document remains unchanged in memory. Click on Quit... to exit to the Desktop. ---------- * ---------- THE 'QUICK' KEYS CTRL (rt cursor) Move cursor right one word. CTRL (lft cursor) Move cursor left one word. BACKSPACE Delete character to left of cursor. DEL Delete character to right of cursor, cut selected block of text, frame or graphic. CTRL SPACEBAR Insert fixed space. CTRL Insert soft hyphen. INSERT Paste in text, a frame or graphic. ALT A Repeat last Find or Find and Replace. ALT B Bold Text. ALT C Copy a frame, text or graphic. ALT F Find a string of text. ALT G Go to page. ALT H Show/Hide tool box. ALT I Italics text. ALT K Kern two characters together by 0.5 a point ALT L Light text ALT M Switch between tools ALT N Normal text. ALT O outlined text ALT P Print document ALT Q Quit program ALT R Find and replace in your text ALT S Save file ALT T Presents Font and Size dialog box ALT U Underlined text ALT V Paint in a frame, text or graphic ALT W White text ALT X Cut out a frame, text or graphic ALT 0 Dispaly page at half size ALT 1 Dsiplay page at actual size ALT 2 Display page at double size ALT 3 Display whole page on screen ALT 4 Display 2 pages on screen ALT 5 Bring a frame/graphic to front ALT 6 Send a frame/graphic to back ALT + Superscript text ALT - Subscript text TIPS TO REMEMBER 1. All emphasis is no emphasis. Strive to have the readers eyes focus first on the most important part of your page. Use "bomb bursts" and reverses sparingly. 2. Avoid clutter. Too many elements on one page are difficult to wade through. 3. Don't mix too many type fonts and faces. Don't mix serif and sans serif faces for a start! No more than 3 sizes of type per page. 4. Strive for contrast. Leave some white space, add a high contrast graphic. 5. Avoid negative white spaces. Have white space open into your margins, rather than be surrounded by text or art. 6. Position artwork so it faces into the page. If possible, into text. 7. Don't overuse rules and lines. Try using text rules only between unrelated blocks of copy. 8. Strive for a 3D look with your artwork. 9. For multi page documents, establish a style sheet. 10.Consider the artful arrangement of all the elements on the page. Focal point? Hold your page up to a mirror, it should look good inverted as well. 11.Is it complete? Set your document aside and come back to it after a while. 12.Is there anything you can do to make it better? Different inks, colored paper, folded unusually? Note that 8 sample documents are included on the TIMEWORKS PUBLISHER discs. ----------***---------- Thanks to Mr D for the original program and documentation. Sewer Possum VDU 3.0 DOCS edited by Sewer Possum for use on DOC DISC III. We've included this DOC as an educative exercise for those ST neophytes to whom viruses are a mystery...read on dear child, savour this literary ambrosia! ****** USER MANUAL for the "Virus Destruction Utility" version 3.0 The main features of this program are: * Recognition of virtually all software that uses the disk's boot sector This means that most commercial programs will not be damaged by this virus killer program! * Recognition of ALL known ST viruses - both bootsector-and link viruses * Possibility to repair previously damaged boot sector software * All data on your disks remains 100% intact! * Immunizing of disks against all known bootsector viruses With this tool handy, you need not worry about the virus as much as you used to: You can simply use it to de-infect your disks and programs, destroying the virus and leaving all other information intact. MAKING A BACKUP The VDU contains no copy-protection, as it is my belief that copy protections decrease the userfriendlyness of programs, especially when the program in question happens to be a utility program like the VDU. Copying it to others, however, is illegal and depriving me from my modest income made by sales of this product. Your name and license number are contained in the program, so that illegal copies can be traced back to the offender. VDU also runs from harddisk or drive B, from any subdirectory. STARTING THE VIRUS DESTRUCTION UTILITY Turn your computer off and on again with the VDU disk in drive A. After some seconds, a desktop will appear that contains one file name "VDU_3_0.PRG". Double-click with the mouse on this file to load and run it. The VDU will present its start-up screen after some more seconds, and it will be ready to use. It is advised to boot your system with the VDU disk because it contains a virus-free and immunized bootsector. Theoretically, no virus can be present in memory this way (turning your system off and on again assures that no possible reset-resistant viruses survive). WORKING WITH THE VIRUS DESTRUCTION UTILITY On startup, an alert box appears on the screen. This kind of alert box will be used throughout the program, and it offers some interesting extras to the standard GEM alert box. For example, it is not only possible to select your option by clicking the left mouse button on it, but your selection can also be made by using the corresponding function keys, displayed on the left. The option that is inverted is activated when you press either the RETURN or the ENTER keys. There are five options available to the user from this first alert box: F1 Search'n'Destroy Viruses F2 Repair Disks F3 Information about VDU 3.0 F4 Display Licence number F5 Quit to the Desktop SEARCH'N'DESTROY VIRUSES Following the selection of this option, another alert box is put on the screen, allowing you to select the drive on which to start searching'n'destroying viruses. Please note that bootsector viruses can only be searched (and destroyed) on floppy disk drives: Drives A (and B). Link viruses can be destroyed on either floppy-or hard disk. Once the drive to use is selected, you can select whether you want to examine data for bootsector-or link viruses. Depending on your choice, you'll get an alert box to insert the disk to examine or an item selector box respectively. The rest of the procedures are self-explanatory. There's just one, rather important, note: IT IS POSSIBLE THAT A PERFECTLY HARMLESS DISK IS SUSPECTED OF BEING A VIRUS!! This means that either the boot sector of the harmless program is not yet recognized and implemented in the VDU, or that it is indeed a new virus! In these cases, I'd very much like to receive either an original version or a backup of the disk that is suspected, so that I can update the VDU. Of course, you'll get your disk(s) back, together with a *free* update of the VDU if you supply your original VDU disk. ALSO IF YOU KNOW THAT THE SUSPECTED DISK IS NO VIRUS, I'D VERY MUCH LIKE TO RECEIVE IT, BECAUSE OTHER PEOPLE IN YOUR POSITION MIGHT NOT KNOW THAT AND ACCIDENTALLY DESTROY PRECIOUS SOFTWARE!! It is NOT necessary to send a properly operating version of the software on the disk that is meant here. Some software is copy-protected, and can therefore not be copied easily - but all I need is the bootsector and that's on a part of the disk that can ALWAYS be copied... Please send the disks in a good envelope that can also be used for the way back, and write "CONTAINS MAGNETIC MEDIA - PLEASE DO NOT X-RAY" on it in clear, large characters (to minimize loss of your valuable software). BOOT SECTOR VIRUSES Boot sector viruses are the easiest to recognize. They occupy the first sector on a disk, commonly known as the 'boot sector'. They are destroyed by zeroing the boot sector except for the necessary data that's also present there (e.g. the disk format data or Bios Parameter Block). The only difficulty is that there are many innocent programs that also use this bootsector. Most of those are recognized by the VDU, but some are not. That's what the update service is all about. Please note the capital letters on the previous page concerning this small problem. LINK VIRUSES These viruses are the worst. They merge themselves to a .PRG file, and are executed each time that program file is run. They keep on multiplying themselves onto other .PRG files on the disk, until they notice that a certain condition has been set to trigger them (this can e.g. be the system data and time, thus creating the principle of a time bomb). Destroying them is also quite difficult, but the VDU knows how to handle them. REPAIR DISKS If you find that you have accidentally destroyed a suspected but apparently completely innocent bootsectored disk (by earlier virus killers, for example), this options allows you to repair many of them. If you have for example destroyed your copy of the popular game "GOLDRUNNER", it is possible to install a proper bootsector on it again, thus repairing the program. This option can save a lot of trouble and money. After selecting this option, you will get some alert boxes on the screen so that you can select bootsectors from a list. Selecting is done by clicking on the arrows up and down in the alert box (the more arrows, the larger the jumps in the list are). In most cases, the bootsector will be present in the list, but what to do when it isn't? When it isn't present, you can order a VDU update, hoping that the bootsector you want is included in that update. But I cannot promise you anything with regard to that, so you'd better also supply the address and telephone number of the company that made the software whereto the bootsector belonged, as well as the name of the piece of software. SUGGESTIONS Nobody is perfect, and neither am I. If you think that something in the VDU setup should be altered for easy of use, or if you happened to have come accross a bug in it, I would greatly appreciate some feedback at my address. I will try to include the alterations in the updates. ST NEWS The VDU was started as a small PD program for a disk magazine called "ST NEWS" (distributed in England by Page 6 magazine). Versions 3.0 and up of the VDU are no PD, but news about updates and the like is always included in "ST NEWS". And it's also a perfect way of keeping into touch with the ST world outside. FEEDBACK Feedback, non-recognized disks and requests for a VDU update can be sent to: Richard Karsmakers Kievitstraat 50 NL-5702 LE Helmond The Netherlands Updates can be ordered by sending 4 to the above address, or transfering the money to giro account number 5060326 of Richard Karsmakers, Kievitstraat 50, 5702 LE, Helmond, The Netherlands. Please specify your license number!! If you choose not to order an update after receiving a letter, you will not get further update notices, although you will still be able to order one. Not until after you have ordered an update will you get further letters. 0660103030566 9[....................................................] WHIRLIGIG INSTRUCTIONS ====================== GAME CONTROLS MOUSE LEFT BUTTON -FIRES MISSLE MOUSE RIGHT BUTTON -RELEASES CHAFF MOUSE FORWARD -INCREASE SPEED MOUSE BACK -DECREASE SPEED MOUSE LEFT -CONTINUOUS LEFT TURN MOUSE RIGHT -CONTINUOUS RIGHT TURN MOUSE CENTERED -NO TURN ESCAPE -ABANDON SHIP(USEFULL FOR ITALIANS) CONTROL -CONTROL PANEL UP/DOWN DELETE -MUSIC ON/OFF SHIFT -PAUSE/CONTINUE CONTROLS TO BE USED BETWEEN EIGNSPACES V -VISUAL SCAN OF SHIPS YOU ARE TO ENCOUNTER IN THE NEXT SECTOR P -PERFECT SOLIDS YOU STILL NEED TO COLLECT RETURN -RETURN TO SECTOR MAP DISPLAY MOUSE BUTTON -ENTER THE NEXT EIGNSPACE ON SCREEN INFORMATION THE CONTROL PANEL FLY THROUGH THE CENTRE OF THE STARGATES TO GET TO THE NEXT LEVEL. FUEL AND MISSLE GUAGES DARKEN AS THEIR LEVELS DROP.THE RADAR MAP DISPLAYS STRATEGIC INFORMATION.ENEMY SHIPS CANNOT BE PLOTTED BY YOUR RADAR. YOUR SHIP-YELLOW DOT DEPOTS -BLUE DOTS STARGATES-WHITE DOTS PLAYING THE GAME THE GAME TAKES PLACE IN THE WHIRLIGIG WHICH IS A VAST NETWORK OF MINI-UNIVERSES OR EIGNSPACES WHICH ARE LINKED TOGETHER BY STARGATES.A STARGATE IS A BLACK HOLE THROGH WHICH YOU CAN TRAVEL ONLY ONE WAY. OUT OF THE BILLIONS OF EIGNSPACES FIVE HAVE SPECIAL PROPERTIES MAKING THEM PERFECT SPACE,THEY CONTAIN THE FIVE PERFECT SOLIDS.THESE SOLIDS ARE THE KEY TO THE WHOLE GAME.BY MANOUVERING CLOSE TO IT YOU CATCH IT,DRAC IT THROUGH A STARGATE AND TOU CAPTURE IT.CAPTURE ALL FIVE SOLIDS AND YOUVE WON. THE PERFECT SOLIDS POSITIONS ARE- PERFECT SPACE 6 TETRAHEDRON 4 FACES PERFECT SPACE 28 CUBE 6 FACES PERFECT SPACE 496 OCTAHEDRON 8 FACES PERFECT SPACE 8128 ICOSAHEDRON 20 FACES PERFECT SPACE 33550336 DODECAHEDRON 12 FACES SHIPS -YOU BEGIN THE GAME WITH TWELVE SHIPS FUEL -FUEL IS ONLY USED UP WHEN YOU SLOW DOWN,SPEED UP OR TURN,FLYING ON AN EVEN STRAIGHT COURSE CONSERVES IT.IF YOU RUN OUT OF FUEL AND CANNOT MOVE PRESS ESCAPE TO ABANDON SHIP. MISSLES -ALL MISSLES ARE THE HOMING KIND AND HOME IN ON ANY OBJECT IN THE TARGET AREA.IF THERE IS NO ENEMY TARGET AND YOU FIRE A MISSLE YOU BLOW YOURSELF TO BITS.YOU CAN ONLY HAVE THREE MISSLES IN THE AIR AT ONCE. CHAFF PODS -WHEN YOU RELEASE A CHAFF POD IT HOMES IN ON AN ENEMY MISSLE,AN ENEMY SHIP OR A FORIEGN OBJECT-IN THAT ORDER OF PRIORITY.IF THERE ARE NO TARGETS IT CANCELS ITSELF. YOU ONLY HAVE FOUR PODS SO USE THEM WISELY. STARGATES -THESE ARE THE GATEWAYS TO OTHER SECTORS,BUT YOU CAN ONLY TRAVEL ONE WAY THROUGH THEM.SOME SECTORS HAVE AS MANY AS ELEVEN STARGATES.TO PASS THROUGH THEM YOU MUST FLY THROUGH THE CENTRE WITHOUT TUTCHING THE EDGES. DEPOTS -TO FIND THE FUEL,MISSLE OR CHAFF DEPOTS HEAD FOR A BLUE DOT AND AS YOU FLY CLOSE TO IT THE FUEL,CHAFF OR MISSLES WILL BE BEAMED ABOARD AS THIS HAPPENS THE SCREEN FLICKERS-WHITE FOR FUEL,YELLOW FOR MISSLES OR BLUE FOR CHAFF. RUTES TO PERFECT SPACE 33550336 -IT IS ALMOST IMPOSSIBLE TO COME ACROSS THIS BY CHANCE SO HERE'S A ROUTE TO FIND IT BY ROUTE 1 (F=FUEL,M=MISSLE,C=CHAFF DEPOTS) -0-1 FMC-2-4M-5F-6C-18-54-66C-78-156C-157FM-158-316MC- 317F-318-330-534-546C-1638-2730-5460-16380-16381FMC- 16382-32764M-65528-131056MC-262112-524224M-1048448- 2096896MC-4193792-8387584M-16775168-33550336MC UNPLUG THE JOYSTICK IN PORT 1 BEFORE LOADING THE GAME OTHERWISE THE GAME WILL LOCK UP IF IT IS TOUCHED AT ALL DURING PLAY THIS DOCUMENT WAS TYPEDFOR YOU BY KAM OF THE BLADERUNNERSANDPRESENTEDBYSEWERSOFTWARE ZAK MCKRACKEN - The Final Solution - By COSMOS Transferred from Amiga for use on SEWER DOC DISCS by Sewer Possum. Thanks to Pirasoft/ACU BEDROOM ---------- In the bedroom open all the drawers and pick up the phone bill,the fishbowl (including Sushi),and the kazoo. Go to the TV/kitchen and pick up the cushion on the wall. Insert the TV plug into the power outlet then pick up the other cushion and get the remote control to turn on the TV. After you have watched the TV,open the cupboard and get the yellow crayon. Then get the butter knife and the egg in the fridge. Go back to the bedroomand get the cashcard from under the desk and tear off a piece of wallpaper near the door. Use the crayon on the torn wallpaper and you now have a strange map. Go through the TV/kitchen and get the small key near the outer door. Then go down the stairs and outside. TO BAKERY --------- The bakery is just left of the stairs. Push the button three times until the baker throws some bread at you then pick it up and head for 14th avenue. TO LOU'S LOANS --------------- Buy the guitar,toolbox,golf club,noseglasses,hat and wetsuit with your cashcard then go to the hair salon. TO HAIR SALON --------------- Open the toolbox,and use the wirecutters to get the bobby pin sign, then head back to 13th avenue TO PHONE COMPANY ------------------ Wear the hat and noseglasses and pay your phone bill. The alien will think you are one of them! Then get the application and use the crayon on it, and then head for the mailbox at the bottom of the stairs outside your room. Use the small key and place the application in the mailbox and close it. Then go to the TV/kitchen and use the monkeywrench on the pipe under the sink. Put the stale bread in the sink and turn on the button. Get the bread crumbs and then use the fishbowl in the sink.(Sushi has a safe home and Zak has a helmet) Then go to the bedroom and pick up the corner of the rug. Use the monkeywrench on the loose floor boards and you now have a hole that leads to the aliens secret room. Then go outside to the bus. Use the kazoo to wake up the driver then use your cashcard in the reader. TO SAN FRANCISCO AIRPORT -------------------------- Buy the book from the devotee and use the ticket to seattle IN AIRPLANE ------------- After the stewardess has given you the peanuts, head for the toilet and use the toilet paper in the sink. Turn the sink on and when it overflows push the help button on the wall. Quickly head to the front of the plane and open the micrwave oven,put the egg in it and turn it on (What a mess!). Go back to the seats and when the stewardess starts cleaning the microwave get the cushion and the lighter that falls out. Open all the bins until you find the oxygen tank then sit down. AT SEATTLE ------------ Get the branch from the tree and give the peanuts to the squirrel. Use the golf club on the loose dirt (I know the feeling) and head into the cave. Use the what is function to find the birds nest and use it in the fire pit with the branch and the lighter to start a fire. Go to the strange markings and use the crayon on them. Once the door is open go in and use the remote control to get the blue crystal.Then go back to San Francisco. AT SAN FRANCISCO ------------------ Go to your mailbox and by this time a letter should be there. Its your KING Fan Club Membership. Head for 14th avenue. 14TH AVENUE ------------- Place the blue crystal in the slot in the red door. Annie will appear and tell you her dream. Give Annie the butter knife and the rope. Switch to Annie and look under the blotter to get her cashcard. Send her to Zak's bedroom and use the rope in the hole in the floor. Switch to Zak and go to London and through to Katmandu. AT KATMANDU ------------- Go right to the guard and give him the book and he will let you in to see the guru who will tell you how to use the blue crystal. Then head to the prison. At this point I suggest you save the game as the next part has to be done with split-second timing. Take the flagpole and quickly use the cashcard in the yak to escape before the policeman gets you. Go to London and through to Zaire. AT ZAIRE ---------- Go to the Shaman and give him the golf club. He will show you a secret dance which is in fact a combination to a door. Make sure you write it down! Then go back to London and to Miami. AT MIAMI ---------- Give the book to the drunk and he will give you a bottle of whiskey. Then buy a ticket to Bermuda. AT BERMUDA ------------ The pilot will give you a parachute and eventually you will get taken into a spaceship. Note the combination the pilot uses. Then push the button on the inner door to meet the KING. Show him your fan club membership and give him the guitar. Then use the Lotto-dictor to get tomorrows winning numbers. Head to the exit and use the same combination the pilot used. You will find yourself in mid air so use the parachute and eventually you will land in the ocean. The cushion will keep you afloat. Use the kazoo and eventually a dolphin appears. At this point save the game. Use the blue crystal on the dolphin and use the dolphin to quickly go underwater to the right side of the seabed. Remove the seaweed and take the glowing device and quickly head back up and give it to Zak. Switch back to Zak and by this time an alien will appear and take you back to the secret prison. Don't worry as you have Annie stationed above and when the alien leaves send Annie down to pull the switch. When Zak has recovered go to the cupboard and get your artifacts then go back up the rope with Annie. Give the whiskey to Annie. Then go to Lou's Loans and buy a Lotto ticket. Use the numbers you got from the space ship. Then go to the airport and get a ticket to Mexico. AT MEXICO ---------- Go to the Mayan temple and enter. You will have to search in the dark for torches to light with your lighter. Head towards the centre of the temple. The green figures on the walls are the outer tunnels and head towards the blue figures. This is a hit or miss affair but the fewer doors mean you are heading towards the centre. Eventually you will find a room with a statue. At this point switch to Melissa and Leslie on Mars. ON MARS ---------- Use the girls to get the boombox (Melissa),data tape from radio, and the cashcards and fuse from the glovebox in the shuttle bug. Note the oxygen tank. Make sure you use this before heading off. Take Leslie to the left of the shuttle past the hut and use her cashcard in the monolith slot. Get the token and go into the hut.Use the token to open the metal plate,take the old fuse out and put the new one in. Close the Mars door and open the hostel door. Go in and get the vinyl tape from the locker. Open the lockers and get the flashlight. Then pull the covers on the bed and Leslie will pick up the broom alien. Get the ladder to the right. Go back to the shuttle. Give the vinyl tape , ladder and torch to Melissa. Top up the oxygen for both girls and the send Melissa right to the Mars door. Use the ladder on the mars door and use the combination from the Shaman. There are three buttons. Push left one once,right twice,centre once,right once and centre once, and the door should open. Go to the Giant Chamber and to the first door on the left. Use the vinyl tape on the data tape and place it in the boombox. Use the stairs on the pedestal then turn on the boom box to record. Touch the sphere on top of the pedestal and the door will open. Go to the middle door and you will notice that the sphere is damaged. Turn on the boombox to play and the door will open. Go to the third door and open it with the ladder. Then go to the giant statue on the right and read the strange markings. Make a note and send Melissa back to the shuttle. Put the fuse back in the glovebox and use the oxygen. Switch back to Zak. IN MAYAN PYRAMID ------------------- Use the crayon on the strange markings to make it the same pattern as the one on mars. The statue will open and you can take the crystal shard. Get out of the temple, heading to the outer doors and go back to San Francisco. AT SAN FRANCISCO ------------------ Cash in your Lotto ticket and you should have 10,000 dollars extra. Go to the airport and get a ticket to Lima. AT LIMA --------- Put the breadcrumbs in the recepticle. At this point save the game. Use the blue crystal on the bird and head to the LEFT eye of the Hill statue. Take the scroll and quickly head back to Zak and give it to him. The alien will appear again and take Zak back to the cell. Use Annie to rescue him as before. Now take Annie and Zak to London. IN LONDON ----------- Give Annie the pole,wirecutters,two pieces of yellow crystal,scroll and whiskey if she hasn't got them. Send Annie out the door to the guard. Give the whiskey to the guard and when he falls asleep switch off the electric fence. Go to the far right and use the wirecutters on the fence to get to Stonehenge. Use the pole on the altar and place the two pieces of crystal on the altar.Read the scroll and the crystal will be fused together. Take it back to Zak and give it to him. Now send Annie and Zak to Cairo. AT CAIRO ---------- Send Zak to Zaire to the Shaman and he will teach him to use the yellow crystal. Now using the map Zak can teleport to any of the platforms that have not been damaged. Use it to go to Lima and get the candelabra from the right eye. Then teleport to the Pyramid in Cairo. Use the lever to open the stairs and light the torch in the lower room. Then go to the sphinx to the strange markings.Switch to Annie and bring her there also. At this point go to Mars and send one of the girls into the first room in the Giant Chamber with the flashlight. Follow the maze until you come to a statue with markings on it. These are the markings needed to open the sphinx. Send the girl back to the shuttle and switch back to Zak. Use the crayons on the sphinx markings and open the secret entrance. Follow the doors with a man and a shining object on them to get to a secret room. Send Annie in on the same path as she needs to decipher the hiero- glyphics. Push the buttons in the order required and then use the crayon to add to the wallpaper map. Now send Annie to the pyramid making sure she goes out the same way as she came in.(There is another secret room which holds the guardian who you don't wish to meet) Send Annie up the secret stairs in the pyramid. Now get Zak ready to go to Mars. On the wall there is another pattern needed on Mars so make a note of it. Put the wetsuit on ,use the oxygen tank,and the fishbowl with the duct tape. Put the fishbowl on and use the yellow crystal to teleport to the Mars Face. MARS FACE ----------- Use the pattern on the markings and go through the centre door. Follow the white doors and you will come out in the Giant Chamber. Go to the centre door and get the ankh,then go back out to the right door to the force field. Put the ankh in the panel and push the button on the machine. Then get the keys(one of them will crumble) and go to the Shuttle. Make sure everyone tops up with oxygen. Send Leslie to sweep the sand outside the hostel with the broom alien. Bring everyone to the Monolith and buy tokens. Make sure the girls have two each (for return fare) Take the tram to the Martian Pyramid with Zak and the two girls. MARTIAN PYRAMID ----------------- Assemble them all outside the door and get Leslie to sweep the sand with the broom. Use the bobby pin sign to open the door and send them all in to the sarcophagus. Use one of the girls to push the feet on the sarcophagus and a secret stairway will open. Send Zak and the other girl up the stairs then release the feet to close the stairway. Use the golden key in the panel and position Zak in front of the power crystal. Get the girl to push the button in the panel and quickly switch to Zak to get the power crystal. go to the left of the room and get the girl below to push the feet again. Bring everyone down and send the girls back to the shuttle before they run out of air. Close the door on the shuttle remove their helmets and use the controls to send the girls to earth. Teleport Zak to the secret room in the pyramid in Cairo. Assemble the glowing piece, candelabra and crystals and then use Zak and Annie to pull the switch on either side. Then sit back and watch........... YOU HAVE SAVED THE EARTH ONCE AGAIN !!!!!! ????????0<0??0?3?