2.3.2.8. Editačná oblasť

 

Táto časť pamäti slúži na editáciu riadkov a ich nasledovnému vykonávaniu. Znaky, ktoré sú zadávané z klávesnice sú vyhodnotené systémom. Znaky a tokeny sú uložené do editačnej oblasti v poradí, ako boli stlačené. Editačné klávesy sú vyhodnotené zvlášť a potom je v editačnej oblasti vykonaná činnosť, ktorú označujú (zrušenie znaku, posun po riadku doľava, doprava apod.). Po stlačení každého klávesu je riadok v editačnej oblasti zobrazený na obrazovku do editačnej zóny (spodná časť obrazovky). Tam až vidíte, čo ste napísali.

Po stlačení klávesu ENTER prebehne syntaktická kontrola riadku. V prípade, že je syntax správna, riadok sa z editačnej oblasti zaradí do programu (pokiaľ má číslo) alebo sa vykoná.

Zaradenie riadku do programu vykoná systém veľmi jednoducho. Zistí si, či je voľné miesto pre riadok v oblasti pre program. Pokiaľ nie, oznámi vám to "zatrúbením". V tomto prípade neostáva nič iné, než riadok stlačením EDIT vymazať z editačnej oblasti a urobiť preň miesto pomocou príkazu CLEAR (vysvetlíme v ďalšej kapitole) alebo program skrátiť výmenou čísiel za niektoré výrazy ako sme uviedli v kapitole 2.3.2.5.

V prípade, že voľné miesto je, systém zistí, či sa v programe riadok s rovnakým číslom už nevyskytuje. Pokiaľ nie, tak je nájdený riadok programu s číslom už nevyskytuje. Pokiaľ nie, tak je nájdený riadok programu s číslom najbližším vyšším, než je číslo nového riadku. Oblasť, začínajúca týmto "vyšším" riadkom sa až po koniec programu presunie o toľko bytov smerom ku koncu pamäti, koľko predstavuje dĺžka nového riadku. Na takto vzniknuté miesto sa prenesie z editačnej oblasti nový riadok.

Pokiaľ sa už v programe vyskytuje riadok s rovnakým číslom ako má nový zadaný riadok, starý riadok sa zruší takto: oblasť nového riadku až po koniec programu sa prenesie o toľko bytov smerom k začiatku pamäti, koľko predstavuje dĺžka starého riadku. Tým prestal riadok s rovnakým číslom ako má nový riadok v programe existovať a nový riadok sa do programu zaradí.

Pri vykonaní riadku (bez čísla) vykonáva systém jednotlivé príkazy uložené v editačnej oblasti, pokiaľ nenarazí na koncový byte 80h. Potom riadok z editačnej oblasti vymaže púhym presunom bytu 80h na začiatok editačnej oblasti (teda tam, kam ukazuje systémová premenná E_LINE).

Pri vykonaní programu (príkazom RUN, GOTO) sa postupne prenášajú riadky programu do editačnej oblasti (už bez čísiel) a tam sú vykonané. Vo všetkých prípadoch práce s editačnou oblasťou sa menia systémové premenné začínajúce VARS a STKEND.