Koski-ryhmän tekemät muutokset Titokoneeseen 1. Johdanto Ohjelmistotuotantoprojekti "Koski" (http://www.cs.helsinki.fi/group/koski/) tuotti Tietokoneen toiminta -kurssia varten uuden TTK-91 konekielisimulaattorin, Titokoneen. Ohjelmasta on paljastunut muutamia puutteita ja/tai eroavaisuuksia vanhaan Auvo Häkkisen Koksi-ohjelmaan verrattuna. Muun työnsä ohessa projektiryhmä "Koskelo" (http://www.cs.helsinki.fi/group/koskelo/) korjasi näitä puutteita ja muutenkin teki Titokoneeseen muutoksia. Muutoksista lyhyesti tässä tekstissä. 2. Korjatut bugit/puutteet 2.1 NOT-käskyn toteutus Alkuperäisen Koksi-ohjelman tuntema käsky 'NOT' puuttui Titokoneesta. Not käsky lisättiin käskykoodilla 27. 2.2 SHRA-käskyn siirto toiselle käskykoodille Titokoneen yhteydessä esitelty uusi käsky SHRA siirrettiin, koska se käytti NOT-käskylle varattua käskykoodia. SHRA-käskyn uusi koodi on 28. 2.3 LOAD ja STORE -käskyjen toiminta Kaikki Koksin tukemat tavat käyttää LOAD ja STORE -käskyjä eivät toimineet Titokoneessa. LOAD R1, (R2) ei toiminut. STORE R1, @R2 ei toiminut eikä tietenkään myöskään STORE R1, (R2). Pystyi kiertämään käyttämällä STORE R1, 0(R2). Nyt käskyt LOAD/STORE R1, (R2) toimivat. Korjaus tapahtui lisäämäällä 0 ennen alkavaa sulkua. STORE R1, @R2 toimii, korjaaminen tapahtui sallimalla @-osoitusmoodin käyttö STORE käskyn yhteydessä. 3. Lisätyt ominaisuudet Koskelo-ryhmä lisäsi Titokoneeseen muutamia ominaisuuksia. Tarkoituksena oli parantaa mahdollisuuksia saada tietoa Titokoneen toiminnasta varsinkin ulkoisen rajapinnan läpi käytettynä. 3.1 Käskylaskuri Lisätty Titokoneeseen käskylaskuri, jolla saadaan tieto suoritettujen konekäskyjen määrästä. Lisätty metodi on nimeltään GiveCommAmount(). 3.2 Pinon kokomittari Lisätty Titokoneeseen toiminto, jolla saadaan tieto pinon lopullisesta koosta. Lisätty metodi on nimeltään GiveStackSize(). 3.3 Koodisegmentin koko Lisätty Titokoneeseen toiminto, jolla saadaan tieto ajettavana olevan ohjelman lopullistesta koodisegmentin koosta. Lisätty metodi on nimeltään getCodeAreaSize(). 3.4 Datasegmentin koko Lisätty Titokoneeseen toiminto, jolla saadaan tieto ajettavana olevan ohjelman lopullistesta datasegmentin koosta. Lisätty metodi on nimeltään getDataAreaSize().