APPLICATIONSPROGRAMMATION ★ ŠTIRI ORODJA ZA CPC 464 ★

Stiri Orodja za CPC 464 (Dejan Smiljanić/Moj Micro)Applications Programmation
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Če ste se že izvili iz programerskih plenic

Srečni lastniki računalnika CPC 464 so med drugim ponosni ludi na udobni, hitri Locomotive basic, ki je vdelan v ta mikro. Čez nekaj časa. ko se izvijejo iz programerskih plenic in si zaželijo ustvariti kaj resnega (beri: komercialnega), z žalostjo ugotovijo, da je basic pač le basic. Ko razvijejo program do meje, ko bi postal res uporaben. postaneta počasnost in poraba pomnilnika neznosni. To velja za vse osembitnike in tudi CPC 464 ni izjema. Frustrirani lastnik mora zato zasukati rokave in se lotiti strojnega jezika, organizacije in operacijskega sistema računalnika, rutin v ROM in podobnih reči.

Ker se ima tudi avtor tega besedila za začetnika pri programiranju v strojnem jeziku, želi vsem, ki so v podobni situaciji, prihraniti vsaj nekaj muk. Da razlaga ne bi bila dolgočasna in zgolj teoretična, so avtorjeve izkušnje podane v štirih koristnih programskih orodjih, ob katerih boste med drugim spoznali tudi to. da se niste zastonj učili basica.

Strojna zveza

Predstavljajte si, da je pravkar nastal vaš prvenec v strojnem jeziku. Seveda je to najboljši program svoje vrste in zakaj se ne bi malce pohvalili, pa še komu drugemu bi lahko prišel prav. Tu naletite na oviro - nekateri potencialni uporabniki nimajo zbirnika in si ne morejo prav nič pomagati z vašim izpisom iz GENA, ZEN ali Laser Geniusa. Problem rešite z MAŠDATLIN, ki strojni jezik prevede v vrstice DATA s podatki v šestnajstiškem zapisu. Tako dobite datoteko ASCII, ki jo lahko kot vsak drug tekst uredite z besedilnikom tako, kot to zahteva uredništvo časopisa, v katerem boste objavili svoj program.

Vrednost parametra »k« v vrstici 170 določa številko prve vrstice z DATA, »10« v vrstici 10 pa je korak oštevilčenja. Številka -16- v vrsticah 210, 220 in 230 je število podatkov v vsaki vrstici DATA; vse to je mogoče po želji spremeniti. Program vstavi vodilno ničlo tja, kjer je to potrebno, zato so vse vrstice DATA, tudi zadnja, enako dolge.

Morda ne verjamete, da je vse tako enostavno. V tem primeru vtipkajte drugi program - MAŠBASHEX. Tudi ta prevede strojni jezik v vrstice DATA, vendar pa - in v tem je razlika - ostane po izvedbi v pomnilniku hexloader v basicu z vdelano kontrolno vsoto. Preizkusite gal

Pozor: če hočete pognati MAŠBASHEX, ga vnesite tako. kot je iz-pisan, brez preštevilčenja!

Kaj se pravzaprav zgodi, ko poženete program? V spremenljivko »lin« se glede na dolžino strojnega programa zapiše Stevilo vrstic DATA s po 16 zlogi. S pritiskom na ustrezno tipko v basicu rezervirate potrebno število praznih vrstic od 10 dalje s korakom 10. S pritiskom na druge tipke (po navodilih na zaslonu) določite programski vrstici 1510 in 1530 v hexloaderju odvisno od začetnega naslova in dolžine strojnega programa. Po prebiranju kode se vrstice DATA zapolnijo s podatki s kontrolno vsoto na koncu, nakar se izbrišejo vrstice 1000-1380.

Po vsem tem ostanejo v basicu vrstice DATA od 10 dalje in hexloader od 1500 dalje. Takšen razpored je res malce nenavaden, a je - vsaj kar se tiče oblikovanja vrstic DATA - enostavnejši. Vsak program v basicu ima namreč praviloma začetno vrstico na naslovu 368, zato ni težko izračunati naslovov za vstavljanje podatkov v DATA. če so te vrstice na začetku programa. Struktura vsake vrstice DATA je takšna:

1. zlog: dolžina vrstice v zlogih (do 254);
2. zlog: obvezna ničla;
3. in 4. zlog: številke vrstice (nižji in potem višji zlog);
5. zlog: 140 (koda ukaza DATA);
6. zlog: 32 (koda za presledek);
7. in naslednji zlogi: podatki v zapisu ASCII skupaj z vejicami;
— zadnji zlog: 0 (konec vrstice).

Če je vrstica na koncu programa, sledita še dve ničli. Dolžina vrstice DATA s 16 podatki in kontrolno vsoto znaša 58 zlogov. Tako postane razumljiva zanka, ki izvaja POKE. Več o tem najdete v knjigi lana Sinc-laira lntroducing Amstrad CPC 464 Machine Code (Collins, Mladinska Knjiga), ki jo lahko - vsaj v Beogradu - še vedno kupite v prodajalni Kultura.

Ko je hexloader v basicu napisan, ga shranite z »A« kot datoteko ASCII in dalje urejate npr. v Amswordu. Če vam 16 podatkov v vsaki vrstici ne ustreza, spremenite vrstice 1120, 1130, 1280. 1290, 1310. 1350, 1540 in 1560. V obeh doslej opisanih programih postane očitna počasnost basica pri delu z nizi: obdelava vsake vrstice DATA traja približno eno sekundo.

Zaslonska zveza

