8(CA@AUTOEXEC.BATEC.BAT 000 c}E q0 \C)CC8`DCeECiD` RP h1$E ȍ @y b Y)hܭ]L]` q  DMD   u j)`0  ,p0i2 &28jJ1f02 9 g iJf0i1)xԍӭ232002XԦ`  *'  } *(L `(  L l pL[,L] C i0 } p  gފދLh ( LD 0  C  C  \i +$+0'}; $(%)  b L[C `D P^߰")(݃   $DD}G@НL]S")M T H0 G$Ș݃ b 8$}$%8(() T `$E0(0)8`$GE` P} Li 8GD }L[ PH >iJ ;  yyB } ' |L[ "E( % H$ H#`L]B  0 G LO<  ( d lH۪!A3 A }jA !B EIC Y$E0 F  < 7 JN8Ndâ!,P h0ʠJd,6 } ' r/ $ ɛ ` '  L[  l }-     }    L[L  }  '  L[   p  ` g  l }) g ' }L[) ̠,L]T-0 |LM N݃:ː6UV LM N L(TU N,)M}LL[IL3GDIɛ ɜ DI  , JȊGм  G I) GȦ=}*GG ȄI1200820I H1E 1h0hIGI2ȢI`FE 0ɛ rɛ$ l '}蚦TTUVD`M L$:;Pyȱ$` r  iȱ$/:ȱ$VWyA**⩀ / }`$***? mL]-+ȱ$ɛ m* ? g. $0f.?'@BrAsTt[ }0: gL  `$0`j`& CpCi s L0JCܢj? I#}𴽎F ގМގ& & 0 C4 08L`0   | 레L] EGȽGȽ}G | E` 8,  }EG)݀G)ȱGȱG`"!L] l!i}栠$8  (IƭIp  h,g+j? 8 ii(Lq)! }S S0$}) E9`H)N,L]8GH Lq`gNgfj****8jHi h` } 2J  &e2i`"%?&;^$IM ! ! <u hh`$}Ev옝^! 1EHFHjm GHm H`u$Ev`L=? +`!,pFE ȄD8 }q D&E`I0` i`+DOS SYSMOC.I  J ٍ = ) F)}8`Ll T!U<; Ln <JM -18    HH =}D 1 :  /1[F:M #.! 0`>C #   #`>   e}L'>/b;\I\o@ @LK~ L  % /e  L ; H}H0S0N:;=91D,1ɛK$ɛ`:;ʾ  ,ɛ}`XYȄ #`DTDRLUFFFCICLRSJ==CIYEEONSMDLNOOUAOOOARPLNCL#####PANVBNFR*),-PQORa/%<}) j ө  RES L%-, # 3 0 %   4(H 4(` }( 3  #  ZOiۨ L4RE 3 =F S Z +8!} 0+  FF % 4 4& 4(X)Y    # 4 ʤ Ȅ L"}F F LH hL4`*J 0 B B 0a   8#}    Lkl  );<  : ` 0 } T T 7̀΀$}LIl <;`<L$ 3   #/ ! R( 7 7   7 89i L7 ,(&  %} L480  ` Ln    `   HJJJJ h) ii0HI B V`0  ,BLV&}[J  B Vso Fhh` GH ,H hɐɀɡ)HDCȱCɛeCD먥D h'}N MSп` ED` OIH`hhXhh  nL Free FilesBreakI/O-Error 138Disk f(}qllWrite protectedFile MismatchBad Filename}Disketovy magazin FLOP 33, 1/95 --------------------------------File lock)}edDevice doneDirectory fullFile not foundBad Load FileNot DOS II+Bad HexAbort-> Source-> DestinationD1:+DOS SY}'FLOP 33'TITLE33FLOP33??????@Z\Us_UW5\=sPhLPLVX VOҍO OUOOOOOOOOROWOOOͭPOPO tUO tUOOO{P,}L\HHHO·OLPOO·OOΆOLP UOOΆO VO 6QO 6QO 6QO 6QOҭOOҭOOҭ7OOҭ-}8OOҭWOOҭXOOҭwOOҭxOOhhhLb OUOOOνOϽO dQOOНOO` mUO***).}OOO)? QQQQLQQQRR#R0R=RTRkRuRRRRRRRRRSS*S;SMSkSySSSSSSSSSSSSTT T*T7TDTQThTTTTTT /}UU9U mUOO` mUOO` mUOyOO` mUOyOO` FUOOO` FUOOO` mUmOOOOOO` mUmOOOOOO`0} FU `UO` mUOO` mUO` mU`OOO`OOO` FUOO `UOOOOOO`O`O`OOO `UOL1}ROOLR mUOOOO` mUOOO` mUOOO` mUOOO` FU `UmOOO` FUOO `UmOOO2}OO` FU `UyOO` FU `UOO`OO`OO`OO`OO` FUOO FUOOLR mUOOO` mUOOO`O3}OLROO` FUO O` FUOJO`OOOLSOOOLS FU ҙO` FU `U9OO` FU `UOO` FU `UYOO` FUOOO4}OmOO` FUOOOOmOO` FU `UmOO}OO` mUH mUH mUOhOhO` FUH mUT mUT FUOaWOhOO` FU5} FUOyOOO` FU FU8OOOO` FU `UyOOؘO` FU `UO8OOOO` FUOOO` mUmO`HO O 6} Oh`OбάO`б`OOέOOOάO`OOOiOOiOάO` tUH tUO/hOOO tU4O tU7}5O tUTO tUUO tUtO tUuO`hO)O tUOOOOOLU!O)OʊO OOOOLU *O) tUH tUHOOO8}OOhOhOLU0.O)OO tUO tUH tUOhOLU tU tULU@hh VL*Qb \҈` tUOLUO VO VO9} VO V` OUOOʊO` UOO UO UOLVOOL!W)OOLVOOOOmO UOOOOO:}OO`8 j jFAn0R"zU4w`N8';}xpjd^WR P(X7YNXTXX7YNXoXX7YNXTXX7YNXoXXRYNXTX YkYNXXYUYNXTX-YYNX<}X XYYdddd d d d ddd d d d dddZ<@Q[Q=}<@<5@QHD<5<D<Q/5D<5<DD<5/5<}[QlQ[QylZQQQlylllyylllyd&".`W.aW@ǀB@@ ?}@/5@@@@@ A@  @@@@@@@ @@@@@ @})/[ҩlmK0[1rx|lԩoЍ Щ̍ȍ[ PЩ=/A}  ԍ Ԡ_"[i|Щ|8"[Ѝ ЍЬ#[^:l#[^:m#[Ș)#[)LZ/ԩ@ԩB}Ѝ P)`ppppppppppN`AK[HH[[ ԍЩtC}[hh@2468:<><:8642~D}*** FLOP33 DEMO ***DEMO, GRAFIKU A HUDBU STE}VORIL RADEK STERBA, RASTER 1995.4TOTO DEMO BYLO VYROBENO SPECIELNE PRO UVOD K MAGAZINU.PROSIM VSECHY "CRACKERY", ABY SE MI F}V TOM NERYPALI A RADEJI VYROBILI NECO SAMI.POKUD NEBUDETE MOCI PRIJIT NA SYSTEM, JAKYM JE TOTO DEMO UDELANO, TAK VEZTE, ZE JG}E TO CELKEM SNADNE.STACI PAR LET PRAXE A PAK UZ JEN VYUZIVAT HARDWARE ATARI!H}I}J}  !"$%K}&()*+,./012345567899:;;<<==>>????@@@@@@@@@@????>>==<<;;:998765543210/.,+*)(&%$"!  ?L}3?<<??/M}URR?UU/UTURR?UU/UTURR?UU/UTURR?N}UU/UTURR?UU/UTURR?UU/UTURR?UU/UTURRO}?UU/UTR?/R?*/*8R? /"P}R? /"R? /"R? /"8R? /"Q}R? /"R? /"R? /*/R? /R}U/R? /UTU/R? /UTU/R? /UTU/R? /UTS}U/R? /UT U/R? /UTU/R? /UT?U/R? /UT3 T}/R? / 0R? /* ?R? /#> 0?0R? /,U} 0<8R //? 0R // 0R //< 0R? //V}< R*//0P///?UU/UU//?0UU/UU//W}0<UU/UU//>UU/UU//?? 0?UU/UU//3 UU/UUX}// 0UU/UU//0 UU/UU//0UU/UU//0?/Y}//?03 0030?33?333 0 ?Z}??3?0 303??ꪪ[}Ϫ>:ꪪ:ꪳΪꪳ:>:ì::\}:>:êγ p5U\sUU=| s=s5\Us_UW5\=s]}|_U\5UW_|??????@Z\Us_UW5\=se <<lllllllp88pl8||l8|||l8|~l8 8` 8< x |~8l8v00 _}0 0`||8x~||||``<`| >||||~|0 0 ||`0 `} 0`}je&t% p@edt)m ne( se objevil ten nov` reader v grafice. Je pravd%podobn[, (e jsem v(dycky n%kam str'il svoje jm[no, aby moje M?}ego m%lo z 'eho ()t, to( se pod)vej. P@)sp%vky chodily do FLOPu od r+zn`ch lid), kte@) je vytvo@ili a tak. Hodn% jsem bral M@}taky z n%meck[ho magaz)nu ABBUC. Tam n%kdy vych*zaly super v%ci a ob'as m%li naprosto nepochopiteln% vymakan[ ]vody. Jinak jsMA}em taky n%co d%lal s*m. Jak[ jsi tehdy pou()val prost@edky na v`robu sv`ch program+? Kter[ z nich jsi pova(oval nebo st*leMB} pova(uje&$ za nejlep&)?V%ci co jsem pot@eboval m)t rychle a snadno jsem d%lal v TurboBasicu. Zbytek jsem pak programoval vMC} assembleru MAC/65. To byl a st*le je&t% je jeden z nejlep&)ch assembler+, jak[ jsem kdy vid%l. Jedinou nev`hodou oproti t%m,MD} kter[ pou()v*m dnes byla absence po@*dn[ho debuggeru. Jinak je ale v n%kter`ch oblastech dodnes nep@ekon*n pro mne$.KterME}` ze v&ech sv`ch v`tvor+ pova(uje& za neju(ite'n%j&) a kter` za nejvymakan%j&)?Neju(ite'n%j&) byl asi ten reader do flopu MF}pou()valo ho nejv)c lid)$. Nejvymakan%j&) byl textov` editor, kter` jsem ov&em nikdy neuvolnil pro ve@ejnost. Nedod%lal jsem MG}ho kv+li koupi Amigy. Jinak by ov&em mysl)m docela snadno vytla'il apka, byl fantasticky rychl`. Jinak jsem t%ch program+ zaMH}s a( tolik neud%lal. M%l jsem rozd%lan[ taky dv% hry. Byly to konverze ze Sinclaira - EQUINOX a DEVIANTS. Taky jsem je nedod%MI}lal, i kdy( v EQUINOXU se u( dal hr*t 1. level.To o tom editoru zn) velice zaj)mav%. Nezachoval se n*hodou aspo n%jak* jMJ}eho rozpracovan* verze$?Jestli nemaj) n%jakou kopii ve FLOPu, tak asi ne. Je to asi &koda, ale stejn% si mysl)m, (e by se vMK} tom programu jen tak n%kdo nevyznal. V)m, (e ke konci jsem se v n%m obt)(n% vyzn*val i j* s*m. Byly v n%m pom%rn% komplikovaML}n[ v%ci s jejich( pomoc) se rychlosti dosahovalo. Hlavn) finta spo')vala v tom, (e p@i vkl*d*n) textu se editovan` @*dek editMM}oval v pam%ti zvl*& a teprve p@i jeho zapln%n) se vlo(il do textu. Krom toho tak byla spousta podm)nek pro word wrapping. PrMN}ost% hr+za. Tak m% napad*, mo(n* (e bych to mohl m)t doma na n%kter[ z poz+stal`ch disket. ance ov&em p@)li& velk* nen)...MO}Bavila T% pr*ce na Flopu?Bavilo m% d%lat diskovou verzi. Jej) p@ed%l*v*n) na kazetu jsem nen*vid%l.Pro' jsi s t)m p@estMP}al?Koupil jsem si Amigu. Nejd@)v jsem sice vedl sil*ck[ @e'i, (e si Atari nech*m a budu pro n% st*le d%lat atd. V okam(iku,MQ} kdy jsem si k Amize sedl jsem za p+l dne na zkou&ku ud%lal velice obstojn` Tetris. Jsem divn` (e, kdekdo by za'al t)m, (e bMR}y si hr*l. J* jsem si hr*l nejd@)v ten Tetris. D+vod byl prost`, a( potom jsem sehnal n%jak[ hry.$ Kdy( jsem vid%l jak je to MS}na Amize snadn[ on byl toti( fakt docela slu&n` a trvalo to jenom p+l dne na ]pln% nov[m po')ta'i, v nezn*m[m, multit*skov[mMT} a ok[nkov[m opera'n)m syst[mu, jeho( principy jsem je&t% zdaleka neznal dokonale$, ohromilo m% to a p@edstava programov*n) pMU}ro Atari m% p@estala tak moc l*kat. Nejd+le(it%j&)m d+vodem ale bylo to, (e tehdy se toho na Atari u( moc ned%lo. V%t&ina lidMV}) m%la ST nebo PC a skute'nou tv+r') 'innost vyv)jel m*lokdo. Takov[ prost@ed) u( nen) p@)li& inspirativn).Jestli V*m to p@MW}ipad* jako reklama na Amigu a na m%, asi to tak bude. To v)te, je to jedna z m`ch nejlep&)ch p@)telky..$Kdy jsi naposled MX}vid%l magaz)n Flop? Zn*& jeho dne&n) podobu?Naposledy jsem vid%l sv[ posledn) ')slo. V okam(iku jeho p@ed*n) jsem se Atari MY}za'al st*le v)ce vzdalovat. Asi se ale budu muset pod)vat, jestli mi ned%l*te ostudu no, j* v)m, tohle zn%lo pon%kud nabub@eMZ}le...$Co jsi o'ek*val od p@echodu na v%t&) po')ta'? Co se stalo s tv`m Atari?O'ek*val jsem, (e se dostanu zase k lidem, M[}kte@) budou s t)mto po')ta'em d%lat nov[, zaj)mav[ v%ci. Programovat. L[pe, rychleji, lep&) v%ci, ale hlavn% alespo n%co! PoM\}t@eboval jsem n%jak` vzruch. Touha po v`kon%j&)m stroji nebyla v+bec prim*rn). M% Atari naprosto sta'ilo. M%l jsem ho nadpr+mM]}%rn% vymakan[ a d%lalo se na n%m snadno. Taky jsem ho dokonale znal, co( je pro program*tora obrovsk* v`hoda. Jen(e 'lov%k siM^} nevysta') s t)m, co d%l* s*m. Pot@ebuje se se sv`mi programy taky pochlubit, chce, aby je pou()valo co nejv)ce lid). SvojeM_} Atari jsem po 'ase prodal. Hluboko pod cenou, za jakou jsem to v&echno po@)dil, ale nem%lo smysl nechat ho le(et doma ve sk@M`})ni, aby se na n%j jen pr*&ilo.Splnila se tv* o'ek*v*n)?Mysl)m (e ano. U( to sice nikdy nebylo takov[, jako v dob*ch, kdMa}y jsem jezdil do FLOPu a setk*val se tam s ostatn)mi lidmi, diskutoval o r+zn`ch programech a podobn%. Ty 'asy jsou d*vno pryMb}' a byly n*dhern[ - vzpom)n*m na n% r*d a ob'as taky propadnu melancholii$. Nav*zal jsem ale nov[ kontatkty a d)ky InternetuMc} mohu debatovat s lidmi z cel[ho sv%ta. Je to mnohem lep&), ne( to b`valo, ale ta spr*vn* atmosf[ra je u( pry'.Jak[ prost@Md}edky programovac) jazyky$ p@i programov*n) nyn) pou()v*&?Programuju st*le v assembleru, ale tentokr*t pro MC68000. Ob'as pMe}ou(iju GFA Basic z+stal jsem v%rn` Franku Ostrowskemu - TurboBasic i GFA jsou jeho d)lem$. Na PC pou()v*m pochopiteln% C. Mf}Pro Amigu jsem vyskou&el je&t% n%kter[ exotick[ jazyky jako E, AREXX, FALSE atp. Mou hlavn) dom[nou je ale po@*d assembler, nMq})*]}!(0|'.l&':QbdB&BРBBBB-----------B*AUTOEXECBATB3+TITLE33 COMB ^FLOP33 COMB`~SYSTEM HYPBG8VIEW HYPB-----------BOBSAH33ACAPB OBSAH33BCAPBUVOD33 CAPB OHLASY33CAPB"OPRAVY33CAPB)INZER33 CAPB-----------BB1INTERW33CAPB}AKLUBPV CAPBGOLDJOY CAPBRECENZ33CAPBASTRO2 CAPB&ASTROLOGCAPB-----------B)MPEONLY CAPB(MPEOBJ CAPB>/MIDI1 PICB>mMIDI2 PICBMIDIPIC CAPB-----------BPRINT33 CAPB;SP180II CAPB-----------BFINE CAPB'FINE COMB(JOYVBI CAPB;JOYVBI LM BRGREDIK TBABcJOYVBI OBJB eVBIBEG CAPB-----------BmKURSC5 CAPBHEROUT57C BFAKTORIAC B-----------a kter` ned*m dopustit.Kter[ ze sv`ch nyn%j&)ch v`tvor+ pova(uje& za nejlep&)? Nem* smysl, abych tady n%co vyjmenov*valMr}. J* sv[ v`tvory toti( prakticky nepou&t)m mezi lidi. V&echno co programuju na Amize, d%l*m v`hradn% pro sv[ pot%&en). Proto Ms}se mi snadno stane, (e jeden projekt p@eru&)m kv+li jin[mu, kter` se mi v tom okam(iku zd* p@ita(liv%j&). Prozrad)m, (e v souMt}'asn[ dob% pracuji na realizaci objektov% orientovan[ho programovac)ho syst[mu v assembleru a na to navazuji s knihovnou pro Mu}tvorbu grafick[ho rozhran) program+ tak, aby se odstranila ve&ker* program*torsk* pr*ce p@i jeho vytv*@en). Tahle v%c je asi Mv}zat)m to nejzaj)mav%j&), co jsem kdy d%lal. Krom% t%ch v%t&)ch projekt+ d%l*m na vysoce komfortn)m vyhled*v*n) soubor+ na dMw}isku, na nov[ knihovn% pro kompresi a dekompresi dat a spoust% dal&)ch pitominek.M*& je&t% n%jak[ spojen) se sv%tem 8-bitoMx}v[ho Atari? Ne, za posledn)ch p*r let u( jsem Atari nevid%l ani zd*lky mysl)m, (e ani ST$. Dokonce jsem u( p@estal jezditMy} i do FLOPu a star* p@*telstv) se asi u( vytratila... Hmm, to bylo docela dobr[ co, asi vytvo@)m n%jak` editor na psan) ver&Mz}+ :-$Cht%l bys je&t% n%co dodat? Snad jen to, (e dr()m palce v&em, co Atari je&t% pou()vaj). To je takov* p%kn*, univerM{}z*ln) fr*ze :-$ Je mi jasn[, (e v dne&n) dob% to u( musej) b`t sam) zap*len) nad&enci a to je fakt prima.D)ky za v`dr( p@i M|}odpov)d*n) na moje vlezl[ dotazy...e&n) dob% to u( musej) b`t sam) zap*len) nad&enci a to je fakt prima.D)ky za v`dr( p@i L$ P)&eme o ATARI klubu Prost%jov. N*& Atari klub v Prost%jov% je jedn)m z dosud funguj)c)ch klub+ u n*s. Obt)(e samoz@Q~}ejm% m*me, ale zat)m se dr()me. P+vodn% existoval podle zvyklost) jako organizace Svazarmu, vznikl* od&t%pen)m jejich zaklQ}*daj)c)ch 'len+ z Atari klubu Olomouc v roce 1985. Za dobu sv[ho trv*n) vyst@)dal t@i &koly jako m)sto sch+zek a v jeho vedQ}en) se vym%nili 'ty@i vedouc). Z p+vodn)ch 'len+ nezbyl samoz@ejm% ji( t[m%@ nikdo. V sou'asn[ dob% se sch+zky konaj) na z*Q}kladn) &kole na s)dli&ti Svobody. kola je p@)stupn* z ulice Jungmannovy. Pl*n sch+zek podle na&ich zvyklost) ur'uje term)ny Q}na prvn) p*tek v m%s)ci, d*le t@ikr*t ve 'tvrtek. V dob% pr*zdnin na na&) &kole sch+zka samoz@ejm% nen). V tomto &koln)m roceQ} do&lo k nev)tan[ zm%n% - posunut) za'*tku a( na &estou hodinu, konec z+stal v osum hodin. I tak jsme r*di (e se m*me kde sQ}ch*zet za pom%rn% m)rn` poplatek 100 korun m%s)'n%. Pr*v% vysok` n*jem je p@)'inou zru&en) v%t&iny klub+. Na&e sch+zky jsouQ} zcela otev@en[. Kdokoliv m+(e v dob% jejich kon*n) p@ij)t, pob`t s n*mi, po(*dat o radu. Na&e m)stnost je na koci chodbi'ky Q}hned vlevo za vstupn)mi dve@mi. Je nutn[ se p@ezouvat, nebo j)t v pono(k*ch. N*pln) je obvykle men&) chaos dan` rozd)lnost)Q} ]rovn) 'len+ a jejich z*jm+. Ze star&)ch zbylo jen n%kolik skaln)ch, jinak ostatn) se v%t&inou cyklicky vym%uj) ka(d` rok, Q}a( je mi to divn[. Ale chod) se za n*mi pod)vat i n%kte@) b`val) 'lenov[, kte@) ji( Atari ani nemaj), ale r*di s n*mi pohovo@Q}). Tak[ se zde sch*z) cel* redakce magaz)nu a '*st sch+zky maj) jako svoji poradu. D@)ve m%la u n*s v%t&ina 'len+ roz&)@en[Q} po')ta'e a n%kte@) i disketov[ jednotky, tito v*(n%j&) z*jemci ji( t[m%@ v&ichni p@e&li na v%t&) po')ta'e. O @adu aktivn)ch Q}'len+ jsme tak[ p@i&li zm%nou jejich pracovn) doby p@echodem na soukrom[ podnik*n). To je pom%rn% nov` zp+sob ztr*ty koleg+. Q}Celkem je n*s p@ibli(n% deset plat)c)ch za rok a d*le pravideln%j&) host[. V leto'n)m roce m*me p%t majitel+ disketov`ch jeQ}dnotek mezi st*l`mi n*v&t%vn)ky. Z toho jeden jezd) a( z Olomouce, jako jedin` b`val` 'len zru&en[ho olomouck[ho klubu. N%kolQ}ik disket*@+ je je&t% po okol) Prost%jova roztrou&en`ch, ale ti se ji( nez+'astuj). Za sv[ho druh[ho p@edsedy klub za'al pQ}o@*dat p@edv*d%c) akce na "sv[" &kole a ve spolupr*ci se spectristy postupn% t@i ve@ejn[ akce v dom% ml*de(e nazvan[ "Den v`pQ}o'etn) techniky". Z d+vodu rapidn% klesaj)c)ho z*jmu ve@ejnosti o osmibitov[ po')ta'e a tak[ nov[ho pohledu na legalizaci proQ}gram+ n%co se na akci p@edv*d%t mus)$ bylo p@ed n%kolika lety od dal&)ho po@*d*n) upu&t%no. Pro' nebyly tyto akce pojaty takQ}[ jako celost*tn) setk*n) pro ataristy spectristy$ to nev)m. Pokud budete m)t p@)le(itost, zvu v&echny 'ten*@e magaz)nu kQ} n*v&t%v% na&) sch+zky. -ZB-to nev)m. Pokud budete m)t p@)le(itost, zvu v&echny 'ten*@e magaz)nu kP4 Sout%( "Zlat` joystick" O sout%(i "Zlat` joystick" jsem se dozv%d%l v 'asopise EXCALIBUR. Ihned m% zaujala a m%l U}jsem &t%st), (e jednou z kvalifika'n)ch prodejen byla firma T.N.C. v Prost%jov%. Pro z*jemce zde byl k dispozici jeden po')U}ta' PC 386, pozd%ji vym%n%n` za AMIGu. Vstupn) poplatek za jednu hru byl deset korun, za tuto cenu mohl hr*' zahr*t jednu hruU} a obdr(el samolepku. Majetn) hr*'i se tak mohli @*dn% vytr[novat. Vyskok[ skre &[f firmy Tom*& Nov*k evidoval. Sout%()c) U}m%li v t`denn)ch intervalech nab)dnut[ t@i hry. Nejlep&) hr*' ka(d[ z nich se kvalifikoval do celost*tn)ho fin*le. Postoupit U}mohli tedy z ka(d[ho kvalifika')ho centra t@i hr*'i. J* jsem pa@il hru "RAPTOR" v p%ti pokusech. Tato hra je st@)le'ka, dalU}&) byly proch*ze'ka a karate. Tyto hry m%ly b`t jednotn[ v cel[ republice, ale asi se to p@esn% nedodr(elo. Do Prahy n*s ]'U}astn)ky z Prost%jova vezl s*m &[f T.N.C. 4.prosince 1994. Z cel[ republiky se n*s se&lo asi 36 gamesn)k+. Div*k+ bylo zato n%U}kolik set, proto(e akce prob)hala ve@ejnou formou a byla spojen* s uk*zkami a prodejem her. Prost% velik* reklamn) &ou. showU}$ Pro fin*le sout%(e byla p@ipravena hra "DRAGON - Bruce Lee Story" pro hern) konzolu JAGUAR. Jako b`val[mu ataristovi je mU}i nep@)jemn[ poznamenat, (e proveden) bylo sice v kr*sn[ grafice, ale vlastn) hratelnost za moc nest*la. V)ce jsem se vy@*dilU} kdysi na mal[m ATARI ve h@e "International Karate" Fin*ln) kolo se hr*lo vy@azovac)m zp+sobem ve vylosovan`ch dvojic)ch hrU}*'+ na dv% v)t%zn* kola, souboj posledn)ch dvou hr*'+ na p%t. Z*v%re'n[mu pa@en) p@edch*zela sout%( teoretick*, v n)( bylaU} vy@azena cel* polovina ]'astn)k+. Snad aby jsme my pa@ani nerostli pouze s ovlada'i v rukou. asopis EXCALIBUR pozd%ji tvrdiU}l, (e se tak odd%lilo zrno od plev. J* jsem se sice dostal do v`b%ru 16 &astlivc+, ale hned v m[m prvn)m z*pase m% ten holU}omek protihr*' vy@adil ve t@ech kolech. Za zm)nku stoj) zp+sob zobrazov*n) d%je odli&n` od b%(n`ch dom*c)ch podm)nek. K JagU}u*ru bylo p@ipojeno za@)zen) na projekci obrazov[ho sign*lu a ten se tak prom)tal na velik[ pl*tno v pozad). Produkci zvuku oU}bstar*vala aparatura o v`konu mnoha watt+. V sout%(i z)skal prvenstv) redaktor 'asopisu "Level" Martin Kalivoda, jeho( vzhlU}ed m% tvrd% odpuzoval. P@itom p)&e docela dobr[ 'l*nky. Vyhr*l sestavu PC 486 DX2/66, CD ROM, joystick, kterou jako p@esv%d'eU}n` amigista je&t% ten den prodal. podle informace v Levelu, vlastn) prodej jsem nevid%l$ N*s ]'astn)ky zklamalo celkov[ vyU}hodnocen), proto(e podle p+vodn% vyhl*&en`ch podm)nek m%lo b`t p@ipraveno 80 hodnotm`ch cen. V`hra sice m%la hodnotu asi 60 tU}is)c korun, ale byla jen jedna. )k* se "sliby chyby". Zakoupil jsem si alespo lacin[ diskety, konkr[tn% 3.5" DD bal)'ek dU}eseti kus+ v plastick[m pouzdru za 140 korun. L)bila se mi tak[ p@edv*d%n* hra "Alien vs Predator" jako novinka pro Jagu*ra. U}Udivil m% na n) plynul` pr+b%h v Truecoloru. Ji@) Hradilra "Alien vs Predator" jako novinka pro Jagu*ra. TL Produkce nakladatelstv) GRADA Mezi nov`mi vydavateli literatury pro po')ta'e a i jin[ nau'n[ pat@) vydavatelstv) GRAY}DA k t%m nejzn*m%j&)m, nejroz&)@en%j&)m, nejdra(&)m a nejd@)ve zalo(en`m. Vede z@ejm% tak[ v mno(stv) vydan`ch titul+. K jeY}jich produkci jsem z)skal ned+v%ru po zakoupen) knihy "dBase III plus-kompletn) pr+vodce" za 350 korun. Rozsah stran je 650. Y}Podle m% pou(it` styl sazby pl`tv* m)stem na str*nce a tak[ text se m% zd* nafoukl`. Hledal jsem v n%m pou'en) o technice vytY}v*@en) program+ v tomto syst[mu, ale dostal jsem jen rady typu dob@e si promyslet probl[m, rozd%lit si jej do men&)ch celk+ aY} podobn%. Proto(e mohla b`t chyba ve m%, p+j'il jsem p@)ru'ku program*torovi znal[ho pr*ce s datab*z). Podle jeho vyj*d@en) nY}ena&el v n) (*dn` d+le(it` probl[m, kter` by nebyl v pades*tistr*nkov[ p@)ru'ce ze Slu&ovic. Od GRADY se ale p@ece jen daj)Y} koupit zaj)mav[ p@)ru'ky. Zejm[na ty @ady pro ml*de( "EDUCCA 99" maj) slu&nou ]rov% a p@)znivou cenu. Za')n*me s progrY}amov*n)m Rudolf Kryl, Janu& Drzd po'et stran 312, cena 119 K', A5, 199, Mysl)m si, (e tato kniha je dob@e napsan* aY} srozumitelnou formou zav*d) za'*te'n)ky do taj+ algoritmizace a programov*n). Pou()v* p@i tom mimo v&eobecn` popis algoritY}m+ i skute'n` programovac) jazyk Pascal. Ten nen) sice nejlep&)m @e&en)m pro mal` po')ta' ATARI, ale t%(ko ji( budou modern) Y}u'ebnice pou()vat BASIC. Sp)&e se d* o'ek*vat postupn` p@echod na jazyk "C", tak jako v minulosti se p@e&lo z FORTRANu na PASY}CAL. Podle m% je text i tak srozumiteln` a pou(iteln` i pro ataristy - za'*te'n)ky. Nav)c n*& Turbobasic umo(uje tak[ struktY}urovan% programovat a nez*visle na ')slech @*dk+ - ty si prost% odmyslete.... Od probl[mu k algoritmu a programu. IvY}an Libicher, Pavel Topfer po'et stran 120, cena 55 K', A5, 1992 Tato p@)ru'ka obsahuje 20 @e&en`ch ]loh ze st@edo&kolskY}`ch program*torsk`ch sout%() a kurs+. P@edpokl*d* znalosti algoritmizace ]lohy a '*ste'n% st@edo&kolskou matematiku. N%kterY}[ ]lohy jsou @e&eny v)ce zp+soby s popisem jejich v`hodnosti. Algoritmy @e&en) jsou uv*d%ny ve v&eobecn[ form% nebo v jazyce Y}PASCAL. I tuto p@)ru'ku bych doporu'il na&im z*jemc+m o programov*n). P@epis program+ do BASICu by m%l b`t pro toho, kdo poY}chop) jejich princip, pom%rn% jednoduch`. Jej) 'ten*@ v&ak ji( mus) n%co o programov*n) v%d%t. -ZB-Y}hop) jejich princip, pom%rn% jednoduch`. Jej) 'ten*@ v&ak ji( mus) n%co o programov*n) v%d%t. -ZB-X Pozn*mky k program+m ASTROLOGIE a STARWARE Podle seznamu se tyto dva programy nal[zaj) na p+vodn) klubov[ disket% '.1]}35. Z nezn*m`ch d+vod+ je u STARWARE sd%len), (e se jedn* o hru. P@itom je to u(ivatelsk` program, kter` se d* za@adit do obl]}asti v`ukov`ch. N*& d@)v%j&) 'len Radim Sordyl se ob%ma programy podrobn%ji zab`val i za pomoci slovn)ku. Na po(*d*n) napsa]}l pro n*& magaz)n manu*ly k program+m, kter[ nejsou p@ekladem origin*ln)ch. Oba programy jsou naps*ny v BASICu, ale jsou n%]}jak spou&t%n[ pomoc) AUTORUN. SYS, a nejde je p@)mo na')st. Proto je nutn[ prov*d%t studen` start z diskety. Domn)val jsem se]}, (e to jde i p@i startu TTDOSu z kartrid(em, ale opakovan[ pokusy selhaly. K Radimovu popisu startov*n) mus)m poznamenat, (e]} je u(ivatelem syst[mu Q-MEG, kter` m* inicializaci BASICu p@i startov*n) pomoc) OPTION p@ehozenou funkci oproti syst[mu stan]}dartn)mu. Prost% mus) b`t BASIC aktivovan` ru'n%. S programy v BASICU startovan[ pomoc) AUTORUN.SYS, kter` ale nelze spusti]}t z menu DOSu, jsem se setkal ji( d@)ve. Ke sv[ l)tosti nev)m, v 'em je rozd)l oproti t%m Basic+m pou(ivaj)c)m AUTORUN.SYS, k]}ter` si s*m nejen zapne BASIC, ale lze jej i na')st ru'n%. Jako velik[ho &et@)lka m% napadla my&lenka d*t oba programy ze d]}vou stran diskety o hustot*ch single na jednu medium. Podle obsahu adres*@e by to m%lo j)t. Domn)val jsem se, (e na p@ek*(ku ]}by byly pot)(e se startov*n)m. P@)mo spustiteln` by byl toti( jen jeden z nich, pro startov*n) druh[ho by se musely nejprve p]}@ejmenovat p@)slu&n[ soubory. Schopn` program*tor by si jist% dok*zal poradit vytvo@en)m speci*ln)ho souboru AUTORUN.SYS, ale]} probl[m je hor&). P@i sv`ch pokusech p@ed naps*n)m 'l*nku jsem vid%l, (e obsazen[ jsou i nepou(it[ sektory. Programy je bu]}dou asi skute'n% pou()vat, proto(e po pokusn[m souborov[m zkop)rov*n) ji( nefunguj). Zru&) je i smaz*n) origin*ln)ho syst[mu ]}DOS II v.2.0S a jeho n*hrada DOS 2.5. Jinak p@)stup na disketu maj) standartn), proto(e je mo(n[ je provozovat i z ramdisku]} pod opera'n)m syst[mem Q-MEG. T)m jsou zp@)stupn%ny i kazet*@+m maj)c)m roz&)@en` po')ta'. To je asi nejd+le(it%j&) informac]}e z cel[ho 'l*nku. Na z*v%r uv*d)m v`pisy adres*@+ popisovan`ch disket. e nen) v&echno v po@*dku upozoruje jen rozd)l mez]}i celkovou d[lkou soubor+ a ]dajem o po'tu voln`ch sektor+, kter` by m%l b`t v%t&). Netvrd)m ov&em, (e to v(dy znamen* p@)m[ ]}pou()v*n) sektor+. Jejich ozna'en)m v tabulce VTOC se d* zamezit p@)stupu na n%, aby nemohlo doj)t ke zni'en) kompletu pokuse]}m o z*pis na ni n%'eho nav)c. Tady asi je ozna'en) provedeno nedokonale, proto(e zaps*n) zcela kr*tk[ho souboru zlikviduje ne]}jen vlastn) program, ale i startov*n) samotn[ho DOSu. STARWARE  DOS SYS 039  DUP SYS 042  AUTORUN SY]}S 002  LOGO 012  STARS FRM 181  CONSPNTSDAT 014  DISKNAMEDAT 001 0238 Free 07 Files ASTROLOGY ]} DOS SYS 039 DUP SYS 042 AUTORUN SYS 002 LOGO 014 ASTROL CHR 009 USMAP DAT 062 WRLDMAP D]}AT 062 ASTROL 127 DISKNAMEDAT 001 0320 Free 09 Files 014 ASTROL CHR 009 USMAP DAT 062 WRLDMAP D\C ASTROLOGIE - STARWARE Sordyl Radom)r - Harry Koons Mnoz) z n*s se ji( setkali s programy "Astroa}logie" a "Starware".Jedn* se o programy od pana Harryho Koonse a jsou ur'eny pro ty, co se zab`vaj) v%dou zvan* "Astrologie"a}. A S T R O L O G I E P@i bootov*n) se mus) dr(et tla')tko OPTION a( do t[ dobya}, ne( se na obrazovce objev) n*pis READY, pot[ program pracuje u( s*m. Po startu programu jsme informov*ni o tom, co je to vla}astn% za program. "ASTROLOGIE - HOROSKOPY PODLE ASU A M STA NAROZEN , stla' START" Objev) se prvn) v`b%r, m*me ur'it a}m)sto narozen). Na v`b%r m*me t@i mo(nosti: U - U.S.MAPA, W - Sv%tov* MAPA a C - Zad*n) sou@adnic. Vybereme a zvol)me kl*vesoa}u, kterou potvrd)me Returnem, tak jako p@i ka(d[m v`b%ru. U - na'te a vykresl) se mapa USA. Uprost@ed se objev) k@)(ek a}a dole zpr*va o tom, (e s k@)(kem se pohybuje pomoc) kl*ves se &ipkami. Norm*ln) stla'en) kl*vesy posune k@a})(ek dan`m sm%rem. Chceme-li, aby se k@)(ek pohyboval po jemn[ s)tnici sou@adnic, p@id*me tla')tko CONTROL. Po zvolen) m)sta a}se op%t stla') Return. W - prov*d) se v&e jako u mapy USA, jen s t)m rozd)lem, (e zde je mapa sv%ta.a} C - po zad*n) C jsme dotazov*ni na zem%pisnou lokalitu narozen). V`chodn) d[lku a severn) &)@ku v&e ve stupn)ca}h. Po vybr*n) v jedn[ z mo(nost) se dost*v*me do ji( spole'n[ '*sti. Zde jsme dotazov*ni na den narozen)  m%s)c, den, a}rok $. D*le ud*me 'asov[ p*smo ve zkratce je( jsou n*m nab)dnuty. Pokud v&ak toto p*smo nezn*me, stla')me jen Return. Nyn) uda}*me pokud mo(no co nejp@esn%j&) 'as narozen)  hodinu, minutu $ dopoledne, odpoledne, 'i je udan` 'as v rozsahu 1-24 hodin. Na}ast*v* koncov` v`po'et spr*vn[ho 'asu narozen) pro danou osobu, v dan` den a dan[ m)sto. Tyto ]daje jsou n*m uk*z*ny a po stla}a'en) Returnu nast*v* druh* f*ze programu KRESLEN . Kreslen) horoskopu trv* pon%kud trochu del&) dobu, nebo z*rove p@a}i kreslen) se prov*d) i ve&ker[ v`po'ty Dmu, Planet, Aspekt+. Kreslen) kon') a( se v prav[m doln)m rohu vykresl) troj]heln)ka}ov` vztah  ASPEKTY $ planet v+'i sob%. Kdy( je kreslen) ukon'eno, m+(eme pomoc) kl*vesy SELECT se dostat do '*sti vysv%a}tlivek, kde jsou n*m nakresleny a vysv%tleny jednotliv[ znaky v horoskopu. Op%tn`m stla'en)m se vr*t)me. S Ta} A R W A R E Na bootov*n) je stejn[ jako u programu Astrologie. Po spu&t%n) se n*m nab)dne a}hlavn) menu, do kter[ho se budeme v(dy vracet. SOUHV ZD ----------- T - No'n) obloha C - Soua}hv%zd) L - M)stn) re*ln` 'as Q - Zkou&en) souhv%zd) F - Naj)t P - Planety, slunce, m%s)c T - Jsme da}otazov*ni na datum pozorov*n)  m%s)c, den, rok $. Pot[ ud*me ')selnou hodnotu 'asov[ho p*sma kde je um)st%na pozoroa}vatelna. Ud*me p@esn` 'as pozorov*n)  hodiny, minuty a sekundy $, t[( dobu v jak[ je pozorov*n) prov*d%no. Nakonec jsme dot*a}z*ni na p@esnou polohu na&i observato@e a sm%r kter`m se d)v*me. Nast*v* kreslen) jak planet, tak i souhv%zd). a} C - Objev) se n*m menu souhv%zd), kde si m*me vybrat jednu ze dvou stran, na nich( se nach*z) seznam souhv%zd). Po vybr*n) ja}edn[ ze dvou stran se n*m strana objev) a my si nyn) bu vybereme souhv%zd) a nap)&eme jeho zkratku, nebo se vr*t)me do v`b%ra}u stran. Kdy( jsme si vybrali souhv%zd) a napsali zkratku, souhv%zd) se vykrel) na obrazovku. L - Zad*me datum, 'asov[ a}p*smo, 'as a nakonec polohu v.d. a s.&. Program n*m vypo')t* dan` re*ln` 'as. Q - V t[to '*sti jsme prov%@ov*na}i ze znalosti souhv%zd). Nejprve ud*me zda jsme za'*te'n)ci, 'i pokro'ilci. Po ud*n) je n*m nakresleno souhv%zd), d*ny 'ty@i a}mo(n[ n*zvy souhv%zd) i s jeho zkratkami. Te je na n*s to ur'it spr*vn%. Pokud spr*vn% ur')me souhv%zd), je n*m toto souhv%za}d) zn*zorn%no graficky. Nyn) m*me mo(nost se bu vr*tit do menu  M $, nebo pokra'ovat dal&)m souhv%zd)m Return$. F - a}Zad*me spr*vn` vstupn) 'as, kter` jsme si spo')tali v '*sti L, sni(ovac) hodnotu a oblast na obloze. Nyn) nast*v* vlastn) krea}slen). Pro tuto '*st bych sp)&e doporu'il celodiskov` program " PLANETARIUM ". P - Jsme dot*z*ni na planetu o kter[a} chceme b`t informov*ni. D*le ud*me p@esn[ datum, 'asov[ p*smo a 'as. Nakonec ur')me oblast hodnot na obloze. Nyn) na}ast*v* kreslen). Ve&ker* kreslen) trvaj) dosti dlouho, tak se neukvapujte ve sv`ch rozhodnut)ch a nechte program klidn%a} pracovat. P@)jemnou pr*ci s ob%ma programy V*m p@eje Radom)r Sordyl a douf*, (e tyto mal[ n*vody, V*m pomohou pracovata} s t%mito programy.jemnou pr*ci s ob%ma programy V*m p@eje Radom)r Sordyl a douf*, (e tyto mal[ n*vody, V*m pomohou pracovat`MPE v2.3MIDI Pattern Editor , version 2.3Radek t%rba, c$ RASTER 1995!!VB R Z ORIGINLN HO MANULU!!Tento editor slouj}() ke skl*d*n) hudby paternov`m zp+sobem. Hudba se skl*d* z jednotliv`ch '*st) patern+$ a tyto jsou pak v po(adovan[m po@ad)j} p@ehr*v*ny.Z*kladn) ]daje:Nutn[ minim*ln) vybaven):- Po')ta' Atari XE/XL kompatibiln) 64KB RAM$- MIDI interface p@esj} s[riov` vstup/v`stup - standardn)m s[riov`m konektorem$- Kl*vesov` hudebn) n*stroj s MIDI standardn) MIDI norma$Kapacitaj} editoru:- Song m* 256 krok+- 32 sampl+ specifikace n*stroje a dynamiky, mo(nost akord+$- 128 patern+ patern se skl*d* zj}e 4 track+ a m* 32 takt+$Dal&) informace:- Pro v`stup se pou()vaj) 4 MIDI kan*ly 0 a( 3$- Pro vstup libovoln` kan*l Dynj}amika ]hozu kl*vesnice nen) sledov*na$Z*kladn) funkce:Ovl*d*n) programu se prov*d) syst[mem "hork`ch" kl*ves, tj. p@)mo stj}la'en)m kl*vesy vyvol*te p@)slu&nou funkci.--------Re(im PATTERN:Tento re(im slou() k vlastn)mu z*pisu not do jednotlivj}`ch pattern+, ze kter`ch se cel* hudba skl*d*. *dky p@edstavuj) takty, ve 'ty@ech sloupc)ch jsou tracky. Ka(d` track m* pevnj}% p@i@azen` MIDI kan*l 0 a( 3$ a noty, um)st%n[ v n%m, budou vysl*ny pr*v% pro tento kan*l.Ka(d* nota za'ne zn)t v okam(ikuj }, kdy na ni program naraz) a zn) d*l. Jej) ukon'en) nastane a( v okam(iku, kdy je nalezen symbol " $" nebo nov* nota.P@)klj }ad:00 |C-3 00|E-3 01|--- 00|C-4 05|01 |--- 00|--- 00|G-3 07|--- 00|02 |--- 00| $ 00|--- 00|spd 09|03 | $ 00|--- 00|---j } 00| $ 00|04 |end 00|--- 00|--- 00|--- 00| . .0.t` kan*l:Za'ne zn)t nota C-3 specifikace n*stroje atd. je d*na samplej }m ')slo 00$ a zn) po dobu 3 takt+. Ve 'tvrt[m taktu @*dek 03$ u( nezn) nic. Symbol "end" v @*dku 04 zp+sob), (e cel` tento pj }attern m* dohromady 4 takty.1.kan*l:Za'ne zn)t nota E-3 specifikace n*stroje atd. je d*na samplem ')slo 01$ a zn) po dobu j}2 takt+. Od t@et)ho taktu u( nezn) nic.2.kan*l:Jeden takt mezera - nezn) nic. Ve druh[m taktu za'ne zn)t nota G-3 sampl 07j}$ a bude zn)t po@*d d*l i po ukon'en) tohoto patternu$. K jej)mu ukon'en) dojde a( v okam(iku, kdy ji p@eru&) jin* nota neboj} symbol " $" v tomto tracku$.3.kan*l:Za'ne zn)t nota C-4 sampl 05$ a zn) 3 takty. Symbol "spd 09" v @*dku ')slo 02 zp+soj}b) zm%nu rychlosti p@ehr*v*n) v&ech track+!$. Od t[to chv)le bude jeden takt p@edstavovat dobu 9/50 sekundy. "spd" m+(e b`t j}um)st%no v libovoln[m tracku kde m*te m)sto$ a nov* rychlost plat) a( do zm%ny nov`m "spd".Z*kladn) funkce .. viz. origin*j}ln) manu*lP@ehr*v*n) skladby .. viz. origin*ln) manu*lZ*znam z kl*vesnice n*stroje:Jestli(e je zapnut p@)jem dat z kl*vej}snice n*stroje, pak se p@i ka(d[m stla'en) kl*vesy p@)slu&n* nota zap)&e na aktu*ln) m)sto tj. do aktu*ln)ho patternu, trackj}u a taktu$. N*sleduje posun na dal&) @*dek. Toto plat) i p@i sou'asn[m p@ehr*v*n) skladby nebo patternu$, tak(e je umo(n%n ij} ZZNAM V RELNM ASE!!!Blokov[ operace .. viz. origin*ln) manu*lZ*znamov[ a ostatn) operace .. viz. origin*ln) manu*lj}--------Re(im SONG:Tento re(im slou() k sestaven) skladby z jednotliv`ch pattern+.)sla na jednotliv`ch @*dc)ch znamenajj}):00 a( 7f ..')slo patternu, kter` m* b`t hr*n.fe ..konec skladby  ukon'en) v&ech zn%j)c)ch tn+$.ff ..p@echod na 0.t` @j}*dek SONGu a pokra'ov*n) v p@ehr*vce.Z*kladn) funkce .. viz. origin*ln) manu*l--------Re(im SAMPLE:Tento re(im slou()j} k zadefinov*n) parametr+ pro stla'ovanou notu.Umo(uje zadat n*stoj, kter`m m* b`t nota hr*na, jej) hlasitost a p@)padn% i j}akord, odvozen` od t[to noty.Ka(d` sampl obsahuje 8 parametr+, kter[ znamenaj):00 00 ..nech*vejte =00 rezervov*no pro p@)pj}adn[ roz&)@en)$01 To 00 ..n*stroj. )slo 00 a( 7f ozna'uje, kter`m n*strojem m* b`t nota hr*na.02 Ba 00 ..')slo banky Jen j}m*-li n*stroj v)ce bank. Jinak =0$. Pozn. Proto(e p@ep)n*n) bank se n*stroj od n*stroje li&), v z*kladn) verzi tato funkce nej}funguje. Pro konkr[tn) kl*vesov[ n*stroje jsem ochoten tuto funkci doplnit na z*klad% poskytnut) pot@ebn`ch podklad+ z technj}ick`ch MIDI ]daj+ p@)slu&n[ho n*stroje$.03 V1 00 ..dynamika ]hozu hlasitost$ 1. noty tj. noty zapsan[ v patternu$. Povolenj }` rozsah 01 a( 7f 00 znamen* ticho$.04 2 00 ..transpozice 2. noty od 1. Vyjad@uje posun v p+ltnech$.05 V2 00 ..dynamikaj!} ]hozu hlasitost$ 2.noty. Povolen` rozsah 01 a( 7f 00 znamen*, (e bude zn)t jen 1.nota$.06 3 00 ..transpozice 3. noty od j"}1. Vyjad@uje posun v p+ltnech$.07 V3 00 ..dynamika ]hozu hlasitost$ 3.noty. Povolen` rozsah 01 a( 7f 00 znamen*, (e budej#} zn)t jen 1. a 2.nota$.Pozn.: Speci*ln) vyj)mku tvo@) sampl ')slo 00, kter` se li&) parametrem 00. U n%j toto ')slo znamen*j$} rychlostn) ]daj pro skladbu ]daj v 1/50 sekundy$. P@i spu&t%n) p@ehr*vky cel[ skladby bude provedeno nastaven) aktu*ln) dobj%}y pro jeden takt touto hodnotou. Ke zm%n% t[to doby dojde pouze v p@)pad%, (e bude p@ehr*n n%jak` pattern, ve kter[m je symboj&}l "spd" s jinou hodnotou.Z*kladn) funkce .. viz. origin*ln) manu*l--------Pozn*mky a d+le(it* upozorn%n) .. viz. originj'}*ln) manu*lnou hodnotou.Z*kladn) funkce .. viz. origin*ln) manu*l--------Pozn*mky a d+le(it* upozorn%n) .. viz. originh Objedn*vka MIDI Pattern Editoru - MPE v2.3J* ................................................ p@)jmen),jm[no$,rodn[ ')n)}slo ....../.... bytem .......................................m%sto ....................... PS ........ objedn*v*m ZVAZN n*}program MIDI Pattern Editor - MPE v2.3 na m[diu:KAZETA / DISK Nehod)c) se &krtn%te$Cena: 280 K' jednou(ivaten+}lsk* licence$Tato cena obsahuje disketu kazetu$, n*vod k pou(it), sadu demonstra'n)ch skladeb, po&tovn[ a baln[.Zavazuji n,}se, (e PO OBDREN SLOENKY za&lu '*stku na n)(e uvedenou adresu. Program bude odesl*n na kvalitn) disket%/kazet% co nejd@)ven-}, nejpozd%ji v&ak do 14 dn+ po obdr(en) '*stky.V ......................... dne ........... Podpis ........Adresa: Raden.}k St%rba sl.odboje 36 798 11 Prost%jov 6................... dne ........... Podpis ........Adresa: Radel9 or0}`>À`* r2}   r3}?   r4}   r5}     r6}    p  r7}  `4     r8} "  A   r9}?      r:}   #r;} 0 ` @pa  0r<} @ p `2r=}  @@  r>}8@ @@D@ @@"G  r?}"D!p  !8!   !?  r@}    p    @rA}@ . @@ "@@  A rB}@ A  A!@ "B rC} @*  N @@ rD} 0`  @pD rE}Pl PT pDpPDrF}pD rG} p   ?   rH}?      rI}      rJ}? @ @ *rK}@ N@ @ rL}@ @ @ @rM}  @   @ ??@rN}  @  @ @rO}  @  @ 0` @ rP}   p     rQ}B  " p  @ rR}  @ ?? !D rS}AD @D @8rT}@@@rU}@  @@ rV}   @ "@@ rW}"@@@"c|wvrX}wOw0w~0wrY}|P0`  @rZ} @  @r[}` @p o?pÀ` @r\} @  À  @c  @r]} . P 0r^}X r_}{~> {xwx>wx~w~wp~r`}x~xwpxwxwxwxwwxw>ra}rb}rc}rd}@@@@re}!@@?rf}xp><rg}n;xw>sw>>3w;;>s>;>>1~ri}rj}rk}rl}p7(7vn}?qa=`q?8`q?vo}|>"q;w?|>"vp}8wpUPvq}P"pfPvr}wp@T@vs}DH?P"@A8 pvt}B@1A( H"AB@RA((3AB@A80vu}AB@A((z ABxA(`B AAPB vv}AAB AA!B AA"B Avw}A $BAA (B$#AA 0$0 `Avx} A?~@pA2A< 0 AXRA (B  AXAp@vy} $BA(@AP@"BpA PP !BA@p`vz}B PPPB@pPpB8@v{}BD@ G@"D"v|}!8"@@ " @@ "@ v}}@ " @ "> @B? @v~}B> +@"@B! **@A A@ 3@A v}(@2@A!@*@"B8*v}@  @; 0` *v} > @@ @18  @|A3(v}@8; @@ @@ v} @@  @ v}@@Av}A1@@v} @ @@v}@@>"8p?v}8>"v}8v}v}@v}@@@v}@@@0@P 8@>PDv}@wyD@@wD@@8v}w@@@@@@p v}@ @ " @?#@v}" @ @p @v} @ @ @2v} @ @ @v} @ @8  @ @@( ;  @@((;v}!?80?@@((;@@@( v}@00@@v}w@`0U@?@@; o'v}@ ;Àe@?w@;@v};À@c@@v}@@@@v}?@@(@@0@8v}@@@@0@?P 8@0v}PD@yD@D@ 8v}@A@@ A@@@ @ p v}@  A@ @@ @ " @@ #v} "@ @@ " pv} A @ H v}(@ @" w  U v}@" @ (@ @' ;H e "Bv}!w 8:C  #  *@v}  ; 0  1v} !   ov} À p?8v}pÀ7;3 ` ;;; 8 ;v};;;;;8;1?v}8;1?t7 Popis interface pro MIDI. autor zapojen): ing. alom Jako p@)lohu k popisu nov[ho programu pro pr*ci s MIDI z}uv*d)me i schema zapojen) interface pro spojen) mal[ho ATARI a hudebn)ch n*stroj+ vybaven`ch t)mto rozhrann)m. Obr*zky jsou nz}akresleny v nejjemn%j&)m monochromatick[m rozli&en) po')ta'e, naz`van`m v%t&inou podle vol*n) v BASICu GR.8. Tak[ se b%(n% @)z}k*, (e jsou ve form*tu DESIGN MASTERu, i kdy( nen) jedin`m grafick`m editorem pro rozli&en) 320  192. Prvn) soubor MIDI.PIz}C obsahuje opraven[ schema, kter[ ji( bylo uvedeno ve FLOPu '.29. P@i p@ekreslov*n) se mi minule do schematu vloudilo n%kolikz} chyb, kter[ sice zku&en` elektronik m+(e nejen objevit, ale i s*m si odvodit opravu, h+@e jsou na tom ti m[n% zdatn) z*jemciz} o konstrukci. Ve druh[m souboru je ]pln% nov[ schema op%t od in(en`ra aloma z Ro(nova. Do zapojen) zapracoval i roz&i@uj)z}c) konektor THRU. Ten umo(uje p@ipojen) druh[ho MIDI za@)zen). Toti( t%ch hudebn)ch "bed`nek" m+(e b`t i v)ce, ale o tom mocz} nev)m. Hudebn)ci asi budou l[pe v%d%t, o co jde. Vstupn) obvod nab)z) dv% r+zn[ varianty p@ipojen). Ta bezpe'n%j&) pou()v*z} optoelektronick` odd%lovac) 'len. Oproti tomu jednodu&&) a lacin%j&) zp+sob je p@)m[ propojen) vodi'em. Proto(e p@izp+soben)z} opto'lenu je odli&n[ od p@)m[ho propojen), li&) se ob% varianty pou(it`m ')slem kol)'ku na vstupn)m konektoru. Nelze je tak[z} propojit a pou()t sou'asn% ! Na schematu je zp+sob p@)m[ho propoje nakreslen '*rkovan%. V takov[m p@)pad% odpad* opto'len a z}p@ed n)m zapojen` odpor s diodou. Dioda p@ipojen* vedle opto'lenu je libovoln* k@em)kov*. Hodnoty odpor+ bez ozna'en) jednoz}tek jsou v ohmech podle b%(n[ho zp+sobu. Zde jsou pou(ity odpory 220 ohm+. Ostatn) hodnoty jsou v kiloohmech. Proveden) sta')z} miniaturn) s nejmen&)m v`konem. Vyhlazovac) kondenz*tor je doporu'en` kvalitn) tantalov` 10 mikrofarad+ na 6.3 V. Konektory z}na propojov*n) MIDI p@)stroj+ jsou oby'ejn[ kulat[ p%tikol)kov[. Ozna'eny jsou ve smyslu sm%ru sin*l+ vzhledem k interfejsu. z}To znamen*, (e konektor MIDI IN na interfejsu se propoj) s konektorem MIDI OUT na hudebn)m p@)stroji a opa'n%. Prost% je to tz}ak, jako na velk`ch po')ta')ch. O')slovan[ p@ipojovac) body na prav[ '*sti schematu jsou v`vody seriov[ho konektoru na po')taz}'i - jimi se provede p@ipojen) interfejsu na ATARI. Zemn) v`vod je zde ozna'en ')slem 'ty@i, kter[ se obvykle pou()v*, ')slo z}&est je v&ak identick[. Kabely disketov`ch jednotek nap@)klad pou()vaj) oba zemn) v`vody. P@i pohledu na sch[ma je vid%t, (z}e v p@)pad% proveden) s opto'lenem nen) v+bec pou(ito zemn) spojen) mezi po')ta'em a hudebn)m n*strojem. Sign*ly jsou "plovouz}c)". Zem nen) pou(ita ani na st)n%n), kter[ s[riov[ p@enosy nepot@ebuj). na rozd)l od paraleln)ho CENTRONICSu$ Propojen) zemz}) by zde mohlo sp)&e zp+sobit ru&en) proudy indukovan`mi ve vytvo@en[ smy'ce. Spr*vn% by m%l b`t jako dal&) p@)loha uveden z}i n*vrh plo&n[ho spoje, ale ten nem*me hotov`. Zapojen) je docela jednoduch[ a lze jej prov[st i na univerz*ln)m plo&n[m spojz}i. Tak jsem ud%lal i svou prvn) a zat)m posledn) konstrukci. Jist%(e pro v%t&) po'et z*jemc+ by bylo lep&) dokonalej&) @e&en)z}, ale t%ch nen) tolik, aby interface za'ala profesion*ln% vyr*b%t t@eba firma FLOP Ro(nov. Mimochodem, bylo by spr*vn[ se v tz}akov[m p@)pad% dohodnout s autorem zapojen) ing. alomem. -ZB-nov. Mimochodem, bylo by spr*vn[ se v txV POZOR !! varov*n) !! Na na&em trhu se objevila nov* dev)tijehli'kov* tisk*rna LC-90 za velmi zaj)mavou cenu asi 50}00 korun. Tento v`robek v&ak vinou ne]pln[ dokumentace nen) vhodn` pro spolupr*ci s na&)m po')ta'em, proto(e nejsou zn*m[ k}dy pro jej) spr*vnou konfiguraci. Pr+vodn) text odkazuje pouze na pou(it) p@ilo(en[ho programu pro po')ta'e PC. Pokud to v}&ak p+jde, pokus)me se chyb%j)c) informace zjistit sami a zve@ejnit pro ty, kte@) si tisk*rnu ji( koupili. Zat)m si ji v p@})pad% nutnosti m+(ete nakonfigurovat u kolegy po')ta'em PC, na&t%st) si tisk*rna pamatuje nastaven) i po vypnut) nap*jen). } Podobn* situace je z@ejm% i u inkoustov`ch tisk*ren Packard, kter[ mi byly doporu'ov*ny pro lep&) kvalitu tisku. P@i zb%(n[m} prolistov*n) p@)ru'ky k jedn[ z nich jsem na&el alespo zm)nku, kam si z*jemce - program*tor m+(e napsat o publikaci popisuj})c) @)d)c) kdy. Prost% bezva. Nav)c k t%mto tisk*rn*m se snad dod*v* 'e&tina jen v proveden) LATIN 2. Situace u moj) nov[ }CANON bubble jet BJ-230 je na&t%st) p@)zniv%j&). )d)c) kdy p%kn% v z*kladn) p@)ru'ce, sada Kamenick`ch ve dvou pracovn)ch m}odech a v jednom i LATIN 2, poprv[ jsem se dozv%d%l o rozd)lech v nastaven)ch znakov* sada '.1 a '.2. Nep@)jemn` probl[m m*}m v nefunk'n)m nasetov*n) automatick[ho od@*dkov*n) a pak jenom p@i tisku velik[ho . Proto(e tisk*rna m* p@)mo vestav%n` p}odava' pap)ru, uv%domil jsem si nutnost tisku st@)dav% lich[ a sud[ str*nky. Takovou mo(nost pot@ebuj) i u(ivatel[ tisknouc) }na traktorov` pap)r pro v`sledn` efekt oboustrann[ho tisku. Tyto jsem d@)ve sobecky p@ehl)(el, proto(e s*m pou()v*m pouze v}oln[ listy, ale nyn) se budu probl[mem zab`vat. V%c jsem konzultoval s autorem TEXTWRITERu, kter` ale nechce program k v+li t}omu p@ed%l*vat. Domluvili jsme se zat)m na vytvo@en) extern) rutiny pro tisk p@ipraven[ho dokumentu. Jak ale na apka, to zat})m nev)m. Mimochodem, podava'e lze dokopit i k n%kter`m jehli'kov`m tisk*rn*m, ale nap@)klad cena tohoto l*kav[ho doplku pro} LC-20 kolem 2000 K' se mi jev) pon%kud odpuzuj)c). Praktick[ sku&enosti s provozem bublinky na mal[m po')ta'i zve@ejn)m po}zd%ji, zat)m jsem jen tisknul n%jak[ texty. rychle, ti&e, draze ...$ -ZB- na mal[m po')ta'i zve@ejn)m po^ Tisk*rna SP-180 a podobn[ 2.'*st. Pozn*mka: p@i pr*ci na p@ekladu p@)ru'ky se mi p@ihodilo n%kolik zm%n. P@edev&)m je }ji( prodan* zap+j'en* tisk*rna do redakce, proto nen) uveden n%jak` uk*zkov` program v BASICu a cel` text je pouh`m p@ekladem} origin*ln)ho bez praktick[ho ov%@en). P+j'il jsem si ale celou origin*ln) p@)ru'ku a sezn*jil se tak s chyb%j)c) '*st). Je} v n) uveden souhrnn` p@ehled @)d)c)ch kd+, vysv%tlen) nastaven) znakov sady '.1 a 2 a tak[ popis paraleln)ho portu tisk*rny}. V&echny tyto z*le(itosti budou postupn% zde zve@ejn%ny. P@ed za'*tkem pr*ce na popisu @)d)c)ch kd+ tisk*rny jsem p@em`&}lel je&t% nad probl[mem jejich uspo@*d*n). Rozd%len) pou(it[ v p@)ru'ce se mi nezd* p@)li& p@ehledn[, ale nena&el jsem o moc }lep&). V jin`ch p@)ru'k*ch je k vid%n) t@)d%n) jin[, pop@)pad% (*dn[, jen hol` seznam. Samoz@ejm% tragick* situace nast*v* po}uze v p@)pad%, (e kdy nejsou uvedeny v+bec. Nejjednodu&&) bude z@ejm% pro m% uv[st nejprve ucelen` logick` p@hled povel+ }tisk*ren a d*le pak postupovat podle origin*ln) p@)ru'ky. Operace tisk*rny. Sem bych za@adil povely jako je inicializ}ace, nulov*n) a ovl*d*n) 'idla konce pap)ru. kter[ u SP-180 ale nen)$ Nastaven) tisku na str*nce. O ]pravu textu na }str*ce se b%(n% star* program - textov` editor. P@i tisku jin`mi programy, zejm[na r+zn`ch v`pis+ neb`v* ovl*d*n) textu nijak} upravov*no. Nap@)klad jsem ji( vid%l v`pisy d%lan[ na PC tisknut[ na traktorov[m pap)@e i na ohyb - fuj ! V takov`ch p@)pa}dech je mo(nost vyu()t @adu povel+ samotn[ tisk*rny. koda jen, (e z@ejm% (*dn* tisk*rna nem* tolik pot@ebnou funkci 'ek*n) n}a vlo(en) dal&)ho pap)ru p@i tisku na jednotliv[ listy. U n%kter`ch je mo(n[ vyu()t 'idlo konce pap)ru, ale to neb`v* um)st%n}o v optim*ln)m m)st%. Zb`v* ru'n) ovl*d*n) tla')tkem LINE ON/OFF, co( je takov[ nespolehliv[. Tiskov[ programy p@i volb% ru}'n% vkl*dan`ch pap)r+ prost% zastavuj) tisk, t)m se ale znemo(uje vyu(it) bufferu tisk*ren. Ten pak p@i tisku v pozad) sp)&e} vad). moje zku&enosti na ST$ V`b%r druhu p)sma a znakov`ch sad. Standartn) tisk*rny b%(n% umo(uj) r+zn[ modifikac}e tisku znak+, n%kter[ maj) i r+zn[ sady p)sem. T)m nem*m na mysli jin[ znakov[ sady, ale odli&n[ proveden) t%ch sam`ch. Nap@})klad n%kter[ tisk*rmy 24 jehli'ek$ maj) i proveden) p)sma psac)ho. N%kdy se za odli&nou znakovou sadu pova(uje i NLQ p)smo,} z@ejm% m* pak jinou bodovou matrici a ned%l* se jen prost`m dvoj)m pr+chodem @*dku. Download - u(ivatelsk[ sady znak+.} Tyto povely pat@) mezi nejv%t&) odli&nosti mezi tisk*rnami. Li&) se v mdu Standart a IBM, v po'tu znak+, kter[ je mo(n[ }p@edefinovat, probl[my nar+staj) u tisk*ren s v)ce fonty. Grafick[ povely. P@)m[ @)zen) jehli'ek, dnes na vy&&)ch po}')ta')ch 'asto jedin` pou()van` zp+sob tisku. Je pomalej&), ale zato je mo(n[ tisknout cokoliv. P@i 'ten) p@ehled+ @)d)c)}ch povel+ tisk*ren je t@eba d*vat pozor na to, (e @ada kd+ je shodn* v mdu IBM a Epson, n%kter[ ale funguj) pouze v jednom }z nich, ty zvl*& vype'en[ d%laj) v obou re(imech ]pln% odli&n[ v%ci. Obvykle jsou v p@)ru'k*ch uvedeny spole'n% s poukazy na} odli&nosti, n%kdy jsou oba mdy ]pln% odd%len[. P@ehled k SP-180 je proveden` spole'nou formou. Tak(e za')n*me od strany }43. Tiskov[ p@)kazy.CR 13 0D N*vrat tiskov[ hlavy na za'*tek @*dku. V mdu Epson ru&) SO je-li} navolen` automatick` LF, u IBM jej ru&) v(dy. D*le m* inicializovat tisk. Z@ejm% zp+sob) vyti&t%n) @*dku, jeho( d[lka je me}n&) ne( maxim*ln), jinak je necel` @*dek vyti&t%n po p@echodu do stavu ON OFF. Tot[( prov*d) v&echny n*sleduj)c) tiskov[ pove}ly.LF 10 0A P@echod na nov` @*dek a n*vrat hlavy na jehoza'*tek, ru&) SO. Z popisu je vid%t, (e cel` s}yst[m nastavov*n) automatick[ho LF a pou()v*n) CR je uhozen`, sta'ilo by p@ece pos)lat jednodu&e LF. Mo(n* ale existuj) tisk*}rny, kter[ po LF nevrac) automaticky hlavu do lev[ polohy.FF 12 0C Posun pap)ru na za'*tek dal&) str*nk}y. Jej) d[lka je nastavena sp)na'em '.1-4 nebo libovoln% povelem ESC C n. Ru&) SO.VT 11 0B Vertik*n) ta}bul*tor, zp+sob) posun na dal&) vertik*ln) zar*(ku, nen)-li nastavena provede FF. Ru&) SO.ESC J n 27,74,n 1B,4A,n} Jednor*zov` posun LF$, jeho hodnota je vyj*d@ena jedn)m bytem a neukl*d* se do pam%ti tisk*rny. V mdu Standart dal&) tisk} prob)h* na aktu*ln) pozici sloupce, u IBM se hlava vrac) na lev` okraj. Posun prob)h* v n/216" nebo n/144" v z*vislosti na }nastaven) povelem GS n. Neru&) SOESC jn 27,106,n 1B,6A,n Jednor*zov` inverzn) - zp%tn` posun @*dku. Ostatn) plat}) jako v p@edchoz)m. Nastaven) druhu p)sma.ESC P 27,80 1B,50 Ru&) p)smo Elite. Z@ejm% vrac) Pica$ESC }M 27,77 1B,4D Nastav) Elite. U jin`ch tisk*ren b%(n% neplat) pro IBM.SI 15 0F Nastaven) k}ondensovan[ho p)sma 17 cpi. komprimovan[ho, zhu&t%n[ho$ Tot[( ESC SIDC2 18 12 Zru&en) kondenzovan[ho p})sma.ESC x 1 1$ 27,120,491$ 1B,78,3101$ Nastaven) NLQ tisku. Jedni'ka m+(e b`t vyj*d@ena svoj) ASCII hodnotou nebo p@)}mo ')slem jedna. NLQ nepracuje u p)sma komprimovan[ho, ale je zapamatov*no.ESC x 00$ 27,120,48 nebo 0 Zru&en) NLQ.ESC} p 1 27,112,49 1B,70,31 Nastaven) proporcion*ln)ho mezerov*n). Je zde rozd)lnost &)@ky mezi Draft a NLQ. Povely BS a} DWL jsou ignorov*ny. Jedni'ka m* op%t dvoj) vyj*d@en).ESC p 0 27,112,48 1B,70,30 Ru&) proporcion*ln) mezery.ESC} S 0 27,83,48 1B,53,30 Nastav) Superscript - horn) index.ESC S 1 27,83,49 1B,53,31 Nastav) Subscript - }spodn) index. Jedni'ka i nula m* op%t dvoj) reprezentaci.ESC T 27,84 1B,54 Ru&) indexy.ESC 4 27,52 } 1B,34 Platn` jen pro Standart, kde nastav) tisk kurz)vou. Italic$ESC 5 27,53 1B,35 Zru&) tisk kurz)}vou. V mdu IBM po dopln%n) parametrem @)d) LF.ESC ! n 27,33,n 1B,21,n Kombinovan[ @)zen) druhu tisku jednotliv` }mi bity parametru. D7 - podtr(en) D6 - kurziva D5 - dvojit* &)@ka D4 - vertik*ln% zdvojen` tisk D3 - zv`razn%n` tis }k D2 - komprimovan` tisk D1 - proporcion*ln) mezery D0 - EliteESC E 27,69 1B,45 Nastav) zv`razn%n[ p)s }mo Pica nbo Elite. U komprimovan[ho tisku p@ejde na zv`razn%n[ Pica. Toto p)smo je &)r&) ne( norm*ln). Zv`razn%n) se dociluje } dvoj)m tiskem bod+ vedle sebe na vzd*lenost 1/120" u p)sma Pica, 1/144" u Elite.ESC F 27,70 1B,46 Zru&en) z }v`razn%n[ho p)sma.ESC G 27,71 1B,47 Nastav) vertik*ln% zdvojen[ p)smo. Tiskov[ body jsou tisknuty dvakr*t na}d sebou ve vzd*lenosti 1/144". P)smo je tak tro&i'ku vy&&) ne( norm*ln). Tato metoda tisku nepracuje p@i nastaven`ch indexech} nebo NLQ, ale povel je zapamatov*n a prov*d%n po jejich zru&en).ESC H 27,72 1B,48 Zru&) vertik*ln% zdvojen}[ p)smo.SO 14 0E Nastaven) p)sma dvojit[ &)@ky do konce @*dku. ru&) jej v%t&ina povel+ posunu pap)ru}$ Plat) i tvar ESC SO.DC4 20 14 Ru&) SOESC W 1 27,87,49 1B,57,31 Tvrd[ nastaven) dvojit[ }&)@ky p)sma. Lze zru&it pouze stejn`m povelem s parametrem nula. Oba parametry mohou m)t op%t dvoj) vyj*d@en) - jako ASCII ne}bo skute'n* nula a jedni'ka. pokra'ov*n) p@)&t%. -ZB-t op%t dvoj) vyj*d@en) - jako ASCII neWFINERadek t%rba, RASTERTento p@)sp%vek nebo sp)&e p@)sp%ve'ek :-$ se v%nuje probl[mu tzv. jemn[ho rolov*n) obrazu p@i }v`pisech na obrazovku.U( v z*kladn) "U(ivatelsk[ p@)ru'ce", dod*van[ k po')ta'i Atari, je v kapitole "Obrazov` editor" str}.122, 123$ pops*na m.j. i funkce adresy 622. U( z textu zde uveden[ho jasn% plyne, (e ani s*m pisatel nepochopil spr*vn% efek}t, kter` m* b`t d+vodem pro jej) pou(it).V p@)ru'ce se uv*d):622 listing 0 - norm*ln) 255 - pomal`Tak zapr}v[, p@i ukl*d*n) hodnoty na tuto adresu se rozezn*v* pouze "nulov*" a "nenulov*" , tak(e m)sto 255 tam m+(ete ulo(it jak[koli} nenulov[ ')slo to je v&ak jenom detail$.Podstatn[ ov&em je, (e onen v`klad "pomal`" znamen* ve skute'nosti "jemn`".I j* }s*m jsem kdysi d*vno p@i testov*n) t[to adresy poznamenal, (e jej) nastaven) k ni'emu nen), obzvl*&t% kdy( jsem si p@e'etl, (}e by m%la b`t vhodn* pro listov*n) dlouh`ch program+. Cukalo to toti( stejn%, akor*t (e pomaleji. Ob*v*m se, (e takto pochopi}lo funkci t[to adresy hodn% atarist+. Pokud mezi n% pat@)te, budete p@ekvapeni.V OS po')ta'e Atari toti( je a funguje ruti}na pro jemn[ rolov*n). Pracuje ov&em jen s @*dky, kter[ maj) v DisplayListu nastaven bit 5. Toto nastaven) v&ak nemus)me d%la}t ru'n%, ale op%t je v OS. DisplayList bude upraven prvn)m povelem GRAPHICS po nastaven) adresy 622 nenulovou hodnotou.Tak(}e ve&ker` "f)gl" jemn[ho rolov*n) spo')v* v tomto:POKE 622,1:GRAPHICS 0Zkuste si sami odeslat v BASICu tento @*dek a pak }odrolov*vat. Te u( snad souhlas)te, (e jde o jemn[ rolov*n), ne?!Jenom V*s mus)m upozornit, abyste v okam(iku testov*n) t[!}to funkce m%li "vy'ist%nou" pam%. Jinak budete m)t nejspodn%j&) @*dek pokryt n%jak`mi znaky. Vypl`v* to z vnit@n) architektu"}ry ANTICu mikroprocesor pro zobrazov*n) a GTIA$ - Nebudu se zde rozepisovat podrobn% o d+vodech, pro' to tak je, nebo tato #}problematika je na vysv%tlen) slo(it%j&).Demonstra'n) progr*mek FINE.COM vypad* v assembleru takto:10 ;FINE.MAC20 $}.OPT NO LIST30 = 200040 RUN50 LDA #160 STA 62270 JMP 10$80 ;90 = 02E0100 .W%}ORD RUN ;startovac) adr.Princip:Provede se napln%n) adresy 622 hodnotou 1 a vol* se DOS, kter` p@i sv[ inicializaci s*m&} zajist) zavol*n) GRAPHICS 0.rincip:Provede se napln%n) adresy 622 hodnotou 1 a vol* se DOS, kter` p@i sv[ inicializaci s*m  nl  X;Radek Sterba, RASTEREI( 2RUN<Q>FPnP!@ :ZX;dn RUNBYTES FRE ?=?%?=?ېJOYVBI , GREDIK.TBARadek t%rba, RASTERPro uk*zku pou(it) VBI jsem vyrobil assemblerovsk` program JOYVBI, kter` je driver)}em ovlada'em$ joysticku.Po na'ten) do pam%ti a jeho spu&t%n) A=USR7000$ se v lev[m horn)m rohu obrazovky objev) &ipka. S *}touto &ipkou lze pohybovat joystickem. Proto(e tato rutina b%() ve VBI, m+(eme nez*visle na n) prov*d%t jin[ 'innosti t@eba +}spustit BASICovsk` program$. Aby to v&echno m%lo v`znam, sledov*n)m n*sleduj)c)ch adres z)sk*me informace:6FFD .. x-ov* so,}u@adnice &ipky 0 a( 255, platn* oblast 48 a( 207$6FFE .. y-ov* sou@adnice &ipky 0 a( 255, platn* oblast 32 a( 223$6FF-}F .. tla')tko 0..pu&t%n[, 1..stla'en[$VBI rutina funguje tak, (e sleduje joystick a podle n%j m%n) p@)slu&n[ sou@adnice. N.}a tyto sou@adnice vykresluje &ipku pou()v* PMG$. V okam(iku stla'en) tla')tka &ipka zm%n) barvu a je znemo(n%n jej) pohyb. T/}o je kv+li BASICu, aby m%l 'as p@evz)t moment*ln) sou@adnice a prov[st (*danou akci. A( je BASIC hotov, vynulov*n)m adresy 60}FFF op%t &ipku uvoln).Tyto adresy ale m+(ete t[( m%nit sami a t)m um)stit &ipku na po(adovan[ m)sto POKE 6FFD,X a POKE 6F1}FE,Y$ nebo zak*zat jej) pohyb POKE 6FFF,1$.Tak(e hlavn) '*st BASICu m+(e vypadat t@eba takto:100 POKE 6FFF,0110 IF NO2}T PEEK6FFF$ THEN 110120 X=PEEK6FFD$-48:Y=PEEK6FFE$-32130 IF X<0 OR X>159 OR Y<0 OR Y>159 THEN 100140 COLOR 1:PLOT X,3}Y150 GOTO 100Popis:100 Inicializace. Umo(n%n) pohybu &ipky.110 Program z+st*v* na tomto @*dku, dokud nen) stla'eno tla'4})tko.120 P@epo'et sou@adnic na obrazovkov[ sou@adnice.130 Jestli(e jsou mimo povolen` rozsah, skok zp%t, na @.100$ povolen5}) pohybu &ipky, atd.140 Vlastn) akce pro bod X,Y.150 P@echod na @.100. Tam bude znovu povolen pohyb &ipky, atd.Pro uk*zk6}u pou(it) rutiny JOYVBI.OBJ t.j.p@elo(en` program JOYVBI.LM$, jsem vyrobil jednoduch` grafick` editorek GREDIK.TBA$. M* jen7} p*r funkc), ale vyu(it) VBI pro kurzor ve tvaru &ipky ho d%l* zaj)mav%j&)m. Takt[( nezanedbateln`m faktorem je zna'n[ zjedno8}du&en) samotn[ho BASIC programu, kter` u( se nemus) o pohyb joysticku v+bec starat.Technick[ ]daje:Rutina JOYVBI.OBJ je um9})st%na od adresy 7000 a pou()v* pam% od 6FFD a( do 74FF v tom je zahrnut i PMG prostor$.Nezapomete, (e p@ed samotn`m v:}ol*n)m A=USR7000$ mus)te rutinu nahr*t do pam%ti BLOAD"D:JOYVBI.OBJ"$!!!t i PMG prostor$.Nezapomete, (e p@ed samotn`m vL10 ;JOYVBI.MAC20 ;Radek Sterba, RASTER 1995.430 ;40 .OPT NO LIST50 ;60 ZAC = $700070 *= ZAC80 ;90 PM<}G = $74000100 ;0110 COL1 = 10 ;BARVA SIPKY NORMALNE0120 COL2 = 14 ;BARVA SIPKY PRI STLACENI TLACITKA0130 =}CUX = ZAC-3 ;SIPKA-POS.X0140 CUY = ZAC-2 ;SIPKA-POS.Y0150 CUT = ZAC-1 ;SIPKA-TLACITKO0160 ;0170 ;0180 PL>}A ;POC.PARAMETRU (NEBUDE POUZIVAN)0190 LDA #48 ;INICIAL.X0200 STA CUX0210 LDA #32 ;INICIAL.Y0?}220 STA CUY0230 LDA #0 ;TLACITKO0240 STA CUT0250 ;0260 JSR INIT ;INIT PMG0270 JSR VIEW ;Z@}OBRAZ SIPKU0280 ;0290 LDY # VBI ;HORNI0310 LDA #7 ;A}POVINNA KONSTANTA0320 JSR $E45C ;SPUST VBI!0330 RTS ;KONEC0340 ;0350 ;INICIALIZACE PMG0360 INIT0370 B} LDA # >PMG ;PMG STRANKA0380 STA 542790390 LDA 5590400 ORA #24 ;PMG HRAC, JEMNY0410 STA 5590420 C} LDA 6230430 AND #240 ;HORNI 4 BITY NECHA STEJNE0440 ORA #1 ;PMG NAD VSIM0450 STA 6230460 LDA #D}00470 STA 53256 ;SIRKA PMG0480 LDA #20490 STA 53277 ;POVOLENI PMG (POUZE HRACU)0500 RTS ;KONEE}C INICIALIZACE0510 ;0520 VBI0530 JSR INIT ;INIT POKAZDE (KVULI NAPR. PRIPADNEMU POVELU NASTAVENI GRAFIKY)0540 F}LDA CUT ;JE STLACENO TLACITKO?0550 BNE NIC ;ANO => POHYB ZNEMOZNEN (ABY SE MOHLA PREVZIT X-OVA A Y-OVA SOURADNICG}E)0560 ;OPETOVNE POVOLENI POHYBU SE PROVEDE VYNULOVANIM CUT0570 LDA 644 ;=STRIG00580 EOR #1 ;NEGACE0590 H} STA CUT ;UCHOVANI STAVU TLACITKA0600 ;0610 LDX #00620 LDA 632 ;STICK00630 AND #4 ;VLEVO?064I}0 BNE NA10650 DEC CUX0660 NA1 LDA 6320670 AND #8 ;VPRAVO?0680 BNE NA20690 INC CUX0700 NA2 LDA J}6320710 AND #1 ;NAHORU?0720 BNE NA30730 DEC CUY0740 NA3 LDA 6320750 AND #2 ;DOLU?0760 BNEK} NA40770 INC CUY0780 NA40790 ;0800 NIC JSR VIEW ;PREKRESLIT SIPKU0810 ;0820 JMP 58466 ;UKONCENI VBI0830 ;L}0840 ;0850 ;VYKRESLENI SIPKY NA POZ.CUX,CUY0860 VIEW0870 LDA #0 ;NEJPRVE SMAZANI CELEHO PMG00880 LDX #2410M}890 CLS STA PMG+7,X0900 DEX 0910 BNE CLS0920 ;0930 LDA CUX ;SOURADNICE X0940 STA 53248 ;PMG0-X SOUN}R.0950 LDY CUY ;SOUR.Y0960 LDX #00970 TIS LDA MAP,X ;BITOVA MAPA0980 STA PMG,Y ;PMG00990 INY 10O}00 INX 1010 CPX #7 ;VYSKA SIPKY1020 BNE TIS1030 ;1040 LDX #COL11050 LDA CUT ;TLACITKO?1060P} BEQ PUS ;PUSTENO => SKOK1070 LDX #COL2 ;STLACENO1080 PUS STX 704 ;BARVA PMG01090 ;1100 RTS Q} ;KONEC PODPROGRAMU1110 ;1120 ;OBRAZOVA DATA PRO SIPKU (BITOVA MAPA)1130 MAP .BYTE 0,120,112,120,92,8,000 RTS kbATVBAMM GREDIK.TS}BARadek Sterba, RASTER 1995#Z D:JOYVBI.OBJ(2;@ ,3] +AR@7(}ßT}٠](!Vyrobil Radek Sterba, RASTER 19954"( ((Klavesa .. Funkce"(5E ( ..Pohyb danym smeremE( U}..Vykresleni bodu nebo cary68!(,,, ..Nastaveni barvy8( ..Smazani bodu7< ( ..Rezim: Kresleni bodu<( ..RV}ezim: Kresleni car8+( ..Save obrazu+( ..Load obrazu9( ..Help;)<+@%@2$6-U:@,>0@W}@X0@@r0@AR@(}F6-?: Br,PZ%X}6-@6-@f% Ad Bqi F:Ad,AUAn(F: Bq,Ax16-F: BY}i,&@H16-F: Bp,&@2!! )!AYA!! )!AYA"@Z}, A@A , Au ,/ 6-6- A B[}q@)16-F: Bi,&@H16-F: Bp,&@2!! )!AYA !! )!AY\}A =@I*@Q'6-@R&=(}Barva @&-"@H6--( }Mazaci barva2"@f]}&(}Kresleni bodu ...26-@>"@g%(}Kresleni car /\|16-@>6-6@&"A&^},0"@ A:"@v AD9"@r9(%},,,,,ody,ary,ave,oad,elp A_} ɛ%%(}Save obrazu na (DEVICE:NAME)AR> @@B@`}Ad@ AR@(}Ok.$ɛ$$(}Load obrazu z (DEVICE:NAME)ARa}> @@C@Ad@AR@(}Ok.$b} D:GREDIK.TBA @@C@Ad@AR@(}Ok.$pph0o oo p pBp \`tԭ/ /o) oЩ` po2Iox)ox)ox)ox)d}o pLbtoЬopt o`xpx\Щ` po2Iox)ox)ox)ox)@VBI pro za'*te'n)ky$Radek t%rba, RASTERVBI je jedno z nej'ast%ji pou()van`ch p@eru&en). Umo(uje toti( pseudo soub%(n[ f}vykon*v*n) dvou proces+ - tj. je mo(n[ m)t spu&t%n[ dva procesy, kdy jeden prob)h* v norm*ln)m 'ase a druh` b%hem vertik*ln)hg}o p@eru&en).O p@esn`ch principech se te u( nebudu zmiovat, nebo ty lze naj)t v mnoha p@)ru'k*ch. Nyn) V*m chci prakticky h}uk*zat, jak lze pou()t VBI ve vlastn)m programu.Pro vertik*ln) p@eru&en) jsou zapot@eb) dv% rutiny:Prvn) rutina je vlastn)i} program, kter` m* b`t prov*d%n b%hem VBI. Mus)te si uv%domit, (e tato rutina je vol*na 50 kr*t za sekundu, tak(e je doba jejj})ho prov*d%n) omezena na cca 20000 strojov`ch cykl+. Dal&)m omezen)m je, (e tato rutina mus) po vykonan) sv[ 'innosti sko'it k}na danou adresu vektor$.Druh* rutina je inicializa'n). Prov*d) spu&t%n) rutiny pro VBI. Proto(e p@i spou&t%n) je bezpodm)nel}'n% nutn[ zn*t p@esnou adresu za'*tku rutiny pro VBI, b`vaj) tyto rutiny um)st%ny napevno v pam%ti a nejsou relokatibiln) - m}tj. nefunguj) p@i um)st%n) jinam$.Inicializa'n) rutina:Hlavn) '*st) t[to rutiny je sekvence, kter* spust) vlastn) rutinu n}pro VBI: LDY #START ;Horn) byte LDA #07 ;Konstanta JSR E45C ;SETo}VBV ;Program pro nastavov*n) vektor+ p@eru&en) RTS ;Konec inicializaceRutina pro VBI vlap}stn) program$:START ... ... vlastn) 'innost rutiny maxim*ln% cca 20000 str.cykl+$ ... ... q} JMP E462 ;XITVBV ;Vektor ukon'en) VBIP@i pou()v*n) VBI si dejte pozor na n*sleduj)c) probl[my:r}1.$Pozor na z*sobn)k.Pokud v rutin% VBI pou()v*te jak`mkoli zp+sobem z*sobn)k a to nejen instrukcemi PHA,PLA - i JSR a RTs}S pou()v* z*sobn)k!$, dbejte na to, aby na konci byl p@esn% ve stavu, v jak[m byl v okam(iku za'*ku rutiny.2.$Zm%na obsahut} prom%nn`ch.Pokud v rutin% VBI m%n)te obsah n%jak[ho m)sta v RAM a to ur'it% d%l*te$, dejte si pozor, aby tato pam%ov* buu}ka nebyla pou()v*na v hlavn)m programu. Pokud si nejste jisti, uvete na konci rutiny VBI jej) obsah do p+vodn)ho stavu.P@)kv}lad:V hlavn)m programu prov*d)te p@esun pam%ti - berete odn%kud z pam%ti byte a d*v*te ho STA206$,Y.Nyn) si p@edstavte, (ew} ve VBI b%() &patn% napsan* rutina, kter* pou()v* buku 207 a neobnovuje jej) p+vodn) obsah. K 'emu dojde?Hlavn) program si x}nastav) adresy 206 a 207 tak, aby ukazovaly na c)lov[ m)sto. B%hem dal&) 'innosti hlavn)ho programu se ale vyvol* p@eru&en) ay} rutina VBI buku 207 zm%n). Pak vr*t) 'innost do hlavn)ho programu. Ten pokra'uje ve sv[ 'innosti a ukl*d* na STA206$,Y. Prz}oto(e buka 207 byla zm%n%na a v tomto p@)pad% ji hlavn) program pou()v* jako horn) byte pro ur'en) c)lov[ho m)sta, ulo() se {}p@)slu&n` byte na ]pln% jin[ m)sto, ne( p+vodn% m%l. Ve v%t&in% p@)pad+ to zp+sob) hav*rii syst[mu, proto(e dojde nap@. k p@e|}psan) byte v n%jak[ strojov[ rutin%.3.$Nekone'n[ smy'ky.Ve VBI nesm)te m)t (*dnou 'innost trvaj)c) d[le ne( 20000 cykl+ -}} tj. pro p@edstavu doba men&) ne( 1/50 sekundy.V (*dn[m p@)pad% tedy nesm)te m)t ve VBI rutin% nekone'nou smy'ku nebo jej) o~}bdoby.Jednou z nej'ast%j&)ch chyb za'*te'n)k+ b`v* nap@. smy'ka s 'ek*n)m na stisk kl*vesy um)st%n* v rutin% VBI. Toto 'ek*n}) bude toti( bezpochyby trvat d[le ne( 1/50 sekundy a syst[m tedy zhavaruje naprosto spolehliv%.4.$Myln* ]vaha.Dost atari}st+ se domn)v*, (e p@em)st%n)m '*sti pr*ce do rutiny VBI odleh') 'innost hlavn)mu programu, a t)m zrychl) b%h cel[ho programu}. Chybn* informace ve stylu, (e hudba, kter* hraje na pozad) ve VBI$, nezpomaluje b%h hlavn)ho programu, se dokonce objevuje} i v n%kter`ch p@)ru'k*ch.Nen) probl[m napsat rutinu pro VBI, kter* bude tak n*ro'n*, (e b%h hlavn)ho programu zpomal) vidit}eln%.Z*kladn) omyl je toti( v tom, (e pokud ve VBI neb%() (*dn* rutina, (e je n%jak` strojov` 'as nevyu()v*n. Pravdou ale je}, (e rutina ve VBI pracuje v(dy na ]kor hlavn)ho programu.(*dn* rutina, (e je n%jak` strojov` 'as nevyu()v*n. Pravdou ale je; Kurs programov*n) "C" '*st 5. ------------------------------------ =37,=92,=123,=91,=93,=39 definice znaku} procenta, obr*cen[ho lom)tka, lev[ slo(en[ z*vorky, lev[ a prav[ lomen[ z*vorky, apostrofu. Hned v ]vodu mus)m upozorni}t na z*va(nou chybu ve vysv%tlen) 'innosti p@)kazu "while" v minul[m pokra'ov*n). Z*vislost pr+b%hu cyklu na podm)nce je p@}esn% opa'n*, ne( jsem ji popsal. Opakov*n) p@)kaz+ uveden`ch za WHILE se prov*d), dokud plat) @)d)c) podm)nka. Program se "za}cykl)" pokud platit nep@estane. Nev)m, jak jsem mohl napsat &patn[ vysv%tlen), p@esto(e jsem si nejd@)ve v n%kolika p@)ru'k}*ch p@e'etl, (e pr*v% t)m se li&) "C" od PASCALu, pak jsem zkou&el kontroln) progr*mky, no a pak jsem to stejn% zvrtal. Mohl }bych sice tvrdit, (e jsem to ud%lal z*m%rn% &patn%, aby si na to program*to@i p@i&li sami, ale to bych kecal. Opakov*n) }a prohlubov*n) poznatk+ I. Nejprve shrnu p@)kazy pro n*siln[ zm%ny pr+b%hu programu: "break" - opou&t) cyklus, jen ten,} v n%m( byl pou(it`. "continue" - sk*'e na konec cyklu, v n%m( je pou(it`, zp+sob) tedy jeho nov` pr+b%h pokud nejsou jin}[ podm)nky pro jeho ukon'en)$ bez vykon*n) n*sleduj)c)ch p@)kaz+. "return" - ukon'uje funkci, ve kter[ je pou(it` a m+(e v}racet n%jakou hodnotu. Jej) typ je z*visl` na typu funkce. "exit" - ukon') cel` program. V na&em "C" asi v+bec nen) a podl}e u'ebnice se pou()v* m*lo. "goto" - je to tady, i C['ko m* p@)kaz skoku. Doposud jsem to tajil, proto(e je to p@i struktu}rovan[m programov*n) fuj. Sk*'e na n*v%&t), kter[ se nemus) p@edem definovat, ale jen v r*mci jedn[ funkce. V seznamu p@)kaz+} pro na&e C chyb). V`pis programu pro zopakov*n) d@)v%j&)ch poznatk+ obsahuje 3 p@)klady z m[ nov[ u'ebnice jazyka "C", kt}er[ se mi zal)bily. Program m* ')st zad*van[ znaky z kl*vesnice, vypisovat je na obrazovku, mezeru a tabul*tor nahradit "ohr*}dkou" a ukon'it 'innost po stisku p)smene Q. Prvn) @e&en) je odstra&uj)c). P@)kaz continue je um)st%n` do p@)kazu switch, c}o( m+(e znesnadnit pochopen) programu. Zp+sobuje toti( skok na konec smy'ky while, proto(e switch nen) cyklem. Tak[ by zde by}lo lep&) pou(it) do while, aby se prvn) 'ten) vstupu nemuselo prov*d%t zvl*& p@ed cyklem. Druh[ @e&en) m* zapracovan[ test}ov*n) ukon'ovac)ho znaku hned v podm)nce cyklu. T@et) @e&en) je zkr*cen) druh[ho, ale po ]spo@e ji( nen) program tak p@ehledn}`. pozn*mka: v na&em syst[mu zad*v*n) dat z kl*vesnice nen) z@ejm% mo(n[ p@edat holou jednu mezeru. K z*m%n% dojde a( po n}aps*n) mezery n*sledovan[ n%jak`m jin`m znakem, kter` v&ak ji( nen) p@e'ten spr*vn%. Jak jsme si ji( v&imli d@)ve, funkce get}char$ bere spr*vn% jen jeden znak n*sledovan` stiskem RETURN, kter` se ch*pe jako druh` zadan` znak. Znak tabul*toru se nap)}&e stiskem kl*ves ESC a TAB. Pou(it* prom%nn* je typu int, ale ]pln% shodn% program pracuje i s typem char. Pokud je jen jedn}oznakov*, rozd)ly se n%jak zvl*& neprojevuj). Ned*vno m% to hrozn% potr*pilo na ST, ne( mi program za'al chodit. s pomoc) J}irky$ e&en) ]lohy v`po'tu faktori*lu I. Jako obvykle jsem se sna(il vy@e&it zadanou ]lohu z rubriky "Hlavolamy" pomo}c) jazyka "C". Vzdal jsem p+vodn) ]mysl vytvo@it algoritmicky shodn` program s Honzov`m origin*lem, proto(e obsahuje funkci l}ogaritmu, kter* v na&em celo')seln[m C['ku chyb). Zkusil jsem sice i matematicku knihovnu, kter* umo(uje v`po'ty s desetinno}u te'kou, ale zavrhl jsem jej) styl pr*ce. Mysl)m si, (e je natolik odli&n` od pou()v*n) funkc) "C" na velk`ch po')ta')ch, (e} snad nem* smysl se jej u'it. P@ipom)n*m, (e na&e C['ko nepova(uji za prost@edek pro tvorbu prima program+, ale p@esto nem+}(e b`t na&kodu se v n%m pocvi'it. Z*kladn) p@)kazy jsou toti( nejen shodn[ s velk`mi C['ky, ale podobn[ jsou i t%m v jin`ch s}trukturovan`ch jazyk+, jako je PASCAL, n%jak* datab*se a pro n*s TURBOBASIC. I v n%m je mo(n[ ps*t programy bez jedin[ instru}kce GOTO !$ a m)t je tak nejen program*torsky "'ist[", ale i naprosto nez*visl[ na ')slov*n) @*dk+. Proto(e p)&u tento kur}s sp)&e pro programov*n) ne( jako v`uku jazyka, rozeberu ]lohu s faktori*lem nejprve principieln%. To pro ty, kte@) stejn% ja}ko j* moc nepochopili Honzovy z*hadn[ v`po'etn) postupy. Zejm[na m% zar*(elo pou(it) algoritmu pro ur'en) d[lky ')sla. Asi m}i st@edo&kolsk* matematika vypadla ]pln% z hlavy, pamatuji si jen, (e s')t*n)m algoritm+ ')sel se prov*d) jejich n*soben) ale} jinak nic. Pozd%ji mi to Honza vysv%tlil a nic na tom vlastn% nen). Pomoc) triku s logaritmy odhadl i vhodnou velikost dimen}zov*n) pam%ov[ho prostoru na nejvy&&) mo(n` v`sledek. Funguje to ov&em u logaritmu des)tkov[ho, nikoliv p@irozen[ho. Hon}zou zadan* ]loha p@edepisuje v`po'et faktori*lu ')sla s ]plnou p@esnost) - na v&echny platn[ ')slice. *dn[ zaokrouhlov*n).$} Prvn) p@ek*(kou je pou()van* p@esnost dan[ho po')ta'e. Na n%jak`ch sto platn`ch ')sel asi nebude b%(n% po')tat (*dn`. Jde ov}&em o p@esnost ji( naprogramovan`ch matematick`ch rutin zabudovan`ch v opera'n)m syst[mu. Po')ta' v principu nem* p@esnost om}ezenou nijak - v(dy jeho procesor um) se')st nebo ode')st dva bajty, pop@)pad% rotov*n)m bit+ n*sobit a d%lit dv%ma. Pro v}y@e&en) ]lohy je nutn[ napsat vlastn) n*sobic) rutinu. Je lhostejn[, jak` programovac) prost@edek se pou(ije proto(e je pot@e}ba skute'n% m*lo funkc). Algoritmus n*soben) v)cecifern[ho ')sla znaj) jist% v&ichni 'ten*@i ze z*kladn) &koly. Jednodu&e s}e n*sob) jednotliv[ ')slice od nejmen&)ho @*du po nejvy&&). P@i ka(d[m ]konu se v`sledek rozd%l) na p@enos do vy&&)ho @*du a }z+statek, kter` se dosad) na m)sto pr*v% n*soben[ ')slice. Z+statkem je ')slice nejni(&)ho @*du, v&echno ostatn) je p@enos do} vy&&)ho @*du, kter` se p@ed dal&)m n*soben)m p@i'te k n*sleduj)c) ')slici v po@ad). P@i ru'n)m n*soben) na pap)@e se u v)c}ecifern[ho n*sobitele prov*d) postupn[ n*soben) jeho jednotliv`mi ')slicemi a vznikl[ v`sledky se nakonec se'tou. Proto(e zad}an* ]loha p@ipou&t) nejv%t&) zadanou hodnotu 100, nebude p@i pou(it) po')ta'e takov` rozklad nutn`, proto(e p@esnost matemati}ck`ch rutin v OS posta'). Po')ta' si hrav% zapamatuje i dvojcifern[ p@enosy do vy&&)ch @*d+. P@esnost v`po'tu, 'ili po'et p}latn`ch ')slic je teoreticky neomezen*. Praktick`m omezen)m je velikost opera'n) pam%ti, kter` siln* povaha m+(e obej)t pou()}v*n)m pam%ti vn%j&), nap@)klad na disket%. Toti( na kazet% by virtu*ln) pam%t asi vytvo@it ne&lo. Jsem r*d, (e si Honza na n*}s nevymyslel po')t*n) s takov`mi maxi')sli, proto(e by to byla d%sn* d@ina. Uva(ujme tak[, (e p@i v%t&)ch hodnot*ch n*sobitel}+ by se musely i tyto rozkl*dat jako p@i v`po'tech ru'n)ch z d+vodu limitovan[ p@esnosti matematick`ch rutin. Brr !$ V&ec}hno co pot@ebujeme pro p@eveden) algoritmu do programovac)ho jazyka je v%d%t, co je to faktori*l - posloupnost 'initel+, post}upn% je n*sobit mezi sebou rozlo(en`m zp+sobem po jednotliv`ch ')slic)ch, p@i tom spr*vn% rozd%lovat meziv`sledky na p@enos a} zbytek. To p@i n*soben) z hlavy d%l*me prakticky bez po')t*n) odd%len)m posledn) ')slice. Programov% se meziv`sledek rozd%l)} jednodu&e pomoc) celo')seln[ho d%len) deseti a funkc) d%len) modulo, kter* d*v* zbytek operace. Ten samoz@ejm% p@i pod%len) }deseti je rovn` nejni(&) platn[ ')slici. Ve zdrojov[m textu @e&en) ]lohy je pou(ito n%kolik novinek. Pro vstup ')sla poslou}() funkce gets$, kter* m* povinn` argument jm[no @et%zcov[ prom%nn[, do n)( na'te text zadan` z kl*vesnice. Je skute'n% dobr}[, jak se p)&e v p@)ru'ce, prom%nnou nep@eplnit. Jinak se programu zbort) za sou'asn[ho vyd*v*n) nep@)jemn`ch zvuk+. tento p}r+vodn) efekt neb`v* 'ast`$ Obsah @et%zce lze p@ev[st na ')slo pon%kud zaml(en% popsanou funkc) val$ pokud je vzhledem k o}bsahu p@evod mo(n`. Funguje ale asi jen do trojcifern[ho ')sla, co( je divn[, ale v na&) ]loze posta'uj)c). Posledn) novou }funkc) je clear$, op%t nejasn% popsan*, z@ejm% ale skute'n% nuluje @et%zec, jinak by uveden` chybn` algoritmus musel vypo')t}*vat nespr*vn[ v`sledky. Matematick* funkce d%len) modulo m* jako oper*tor znak procenta, ale to nen) nic zv*&tn)ho. Pro ul}o(en) v`sledku je stejn% jako v @e&en) od Honzy pou(it` znakov` @et%zec. Je mnohem ]sporn%j&) ne( ')seln[ pole, proto(e na ka}(dou ')slici je t@eba jen jeden bajt. Proto by m%l b`t i rychlej&). A nakonec je snad i pr*ce s n)m jednodu&&), pokud program}*tor v) jak na to . V u'ebnic)ch jazyka se ve spojitosti s pou()v*n)m @et%zc+ hovo@) o ukazatel)ch, speci*ln)ch funkc)ch pro }pln%n) @et%zc+ a jejich porovn*v*n) a dal&)ch hr+z*ch, kter[ jeden m+(e zkou&et dva dny a ono stejn% nic nechod). Na&t%st) js}em se po porad% s kolegou Jirkou dozv%d%l jednoduchou pravdu o nakl*d*n) s chary. Nap@)klad "string" m+(e b`t jm[no prom%nn[ }typu char deklarovan[ t@eba na d[lku 100 znak+ a pod n)m se s n) pracuje skute'n% jako s @et%zcem. Ale v`raz stringn adresu}je p@)mo prvek @et%zce "n" a nakl*d* se s n)m jako s jednobajtov`m ')slem, pop@)pad% znakovou konstantou. Obsahuje-li nap@)}klad prom%nn* txt posloupnost znak+ 123, potom: printf"s",txt$; vytiskne 123 printf"c",txt1$; vytiskne 2 print}f"d",txt1$; vytiskne 50 Index 1 ukazuje na druh` prvek pole kter`m je znak 2 vyti&t%n` jako znakov* konstanta c, nebo} jako ')slo 50, kter[ je ASCII vyj*d@en)m tohoto znaku a je to skute'n` obsah dan[ho bajtu @et%zce. Pozn*mka: Z*pis prin}tf"s",txt1$; je chybn`, pokud jej pou(it` p@eklada' v+bec zkompiluje, zp+sob) tisk nesmysl+ Cel` v`po'et faktori*lu je} v programu odd%len do samostatn[ funkce faktorial$, hlavn) main$ slou() jen pro mo(nost op%tn[ho vyvol*n) v`po'tu nebo uko}n'en) cel[ho programu. Nijak jsem se s n) nep*ral, je se&it* narychlo a nic zaj)mav[ho na n) nen). Vlastn) v`po'et za')n* v}stupem ')sla pro v`po'et faktori*lu. Je @e&en cyklem do while, kter` je vhodn%j&) ne( while. Pokud zadan[ ')slo nele() v inte}rvalu 1 - 100 vrac) se zp%t na zad*n) ')sla. Pro zad*v*n) se pou(ije ta sama prom%nn* jako pro pozd%j&) v`po'et, nen) d+vod, }aby tomu bylo jinak. )slo je p@evedeno do prom%nn[ typu int a @et%zec je p@ipraven pro v`po'et. Nejprve je cel` vynulov*n a }potom je na nultou pozici nachyst*na jedni'ka jako v`sledek 1! a z*klad pro dal&) n*soben). Do prom%nn[ i je zad*na tak[ jedn}i'ka jako aktu*ln) d[lka v`sledku a sou'asn% slou() jako ukazatel na prvn) volnou pozici @et%zce. Pou()v*n) prom%nn[ i m% p}%kn% vypeklo. Jednodu&&) by byl algoritmus, kter` by postupn% proj)(d%l v&echny pozice @et%zce, p@e'etl bajt, p@ipo')tal p@en}os, rozd%lil v`sledek, ulo(il bajt a tak d*l. Jen(e tak by se zbyte'n% po')talo i s neobsazen`mi byty a proto pou()v*m hl)d*n}) d[lky v`sledku pro ka(d` pr+b%h. Pr+b%hy se samoz@ejm% opakuj) a( do hodnoty zadan[ho ')sla v'etn%, p@i'em( se n*sobitel }zv%t&uje o jedni'ku. Vlastn) n*soben) je rozd%leno do dvou '*st). V prvn) se prov*d) n*soben) p@edchoz)ho v`sledku ')slo po} ')sle beze zm%ny prom%nn[ i, v druh[ se p@)padn` vznikl` p@enos rozpo')t* na nov[ nejvy&&) pozice v`sledku za sou'asn[ inkre}mentace i. Proto(e p@enos m+(e b`t logicky nejv`&e dvoum)stn`, proto z*v%re'n` cyklus prob%hne nejv)ce dvakr*t. Zd* se mi t}o b`t jednoduch[, ale n%kde m*m chybu. Pro vy&&) hodnoty n! algoritmus po')tal chybn[ v`sledky, na co( jsem p@i&el srovn*n)m }s Honzov`m programem. Po "um%l[m" zv%t&en) d[lky v`sledku, co( samo o sob% nem+(e v`po'et zm%nit jsou-li byty @et%zce skute'n}% vynulovan[, po')t* v`sledky dob@e. Zato do velikosti 17! p@id*v* jednu a( dv% nuly do nejvy&&)ch @*d+, co( je vada sp)&e es}tetick*. Proto(e po posledn)m v`po'tu se p@id* jedna pozice nav)c, je po skon'en) cyklu ode'tena. P@edt)m je ale podm)nkou }testov*no, jestli k p@id*n) skute'n% do&lo, jinak p@i zad*n) 1! by vy&el nulov` v`sledek. Po dvou dnech zkoum*n) programu, }kdy jsem ji( nebyl schopn` ')st @*dky a jen si hore'n% opakoval: "To mus) chodit !" jsem dal&) pr*ci vzdal. Mo(n* n%kdo z v*s} na chybu p@ijde a po&le upraven[ @e&en), t@eba v Turbobasicu, to je u( jedno. Nem*m na mysli prost[ odmaz*n) nejvy&&)ch nepl}atn`ch nul, ale zabr*n)t v+bec jejich vzniku. Tisk v`sledku je uskute'n%n ')slo po ')sle. Bylo by mo(n[ tisknout p@)mo @et%}zec, ale a( po ]prav%. Nyn) obsahuje ')sla v kdu BCD jak p)&e Honza, kter[ se mus) p@ev[st na ASCII hodnoty. Jinak by se tis}kly nesmysly a( do prvn)ho v`skytu ')sla nula. Proto(e v t[to tabulce jsou ')seln[ znaky kdovan[ ve vzestupn[ @ad%, provede }se konverze jednodu&e p@i')t*n)m kdu ')slice nula. Ani nemus)me zn*t jej) kd zpam%ti nebo pracn% hledat tabulku, m*m doma }chaos$ n`br( pou(ijeme znakovou konstantu, asi takto: vi = vi  0Pak by se je&t% musel v`sledek v @et%zci zrcadlov% }oto'it, jinak by byl vlastn% psan` zprava doleva. Ve sv[m programu jsem z*v%re'nou ]pravu vynechal, proto(e v zad*n) ]lohy }byl jen tisk v`sledku na monitor a s vlastn)m @e&en)m faktori*lu nesouvis). Chyst*m ale na p@)&t% jako p@)klad pr*ce s @et%zc}i p%knou ]lo(ku z p@)ru'ky uv*d%n[ v rubrice RECENZE. Zm)n%nou mo(nost ode')t*n) znakov[ konstanty nula bych pou(il v p@)pa}d% po(adavku vstupu ')sla z kl*vesnice del&)ho ne( t@i m)sta. P@ijal bych je jako @et%zec op%t funkc) gets$ a provedl konver}zi jednotliv`ch ')slic. Jinou mo(nost v p@)ru'ce nevid)m. P@i odlaov*n) mi d%lal program z*sadn) chybu p@i vno@en) funkc) }gets$ a val$ do sebe. Podle pou'ek to m* libovoln% j)t, ale ne&lo to. Dal&) moje chyby byly nez*visl[ na pou(it[m jazyce }- pokusy o pr*ci s nedeklarovan`mi prom%nn`mi. Ze za'*tku jsem tak[ psal algoritmus po')taj)c) ]pln% n%co jin[ho, to mi p@ipo}m%lo b%(nou pou'ku z program*torsk`ch p@)ru'ek : "Dob@e si promyslet @e&en) ]lohy". Samoz@ejm% ji p@i 'ten) jinak pova(uji za} zbyte'nou a p@ehl)()m ji. -ZB-si promyslet @e&en) ]lohy". Samoz@ejm% ji p@i 'ten) jinak pova(uji za8/* FLOP c.33 */main()$( int c; c=0; printf("\Program z knihy \"Ucebnice jazyka C\""); printf(" autor: Pavel Herout\n"}); printf("\n\n prvni priklad\n"); while(c!='Q') $( switch(c=getchar()) $( case ' ': case '\t' : putchar(}'#'); continue; case 'Q' : break; default : putchar(c); break; $) $) printf("\n\n druhy p}riklad\n"); while((c=getchar()) !='Q') $( switch(c) $( case ' ': case '\t' : putchar('#'); break; }default : putchar(c); break; $) $) printf("\n\n treti priklad\n"); while((c=getchar()) !='Q') $( switch}(c) $( case ' ': case '\t' : c='#'; default : putchar(c); break; $) $)$)='Q') $( switchk/* faktorial cisla */main()do $( printf("\n\nVypocet faktorialu"); faktorial(); printf("\n\npro ukonceni stiskni Q \n")};$) while(getchar()!='Q');faktorial()$(int a,b,d,i,j,k;char v[200];printf("\n\nFaktorial cisla");/* vstup cisla */}do $( printf("\n\nvloz cislo n (1-100): "); gets(v); a=val(v); printf("\n\ncislo: %d",a);$) while((a<1) || (a>100)); } /* prvotni nastaveni pro vypocet */clear(v,200);v[0]=1;i=1; /* zahajeni vypoctu */ for (j=2;j<=a;j++) $(d=0; /}* nasobeni ulozeneho cisla */ for (k=0;k 0;i++) $(v[i]=b; d=d/10; $) /* zahadne prodlouzeni cisla */ i++; $)/* zruseni neplatne }nuly na zacatku */if (i>1) i--;printf("\n\ndelka faktorialu %d! : %d\n",a,i);/* tisk vysledku */for (j=i-1;j>=0;j--)} printf("%d",v[j]);$)1) i--;printf("\n\ndelka faktorialu %d! : %d\n",a,i);/* tisk vysledku */for (j=i-1;j>=0;j--)