Kuinka linkkaan PCX-kuvan omaan Turbo Pascal-ohjelmaan modessa 13h: by Mikko Pikarinen 1996 K„ytett„v„ksi vapaasti kenen tahansa ohjelmissa. PCX.TPU:ssa komento on muotoa: PuraPCX(X,Y,Segm,Offs,Mihin:word;Paletti:boolean); Toiminta: --------- Rutiini l„htee olettamuksesta, ett„ olet jo siirtynyt n„ytt”tilaan 13h, siihen p„„see helposti kahdella assembler-k„skyll„: MOV AX,13h INT 10h 'X' ja 'Y' ovat muuttujia, jotka osoittavat koordinaatit kuvan vasemmalle yl„nurkalle. HUOM! rutiini ei tarkista, meneek” reuna yli! 'Segm' ja 'Offs' ovat kuvan osoite, jotka saat funktioilla: Segm:=seg(kuva) ja Offs:=ofs(kuva). PCX-kuva on muutettava OBJ-tiedostoksi komennolla: BINOBJ KUVA.PCX KUVA.OBJ KUVA, jossa viimeisen„ on kuvan ns. public name, jota k„yt„t ohjelmassasi. Sitten m„„rittelet kuvasi seuraavasti: Procedure kuva;external; {$L kuva.obj} proseduurin nimi on oltava juuri se public-nimi, jonka annoit BINOBJ:ille. T„m„ linkitt„„ kuvan ohjelmaasi. Kannattaa laittaa kuva eri UNITiin, kuin koodi, koska k„„nt„j„ ymm„rt„„ kuvan koodina, ja muuten koodisegmentti on heti t„ynn„. Muuttuja 'Mihin' on segmenttiosoite, johon kuva piirret„„n. Jos piir„t sen n„ytt””n, anna arvoksi $A000, joka on VGA:n n„ytt”muistin segmentti. Jos piirr„t virtuaaliruutuun, anna arvoksi virtuaaliruutusi segmenttiosoite. Jos et halua muuttaa v„ripalettia PCX:n mukaan, anna Paletti-muuttujalle arvoksi FALSE. T„m„ on k„yt„nn”llist„, jos k„yt„t kuvaa spriten„, ja paletti on jo asetettu aikaisemmin. Rutiini ei piirr„ n„yt”lle paletin viimeist„ v„ri„ (255), joten jos k„yt„t kuvia spritein„, voit tehd„ niihin l„pin„kyvi„ kohtia maalaamalla ne sill„. Kuvan ei tarvitse olla koko ruudun kokoinen, koska rutiini lukee kuvan koon PCX-kuvan headerista. K„ytt” on helppo ymm„rt„„ mukana tulevasta esimmerkkiohjelmasta PCXESIM.PAS ============================================================================== TEKIJŽ EI OTA MITŽŽN VASTUUTA RUTIININ TOIMIVUUDESTA TAI TOIMIMATTOMUUDESTA. Jos joku tekee paremman rutiinin, niin OK, t„m„ on vain yksi vaihtoehto, eik„ t„m„ ole optimoitu mitenk„„n. Jos haluat contactoida tekij„„, viskaa messulla esimerkiksi MB-nettiin. ==============================================================================