O organizaciji zaslonskega pomnilnika se je že dosti pisalo, praviloma z oceno, da je precej neugodna. Ta del pomnilnika se začne na naslovu &C000 (49152) in zavzema &4000 zlogov (16K). Pri zapisovanju ali včitavanju zaslona se ta segment pomnilnika obdela v osmih blokih po 2 K. pri čemer se zapovrstjo zapiše ali včita prva vrstica (80 zlogov) vsakega niza znakov, potem druga itd. vse do osme - skupaj 16.000 zlogov. Na koncu vsakega bloka se preskoči 48 zlogov, 8 blokov * 48 zlogov = 348 zlogov. To seštejemo s 16.000 in dobimo celih 16 K. Posledica takšne organizacije je, da znaša razlika naslovov med dvema sosednjima vrsticama istega niza znakov &800 (2048), med takšnima vrsticama v dveh sosednih nizih pa &50 (80) zlogov.

Vse to se zdi zapleteno, a se da poenostaviti. Program SCRMEMADR po vnosu grafičnih koordinat vrne naslov točke v decimalni in šestnajstiški obliki. Edina delovna vrstica programa je 160, vse drugo je kozmetika. Ne pozabite, da ima idealni zaslon 400. dejanski pa 200 vrstic.

Neposredno naslavljanje zaslona odpira številne možnosti. Preden se prepustite domišljiji, preberite še serijo »Rišemo s CPC« (MM 2- 8/ 88).

Na koncu si oglejmo po avtorjevem mnenju najkoristnejše od štirih orodij - PROGPROZ To je kratica »programa za oblikovanje oken« (sh. prozora, op, prev.), tako da je jasno, kaj počne. Recimo, da ste napisali kakšen program, morda - oh, krasota - celo igrico, v kateri se vse imenitnosti dogajajo na vsem grafičnem zaslonu. Tu in tam morate uporabnika/igralca vprašati, kako naj stvar teče naprej. Ce tekst izpišete kar tako. bo slika delno povožena ali, o groza, premaknjena za celo vrstico. S programom PROGPROZ oblikujete na poljubnem delu zaslona poljubno veliko okno z ustreznim besedilom. Po vpisu v izbrani segment pomnilnika ga lahko skupaj z zagonskim programom posnamete kot strojno kodo. Ta neodvisni modul pripnete na svoj program in s klicem začasno spremenite stanje na zaslonu: pojavi se prej sestavljeni tekst, del slike pa pobegne na drug naslov. Po ponovnem klicu kode je spet vse tako kot prej. Prav imenitna stvar za izpis menijev!

PROGPROZ dela v vseh treh grafičnih načinih, vendar ga lahko poženete le v tistem, v katerem ste oblikovali okno. Da bi laže razumeli program, si namesto komentarjev oglejte spisek uporabljenih spremenljivk:

M - trenutni zaslonski način;
kar - število znakov v vrstici, odvisno od načina (20/40/80);
x, y - stolpec in (tekstna) vrstica zgornjega levega kot okna;
s, v - širina in visina okna v znakih;
brbajt - število zlogov v eni vrstici okna;
velmem! - količina pomnilnika, potrebnega za zapis zagonskega programa in dela zaslona;
poc! - začetni naslov zagonskega programa, ki je dolg 49 zlogov;
mem! - začetni naslov dela zaslona s tekstom,
scr! - zaslonski naslov zloga v zgornjem levem kotu okna;
raz! - zaslonski premik na začetek naslednje vrstice okna.

Zaradi varčevanja s pomnilnikom program ni popolnoma zaščiten pred nesmiselnimi vnosi, zato bodite pazljivi. Ni dovoljena uporaba pomnilnika nad naslovom 43903 oz. pod 16385. da ne bi prišlo do vdora v operacijski sistem. Če res dobro veste, kaj počnete, lahko to omejitev spremenite ali izbrišete (vrstici 270 in 280). Pri vnosu teksta (480-550) morate vsako vrstico zaključiti z ENTER, če pa je tekst predolg, program zahteva ponovitev vnosa. Pozor: ker tekst prebira ukaz INPUT. se ne upošteva prazno mesto na začetku besedila. Če ga krvavo potrebujete, lahko pod prvim odprete novo. ožje okno in ga shranite kot prvo.

S programom se da oblikovati okna po vsej širini zaslona. Visoka so lahko do 19 vrstic (že to je preveč. kajne?). sicer se zaslon pomakne navzgor. S številom in velikostjo oken ne pretiravajte, ker boste ob pomnilnikl Za tiste, ki so se zares lotili strojnega jezika, prilagamo ízpis EXMEMSCR (to so vrstice 290-360 v programu PROGPROZ). Ce hočete rutino olepšati ali upočasniti, vstavite v vrstico 125 ali 135 ukaz CALL #BD19 - učinek je izjemen!

Drugače kot LDIR in LDDR EXMEMSCR zamenja dva pomnilniška segmenta. Jasno je torej, da lahko rutino z drobnimi priredbami uporabite še za marsikaj drugega, npr. za premikanje delov zaslona, za preklop med znakovnimi nabori itd. Sprostite svojo domišljijo!

Tako. na koncu smo. Za pomoč in morebitna pojasnila pišite avtorju na naslov: Dejan Smiljanič, 11000 Beograd.

Moj Micro

★ PUBLISHER: Moj Micro
★ ANNÉE: 1989
★ CONFIG: ???
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTHOR: Dejan Smiljanić
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Stiri  Orodja  za  CPC  464    (Moj  Micro)    LISTING    SLOVENIANDATE: 2021-11-21
DL: 121
TYPE: PDF
SiZE: 328Ko
NOTE: 5 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Symbol-Basic (Computer Partner)
» Applications » Symbol-Editor (CPC Amstrad International)
» Applications » Symbol (CPC Infos)
» Applications » Super Symbole
» Applications » UDG Symbol Definer
» Applications » Symbol Poker (Compute Mit)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 483 millisecondes et consultée 536 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.