★ APPLICATIONS ★ PROGRAMMATION ★ RUTINA FILL IN POVEčANI ZNAKI NA ZASLONU (MOJ MICRO) ★![]() |
| Rutina FILL in povečani znaki na zaslonu (Moj Micro) | Applications Programmation |
zpis znakov na zaslon je ena temeljnih izhodnih operacij vsakega operacijskega sistema. Znaki se izpisujejo tako. da se njihovo število preračuna v naslov definicije, nato pa se prenese definicija iz ROM (ali RAM. če gre za uporabniško definirane znake) na ustrezno mesto v video pomnilniku. Vse to je mogoče opraviti z nekaj preprostimi operacijami. če video pomnilnik ni zapleten. Pri računalnikih CPC obstajajo trije različni načini prikaza znakov, vsak ima drugačno ločljivost in tako tudi način oganizacije. V ROM (ali RAM) je definicija znakov, od katerih vsak zavzema osem bytov. Vsak bit v bytu predstavlja eno točko, nanaša pa se na vse zaslonske načine. Le v MODE 2 se da taka definicija prenesti brez sprememb v video pomnilnik, za vse druge načine pa je pred vsakim izpisom treba predelati osnovno definicijo, ki ustreza posameznemu načinu. Te predelave so precej zapletene, vendar nam pomagajo podprogrami v ROM. Iz opisanega je mogoče skleniti, da je izpis znakov v MODE 2 najpreprostejši, zato pa tudi najhitrejši (kar je bistveno za vse resne programe). Poleg izpisov znakov običajne velikosti je občasno treba izpisati tudi večje znake. Pri tem pa nam operacijski sistem ne pomaga. Za vse zvečane izpise uporabimo dodatni ukaz RSX: |WRITE. < povečanje normalne točke 1..255 > , < povečanje normalne točke 1..255 >, < nizovna spremenljivka niza znakov, ki jih je treba izpisati > = 4 Niz. ki ga želimo izpisati, je treba namestiti v nizovno spremenljivko, ki jo navajamo kot parameter v ukazu. Pred nizovno spremenljivko je treba dati tudi opičji znak (CHR$(64)). Izpis se začne od grafičnega kurzorja. Znaki bodo izpisani v barvi, ki smo jo določili kot grafično pero in grafični papir. Riše se vedno v načinu FORCE, kajti cilj je bil čim hitrejša rutina. Začetek in meje grafičnega okna zanemarimo; vedno rišemo po vsem zaslonu. Znaki, ki izpadejo z zaslona. bodo izrisani, vendar na nepredvidljivem mestu. Glavna rutina programa WRITE je pojasnjena v komentarjih k listingu 1. Rutina FILL je ena temeljnih rutin različnih razširitev grafičnega dela basicovega interpre-terja za vse majhne računalnike, kajti ta rutina zaradi obsega navadno ni v ROM. Pri amstradu CPC 464 je enako. Z racionalizacijo kod operacijskega sistema se je konstruktorjem CPC 6128 posrečilo, da so tudi to rutino spravili v ROM. V časopisih so bile že večkrat objavljene različne rutine FILL. niti ena pa se ne more kosati s tisto v ROM amstrada CPC 6128 - ne po hitrosti, kaj šele po kakovosti (zmožnosti izpolnjevanja zelo kompliciranih likov). To rutino lastniki CPC 6128 lahko pokličejo s CALL &BD52. Vhodni parametri so A = barva, s katero je treba izpolniti lik; HL = naslov prostora, ki ga uporablja program za analiziranje likov in DE* = največja dovoljena dolžina tega prostora Ob vsakem prehodu zraven dela slike, ki ga med tem prehodom ni mogoče izpolniti, si zapomni koordinate tega stolpca, za tako pomnjenje je potrebno sedem bytov. Če prostora ni zadosti, rutina le deloma izpolni lik. Na izhodu je v tem primeru zastavica C resetirana. To rutino začnemo uporabljati z ukazom RSX. Slovnica ukaza je: |FILL , < barva > , < naslov prostora za analiziranje lika>, < dolžina tega prostora > Zadnja dva parametra nista obvezna. V tem primeru uporabimo pomnilnik s 64 byti, ki je izza programa. To zadošča le za najpreprostejše like. če pa želite izpolniti tudi bolj zapletene, je treba prej spustiti HIMEM: MEMORY HIMEM-2000Izpolnjevanje likov se začne od grafičnega kurzorja. Kot meja lika. se vzame barva grafičnega peresa in barva, s katero rišemo. Druge barve obravnavamo tako kot ozadje. V našem primeru se izhodišče in meje grafičnega okna zanemarijo. |
| ![]() |
| Page précédente : Zrcaljenje in pomikanje zaslona |
|
Page créée en 305 millisecondes et consultée 1039 fois L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |