Debugger Tarkoitus: Vaikka Basic-ohjelmissa vir- heet ovat harvinaisempia kuin konekieli- ohjelmissa, niin silti usein varsinkin pitemmissä ohjelmissa syntyy ns. loogi- sia virheitä, joista BASIC ei anna vir- heilmoitusta, mutta niiden takia ohjelma ei toimi toivotulla tavalla, esim. muut- tujat saavat vääriä arvoja (käytetty sa- maa muuttujaa useaan tarkoitukseen), oh- jelma harhautuu väärille riveille, usein myös levyasemaa käytettäessä syntyy ou- toja ongelmia (luetaan peräkkäistiedos- toa, eikä tiedetä siellä olevista ero- tinmerkeistä). Nämä ongelmat voisi vält- tää dokumentoimalla ja ohjelmoimalla ra- kenteellisesti, kuitenkin harvat näin jaksavat tehdä. Debugger on konekielinen taustaohjelma, joka auttaa BASIC-ohjel- mien kehitystä ja testausta. Taustaruutu on aina ohjelman ollessa käynnissä kut- suttavissa RUNSTOP-näppäintä painamalla. Käytettävissä on yhdeksän käskyä ohjel- man suorituksen kontrolloimiseen. Käyttö: Lataa ohjelma käskyllä LOAD "DEBUGGER",8,1. Suorita NEW-käsky. Nyt koko BASIC-muisti on vapaasti käytettä- vissäsi. Kun haluat ottaa ohjelman käyt- töön anna komento SYS 49152. Tällöin oh- jelma ilmoittaa olevansa toiminnassa (TRACE ON). Samalla käskyllä voit kytkeä sen halutessasi pois. Nyt voit ladata tai kirjoittaa ohjelmaa. Ohjelman olles- sa käynnissä RUN/STOP-näppäin antaa si- nulle mustan taustaruudun, jossa voit käyttää seuraavia komentoja: -STEP Pääset suorittamaan ohjelmaa ri- vi kerrallaan. Oikeassa yläkulmassa nä- kyy aina seuraavaksi suoritettavan rivin numero. Voit suorittaa tämän rivin Com- modore-näppäintä painamalla. Pois STEP- tilasta pääset RUN/STOP-näppäimellä, jolloin palaat debuggertilaan. -STOP Kysyy sinulta ehtoa (COND:) oh- jelman suorituksen pysäyttämiseen. Tämä ehto tarkistetaan joka käskyn jälkeen ja mikäli ehto on tosi, suoritus palaa de- buggertilaan ja näytölle tulostuu teksti STOPPED, toteutunut ehto ja rivinumero. -HALT Kysyy rivinumeroa (LINE:) jolle päästyä ohjelman suoritus pysähtyy pa- lautuen debuggertilaan ja tulostaen tekstin HALTED ja rivinumeron. STEP, STOP ja HALT toimivat myös yht'aikaa. -PRINT Tulostaa muuttujien tai lausek- keiden arvoja samalla formaatilla kuin BASICin PRINT-käsky esim. PRI 7*A+LEN(A$). -LIST Antaa listauksen ohjelmasta tai osasta ohjelmaa. Formaatti sama kuin BA- SICin LIST-käskyssä. Esim. LIS 20-50. -SET Asettaa arvoja muuttujille. Esim. SET X=64. -RESET Nollaa kaikki muuttujat ja suo- rittaa basicin RESTORE-komennon. -BREAK Keskeyttää ohjelman ajon kuten RUN/STOP-näppäimellä normaalisti. -DATA Tulostaa DATA-rivin jolle seu- raava READ-käsky kohdistuu. Nämä käskyt voi kirjoittaa kokonaan tai käyttää kolmikirjaimisia lyhenteitä. Jos käskyä seuraa parametri on sen aina ol- tava välilyönnillä käskystä erotettu. -RESTORE-näppäin suorittaa normaalin RUN /STOP+RESTORE -näppäimillä suoritettavan Warm Startin, kuitenkin ensiksi tulosta- en rivi- ja datarivinumeron, jonka jäl- keen ohjelma odottaa välilyönnin paina- mista ennen Warm Startin suoritusta. Tekniikka: Ohjelma on hookattu RUN/STOP- vektoriin, STEP:n ollessa päällä käskyn- suoritusrutiiniin. Ohjelma tallettaa ai- na debuggertilaan siirtyessään ruudun, värimuistin, nollasivun ja muita tärkei- tä muistipaikkoja. Ohjelma sijoittuu alueelle $C000-$C500 ja käyttää siitä eteenpäin vapaana olevan tilan varasto- alueena. Myös alue 820-827 ja 1021-1023 on käytössä. Ohjelma ei siis vähennä ba- sicin käytössä olevaa muistitilaa.