Titokonegrafiikkaohje

Titokoneen versiossa 1.300 tuotiin uutena ominaisuutena tuki videografiikalle. Työkalurivistä löytyy uusi painike, jolla saa avattua uuteen ikkunaan virtuaalisen näyttöruudun. Tämä ohje pyrkii selventämään miten Titokoneella on mahdollista tehdä graafisia ohjelmia sen jälkeen, kun on ensin perehtynyt Titokoneen normaaliin käyttöön ja hankkinut kyseisen ohjelmiston itselleen. Opiskelijoiden kirjoittamien demojen tutkimisesta voi myös olla hyötyä.

Ruudulle piirtyy kuva, joka luetaan koneen muistiosoitteesta 8192 (tai 0x2000) siten, että tuossa osoitteessa on kuvattu vasemman yläkulman kuvapisteen väri ja tuosta muistiosoitteesta eteenpäin kukin osoite kuvaa aina seuraavan kuvapisteen värin. Näyttötilan leveys on 160 kuvapistettä ja sen korkeus on 120 kuvapistettä. Näyttötila tukee 12-bittisiä värejä, jotka on koodattu siten, että vähiten merkitsevät neljä bittiä esittävät sinisyyden määrän, toiseksi vähiten merkitsevät neljä bittiä esittävät vihreyden määrän ja kolmanneksi vähiten merkitsevät neljä bittiä esittävät punaisuuden määrän.

Kun siis olet valinnut mieleisesi punaisuuden määrän p, vihreyden määrän v ja sinisyyden määrän s väliltä 0-15, voit näppärästi muuttaa näytön kohdassa (x, y) sijaitsevan kuvapisteen haluamasi väriseksi kirjoittamalla kuvapistettä vastaavaan muistiosoitteeseen 8192 + (y * 160) + x väriä vastaavan arvon (p * 256) + (v * 16) + s. Koordinaatin x on oltava väliltä 0-159 ja koordinaatin y väliltä 0-119.

Vihjeitä

Titokoneessa on muutamia ominaisuuksia, jotka voivat haitata videon piirtämistä. Ensinnäkin muistin määrä on mahdollista säätää niin alhaiseksi, ettei kuva mahdu muistiin. Tällaisessa tilanteessa ohjelma kaatuu viimeistään suoritusvaiheessa siihen, että se kirjoittaa virtuaalikoneen muistin ulkopuolelle. Varmista valikosta Asetukset -> Aseta muistin koko, että muistia on vähintään 32768 tavua.

Aiemmin suorituneiden ohjelmien tila jää joskus koneen muistiin. Koska vanha tila on muistissa, näkyy se myös näytöllä. Voit tyhjentää muistin valikosta Tiedosto -> Tyhjennä muisti, jolloin luonnollisesti myös näytöllä näkyvä kuva nollaantuu.

Näytön päivittäminen voi joskus näyttää takkuiselta. Usein moinen takkuilu korjaantuu, kun Titokoneen pääikkunan minimoi pois näkyvistä. Kyse on luultavasti arkkitehtuurillisesta virheestä, jonka korjaaminen vaatisi astetta isompia muutoksia siihen miten titokone käyttää käyttöliittymäkirjastoa.

Grafiikkaa piirrettäessä voi olla järkevää laittaa koneesta askellus ja animaattori pois päältä, sillä usein grafiikan piirtäminen on kyllin hidasta ilman kyseisiä toiminnallisuuksia. Mitään haittaa näiden yhtäaikaisesta käytöstä ei pitäisi olla, joten kyllä niitä saa käyttää samaan aikaankin jos ne auttavat havainnollistamaan asiiota.

Esimerkkiohjelma

Alla esimerkkiohjelma palette.k91, joka täyttyy kuvaruudun riemukkailla väreillä.

; palette.k91, Toni Ruottu 14.5.2012
;
; The following code fills titokone
; video graphics display with colours.
;
; The picture starts at 8192. Colours are
; presented in the least significant 12 bits
; as 0xRGB.
;
; The image will be drawn more smoothly if
; you minimize the main window.
;

	LOAD  R2,=8192	; video address

	LOAD  R3,=160	; width
	MUL   R3,=120	; * height = pixels_left

	LOAD  R1,=0	; first color

	SUB   R2,=1	; first pixel - 1
Loop	PUSH  R2,R1	; move to next pixel and set color R1

	SUB   R3,=1	; pixels_left - 1
	JNPOS  R3,End	; if(pixels_left < 1) end

	ADD   R1,=1	; next color
	JUMP  Loop

End	SVC   SP,HALT

Toni Ruottu, 14.5.2012