★ APPLICATIONS ★ DIVERS ★ AMSTRAD CPC: PRENOS VSEBINE POMNILNIKA V VRSTICE DATA ★![]() |
| Datagen (Moj Micro) | Applications Divers |
Zakaj bi se mučili s strojnim jezikom? Pri vsakodnevnem delu z računalnikom, posebno pa takrat, ko želim svoj prispek poslati v kako od naših računalniških revij, se znajdem v situaciji, da moram kak del pomnilnika (navadno je to objektna koda kakega strojnega programa) prestaviti v vrstice DATA v basicu. Taka oblika izpisa namreč zavzame v reviji najmanj prostora, za porabnika pa je pri poznejšem prepisovanju tudi bolj zanesljiva. ker računalnik sporoča morebitne napake. Kadar gre za krajše programe, si lahko ročno vpisovanje v vrstice DATA celo dovolimo, kadar pa je program na primer dolg tri do štiri K, pa se vprašamo, zakaj naj bi se mučili s strojnim jezikom. Zato sem se malo poigral s tem vprašanjem in napisal strojno rutino, ki vsebino pomnilnika pošlje v vnaprej definirane vrstice DATA. Kako delamo s tem uporabnim programom? Svoj strojni program, ki ga želimo prenesti v vrstice DATA v basicu, najprej prevedemo v zbirni jezik in si zapišemo ali zapomnimo začetni in končni naslov tistega dela pomnilnika, v katerem je objektna koda. Nato gremo iz zbirnika, postavimo HIMEN na začetni naslov 1 in vtipkamo NEW. S tem zbrišemo program v basicu, ki je morda že bil tam. Zelo važno je, da to napravimo, ker prenosnik prvo, kot tudi vse druge vrstice basica, vedno upošteva kot vrstice DATA. Nato z ukazom AUTO vpišemo zvezdice (končno ni bistveno, če kake druge znake, ker bo ta prostor izpopolnjen s kodami ASCII našega programa) v toliko vrstic DATA. da je v njih prostora za ves naš program. Na koncu vsake vrstice dodamo še tri zvezdice, kjer bojo pozneje nameščeni kontrolni seštevki vsake vrstice. Bistveno je, da za vsako zadnjo zvezdico v vrstici ne vpišemo ničesar (pri kopiranju vrstic se lahko zgodi, da dodamo enega ali dva prazna zloga presledkov), ker bi se prenosnik sicer zbegal in bi dobili zmeden izpis. Tudi med številko vrstice in besedo DATA ter med DATA in prvo zvezdico damo samo po en znak za presledek. Čeprav navadno dajemo v eno vrstico DATA po osem ali šestnajst bytov, to ni obvezno pravilo. Lahko jih damo toliko, kolikor nam ustreza. seveda pa je bolje ostati v razumnih mejah. Tudi število bytov v vseh vrsticah ne mora biti enako, ampak ga lahko po potrebi spreminjamo, čeprav zaradi estetike in preglednosti to navadno ne delamo. Če želimo v vrstice DATA prenesti kak daljši program, je ugodno, da imamo že od prej posneto določeno število vrstic DATA, npr. 64 vrstic s po 16 byti za prenos enega K pomnilnika v DATA. Teh 64 vrstic si enkrat vtipkamo tako. da začnemo pri visoki številki vrstice, npr. pri 10000, in jih posnamemo s save DATA 1 kb. Pozneje jih kadarkoli lahko naložimo in jim z RENUME:MERGE dodamo nove vrstice do dolžine, ki jo potrebujemo. Ko vpišemo dovolj vrstic DATA. preprosto s CALL začetni naslov prenosnika ter začetni in končni naslov dela pomnilnika, ki ga je treba prenesti, pokličemo program za prenos, ki smo ga pred tem naložili kjerkoli v pomnilniku. Na izpisu 1 je zbirniški izpis prenosnika, na izpisu 2 pa je prikazan postopek prenosa prav same izvršilne kode prenosnika v vrstice DATA. h kateremu je na koncu dodan še nalagalnik s kontrolorjem seštevka vrstic.
|