Kirjoittaja Aihe: Basic kopio suojaukset tms.  (Luettu 471 kertaa)

Poissa virgo

  • Vuoden Foorumilainen 2014
  • Metusalem
  • ******
  • Viestejä: 995
  • Retroilija henkeen ja vereen G-point BBS SysOp
    • Profiili
    • Genetic point web
Basic kopio suojaukset tms.
« : Lokakuu 02, 2016, 16:24 »
jokainen on varmasti jossain vaiheessa nähnyt ohjelman josta ei saa esille edes ohjelma listausta
tai levyltä hakemistoa

list komento loppuu Error ilmoitukseen

miten siis oma Basic ohjelma suojataan uteliailta silmiltä ?

tämä jekku on ehkä helpoimpia ikinä

10 rem L

se päätää List komennon siihen paikkaan (ellei se ole "L" lainausmerkkien sisällä)
syntax Error ilmoituksella

miksi näin tapahtuu ?

C64 basic on tavallaan valmiiksi pakattua mikä tekee sitä melko tiivistä
jos katsot Basic ohjelmaa Konekieli monitorin lävitse...

10 print "hei"

et löydä koodista print merkintää mistään
vaan print käsky on yhden tavun mittainen koodi $99 minkä jälkeen tulee lainausmerki ja HEI texti
tässä vielä Token taulukko muistakin käskyistä
http://sta.c64.org/cbm64basins2.html

ilmeisesti L merkkii ($cc) on alunperin ollut jokin komento. Kuten Token taulukosta
näkee lista loppuu $CB
olisikohan käynyt niin että seuraava komento on poistettu mutta
jotain on jäänyt tekemättä ja list komento koittaa tulostaa kyseisen puuttuvan käskyn
jota ei ole ja näin kohtaa sisäisen virheen

vastaavasti Basic tulkkia voi myös huijata tekemään juttuja Control koodeilla
esimerkiksi listaukseen voi lisätä kohtia jotka muuttavat listauksen väriä
tai putsaavat ruudun tms.

homman jujuna on jälleen kerran Rem käsky
sen on siitä kätevä että mitä ikinä käskyn jälkeen tekeekin se ei sekoita ohjelman suoritusta
mutta listauksen näyttämisen sen jälkeiset temput voivat sotkea täysin
jossain harmaiden aivosolujen uumenissa kummitteleen sellainenkin jippo millä pystyi
listauksessa käynnistämään ohjelman. mutta nyt ei muistu mieleen  miten se tehtiin

ainoa vaikeus on saada invertoidut merkit kirjoitettua listaukseen
mikä hieman vaatii harjoittelua
normaalistihan lainaus merkkien sisään voi kirjoitella vaikka mitä PETasci koodia
ilman että se mitenkään vaikuttaa listauksen tulostamiseen
mutta poikkeuksiakin on

yksi tärkeimistä on $8d return millä saadaan lainausmerkien vaikutus kumottua listausta tulostettaessa. tämän jälkeen tulkki alkaakin tulostaa komento koodeja mielesi mukaan
esim.
10 rem ""<del><sift+del><sift+del><rev><sift+m><sift+home> return

jos homma meni putkeen pitäisi list komennon aina putsata ruutu ja aloittaa
rivin 10 jälkeisten rivien tulostaminen ruudun alusta
jos jekkua koittaa ilman lainaus merkkejä tulkki korjaa asian parhaalla näkemällään tavalla
jos lainaus merkkejä on vain yksi ei reverce modia pysty aktivoimaan
vaan ruudulle tulostuu invertoitu r mikä ei siis toimi
jos 2x<sift+del> jää tekemättä yrittäessäsi <sift+home> ruutu tyhjenee

jos asiasta on kysyttävää tai lisää tietoa niin jatketaan toki juttua :)

« Viimeksi muokattu: Lokakuu 02, 2016, 16:31 kirjoittanut virgo »
°°Genetic Point BBS Powered by Amiga °°
°°°g-point.tunk.org port:500 open 24/7 °°°