home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 27 / Flop_Magazin_27_1993_United_Electronic_Crazies_cs_Side_B.atr / deko.cap < prev    next >
Text File  |  2023-02-26  |  9KB  |  3 lines

  1. ∮0≥80⌠3≈·¢ΦπDekoder BASIC program+¢µπStrana ú¢≥37¢πõØ⑤VODõø¢≥80¢¢     Pokud autor BASIC programu nechce, aby se mu n%kdo nepovolan` "hrabal" v jeho programu a r+zn`mi "vylep&en)mi" program po&kodil, m* n%kolik mo(nost), jak program ochr*nit p@ed vylistov*n)m. Jednou z nich je pom%rn% efektn) pou(it) registr+ 138 a 139 ╱◆8A a ◆8B$, kter[ zp+sob), (e program bude pracovat, ale nep+jde vylistovat. Krom% pou(it) t%chto dvou adres je dal&) podm)nkou ochrana p@ed stiskem kl*ves RESET a BREAK a potom bezchybn* pr*ce programu, aby jeho chod nebyl p@eru&en ERROR hl*&en). Bezchybn% pracovat by m%l ov&em ka(d` program, t)m sp)&e ten, kter` si zasluhuje ochranu.¢     Probl[m ov&em nastane, pokud autor chce program s*m doplnit a p@i&el ╱t@eba i omylem$ o p+vodn) nechr*n%nou verzi, nebo pokud n%kdo jin` ╱ov&em v%ci znal`$ chce program upravit ╱nap@. doplnit jin` typ tisk*rny, p@elo(it program do n*rodn)ho jazyka ...$. Pro tyto ]'ely je zde program DEKO V1.0, kter` dok*(e takto chr*n%n` program op%t p@ev[st do listingu.¢¢≥37¢πõØDEKO V 1.0õø¢≥80¢¢     Cel` program je naps*n v TURBO-BASICu. Proto(e hlavn) 'innost) programu je vlastn% cyklick[ prohled*v*n) p@evodn) tabulky mezi dan`m tokenem a jeho slovn) reprezentac), je cel` program zkompilov*n. Pr*v% v pou(it) cyklu je toti( patrn[ nejv%t&) zrychlen) oproti nezkompilovan[ verzi. Zde je nutn[ ov&em upozornit, (e a' je program v TURBO-BASICu, obsahuje p@evodn) tabulku pouze pro ATARI-BASIC, tak(e ostatn) basick[ programy de&ifrovat neum).¢     Po spu&t%n) programu se vyp)&e tituln) obrazovka a program v*s po(*d* o zad*n) zdrojov[ diskety, t.j. ')sla disketov[ jednotky, kde je ulo(en program, kter` chceme dekdovat. Vol) se stiskem kl*vesy 1 a( 8. Pot[ vyp)&e adres*@ zvolen[ disketov[ jednotky s extendrem ✓.BAS. Tento extender je nastaven pr*v% proto, (e program dekoduje pouze ATARI-BASIC a pro tyto programy je tento extender zaveden. Pomoc) kurzorov`ch &ipek vyberete program a potvrd)te RETURNem. D*le je&t% zad*te ')slo cilov[ho disku, na kter` bude ulo(en listing dekdovan[ho programu. Automaticky bude nastaveno stejn[ jm[no a extender zm%n%n na LST.¢     V pr+b%hu pr*ce vypisuje program ')sla @*dk+, kter[ pr*v% zpracov*v* a po dokon'en) ka(d[ho @*dku provede i jeho v`pis. Pokud tento @*dek obsahuje netisknuteln[ znaky ╱nap@. inverzn) zahnut* &ipka = zvukov` sign*l, norm*ln) zahnut* &ipka = smaz*n) obrazovky ...$ toto se i provede ╱nap@. zazn) tento sign*l, nebo se sma(e obrazovka$. Na vlasn) dekdov*n) programu to v&ak nem* (*dn` vliv a p@i v`pisu n*sleduj)c)ho @*dku se "vzpamatuje" i grafick* podoba obrazovky. Po dokon'en) pr*ce je o tom pod*na zpr*va a po stisku libovoln[ kl*vesy je mo(n[ zpracovat dal&) BASIC program.¢¢≥37¢πõØDEKO V 1.5õø¢≥80¢¢     Poznatky z pou()v*n) verze 1.0 m% donutily dod%lat do programu je&t% dal&) varianty, tak(e vznikl program DEKO V 1.5.¢¢     POZNATEK 1$  Verze 1.0 byla odlad%na a zkou&ena asi na 15 r+zn`ch n*hodn% zvolen`ch BASIC programech. Tyto programy byly p@ed pou(it)m zakdov*ny ╱zm%na adresy 138, 139$, nebo tak[ ulo(eny pouh`m p@)kazem SAVE. Ve v&ech p@)padech pracoval program norm*ln%. Ov&em p@i dekdov*n) programu GAME2010.BAS ╱hlavn) program textov[ hry 2010$ se v&ak program nedok*zal vypo@*dat s jedn)m @*dkem. Dekdovan* verze tohoto programu v tomto okam(iku neexistovala, proto jsem se nemohl p@esv%d'it, jak m* dan` @*dek skute'n% vypadat. To znamen*, (e jsou dv% mo(nosti:¢     a$ V programu pro dekdov*n) DEKO 1.0 je n%jak* logick* chyba, d)ky kter[ nejde tento jeden konkr[tn) @*dek rozlu&tit. Vzhledem k tomu, (e na @*dov% 1000 jin`ch @*dc)ch se tato logick* chyba neuplatnila, je tato pravd%podobnost mal*.¢     b$ V programu GAME2010.BAS je dan` @*dek vadn`. Proto(e tato textovka byla p+vodn% anglick* a u( byla p@evedena do n%m'iny ╱to znamen*, (e u( do n) n%kdo zasahoval - nap@. v titulc)ch se uv*d) autor tituln) hudby, ale (*dn* hudba nehraje$, je mo(n[, (e tento @*dek byl zm%n%n omylem nap@. n%jak`m diskov`m monitorem - zm%na ur'it[ho sektoru. Takto po&kozen` program by p@esto fungoval do doby, ne( by narazil na tento @*dek. Viz nap@. program v TURBO-BASICu nata(en` do ATARI-BASICu. P@i listingu vypisuje "nesmysly" ale funguje, dokud nenaraz) na p@)slu&n` "nesmysl".¢¢     Na z*klad% t[to ]vahy jsem doplnil program o o&et@en) chyby p@i dekdov*n). P@i v`skytu chyby pod* program o tomto zpr*vu a nab)dne ukon'en) pr*ce, nebo pokra'ov*n).¢     V p@)pad% I/O chyby budete z@ejm% nuceni zvolit konec. Na c)lov[m za@)zen) je potom listing '*sti programu do v`skytu chyby. Tohoto se d* vyu()t nap@. pokud m*te sv+j vlastn) program ulo(en` i pouh`m p@)kazem SAVE bez ochrany a disketa je po&kozen*. V takov[m p@)pad% p@)kazem LOAD "D:✓.✓" ani RUN "D:✓.✓" program nenahrajete. DEKO V 1.5 v*m v&ak umo(n) zachr*nit maxim*ln) mo(nou '*st programu.¢     V p@)pad% chybn[ho kdu BASIC p@)kazu zvol)te pokra'ov*n). Program DEKO V 1.5 najde kd konce BASIC @*dku. Tento nede&ifrovan` @*dek zap)&e do listingu s pozn*mkou a pokra'uje v dekdov*n) na dal&)m @*dku.¢     V tomto p@)pad% se m+(e st*t, (e bude chybn% dekodov*n i n*sleduj)c) @*dek. Kod konce @*dku 22 se toti( m+(e vyskytovat i v DATA @*dc)ch nebo uvnit@ stringu. Ale v)ce n*hodn% za sebou poskl*dan`ch hodnot 22 se snad nevyskytne. V ka(d[m p@)pad% stoj) za to opakovat volbu "Pokra'ov*n)".¢¢     POZNATEK 2$  P@i dekdov*n) programu GAME2010.BAS se vyskytla dal&) chyba. Program ]sp%&n% dokon'il dekdov*n), ale p@i 'ten) listingu p@)kazem ENTER se za'aly vypisovat chyby. Po prostudov*n) chybov[ho hl*&en) jsem zjistil, (e jedno jm[no prom%nn[ je toto(n[ s kl)'ov`m slovem BASICu. ╱Konkr[tn% se jednalo o prom%nnou TO. Toto m% d*le utvrdilo v m[m p@edpokladu, (e zdrojov` program je '*ste'n% po&kozen, proto(e i tato chyba mohla b`t zp+sobena necht%n`m p@episem sektoru na disket% n%k`m d@)ve. Je tak[ mo(n[, (e byla pou(ita je&t% druh* ochrana - zm%na tabulky prom%nn`ch. Kdybych ale m%l v ]myslu toto jako autor ud%lat, postupoval bych d+sledn%ji a ne jen u jedn[ prom%nn[.$¢     Takov`to chybn` listing programu je u( samoz@ejm% mo(n[ opravit ru'n%, ale nevyhnete se omyl+m. ②*dek s p@)kazem GOTO TO se vyp)&e jako chybn` a lze ho opravit, ╱zm%nit jm[no prom%nn[$ ale @*dek s p@)kazem TO=10 interpret BASIC "vezme" jako vpo@*dku, tak(e ho m+(ete lehce p@ehl[dnout.¢     Doplnil jsem proto program o mo(nost zm%ny jm[na prom%nn`ch. T)m se d*le roz&i@uj) mo(nosti programu. Umo(uje toti( zm%nu jmen nejen na krat&) ╱to je mo(n[ i pouh`m POKE v BASICu - n*hrada zbyl`ch p)smen mezerou, ulo(en) LIST a nata(en) ENTER$ ale i na del&) - i to se n%kdy m+(e hodit.¢¢     Program DEKO V 1.5 v*m tedy nab)z) 2 mo(nosti pr*ce.:¢     1$ Pouze dokdovat¢     2$ Zm%na prom%nn`ch¢¢     P@i pou(it) volby 1 postupuje program jako ve verzi 1.0.¢     P@i pou(it) volby 2 vyp)&e seznam v&ech prom%nn`ch. Kl*vesou "Z" zvol)te zm%nu. Pomoc) kurzorov`ch tla')tek bez CTRL uk*(ete na prom%nnou, jej)( jm[no chcete zm%nit a potvrd)te RETURNem. Po zad*n) nov[ho jm[na se vyp)&e znovu tabulka a m*te mo(nost volbu opakovat, nebo ukon'it. Je nutn[ d*t pozor, aby n*mi zvolen[ nov[ jm[no nebylo u( v programu pou(ito. Pro dekdov*n) by to nem%lo (*dn` vliv, jm[no by se pou(ilo dvakr*t. Po na'ten) p@es ENTER by ale jedno jm[no vypadlo a program by potom nepracoval spravn%. Nap@. p+vodn) @*dek A=B⇩C by se zm%nil na A=B⇩B. Chyby z toho plynouc) si dok*(e ka(d` p@edstavit.¢     D*le je nutn[ zachovat typ prom%nn[, kter` je sou'*st) jm[na. Kon')-li jm[no znakem "◆" jedn* se o pojmenov*n) stringu a tak[ nov[ jm[no mus) kon'it "◆". Tot[( plat) pro znak "╱". V tomto p@)pad% se jedn* o pojmenov*n) dimenzovan[ prom%nn[ a nov[ jm[no op%t mus) kon'it otev@enou z*vorkou. Na toto mus) dohl[dnout u(ivatel, program uveden[ hodnoty nehl)d*.¢     Po ukon'en) zm%n se provede dekdov*n) programu tak, (e v listingu u( bude uvedeno nov[ jm[no prom%nn[.¢¢≥37¢πõØZ⇧V
  2. Rõø¢≥80¢¢     T[m%@ v&e, co 'lov%k kdy vymysl) jde vyu()t i zneu()t. To plat) i o programu DEKO. J* v&ak douf*m, (e ten, kdo pou(ije m+j program, tak to ud%l* proto, aby zachr*nil co nejv)ce sv[ vlastn) pr*ce - viz z*chrana vlastn)ch program+ - nebo proto aby jin` program SKUTE⇨N
  3.  vylep&il. V takov[m p@)pad% mu p@eji hodn% &t%st) a trp%livosti.¢     Pokud by v&ak m%la b`t jedinou zm%nou v programu zm%na autorova jm[na, tak nech④ takov[mu ataristovi "klekne" po')ta'.¢¢     P@)padn[ p@ipom)nky a n*vrhy sm%@ujte na adresu:¢¢          Ing. Jan Dubsk`¢          Letkovice 73¢   664 91 IVAN⇨ICE¢¢¢P.S.¢¢     Mo(n* by bylo u(ite'n[ dod%lat do programu i mo(nost dekdov*n) program+ v TURBOBASICu. Bohu(el se mi nikde nepoda@ilo sehnat p@evodn) tabulku mezi jednotliv`mi tokeny a jejich slovn) reprezentac). Pokud by n%kdo tuto tabulku m%l, nebo mohl poradit, pros)m, aby tak u'inil.¢