Windows 1.0

Bevezetés
Ami most ön előtt fekszik, az a WINDOWS kézikönyve. Ez a füzet kell, hogy megkönnyítse önnek a program használatát, ebben találhatja meg az ablaktechnika kezelésének és programozásának sajátságait. Adunk néhány példát is, ez biztos hasznos lesz, ha már szert tett némi tapasztalatra az ENTERPRISE grafikus és szövegszerkesztési sajátosságairól, és nem idegen önnek a ki- és bemeneti csatornák fogalma. Mindenesetre, ha szükséges, nézze át újra az ENTERPRISE kézikönyvét.

Az ablaktechnikáról általában
Az "ablak" fogalma a 70-es évek elején alakult ki az amerikai XEROX cég kutatóintézetében (XEROX PARC), a számítógép kezelésének új formáit kereső kutatások alkalmával. Innen ered az "egér" mint beadóegység és a SMALLTALK 80 programozási nyelv is.
Ez a technika a széles piacon először az APPLE cég Macintoshával jelent meg, és most (igaz, kissé soványabban) rendelkezésre áll az ön ENTERPRISE-án is! Mi rejtőzhet az "ablak" fogalma mögött? Nagyjából azt értik alatta, hogy a képernyő különböző területei elhatárolhatóak (egy kerettel körülzárhatóak). A számítógépnek a képernyőre küldött minden további üzenete ezt követően ezen az elhatárolt területen jelenik meg. A kereten kívül levő szövegek változatlanok maradnak. Több ablakot is "nyithatunk", melyek részben át is fedhetik egymást.
Ennek a technikának az alkalmazhatósága előnyös pl. a szövegszerkesztésben, amikor a különböző szövegrészek a különböző ablakokban felváltva összehasonlíthatók, illetve módosíthatók. Vagy például a BASIC nyelven programozó megteheti, hogy egy külön ablakot nyit, amelyre a TRACE parancs a közvetlen végrehajtott sorok számát küldheti. Így nem keverednek többé össze a számok a program valódi kiírásaival; az olvashatóság foka így megnő.

Az ENTERPRISE 128 ablakja
Az ENTERPRISE már alapvetően az ablaktechnika tulajdonságaival rendelkezik. Bizonyára kísérletezett már a több grafikus vagy szövegoldal egyidejű
megjelenítésével. Bizonyára próbálta már, hogy egyidejűleg több grafikus vagy szövegoldalt nyitott meg és jelenítette meg ezeket a képernyőn; megdöbbenve tapasztalhatta, hogy a grafikus parancs nem hagyja el a video-oldal területét. A video-oldal nagyságának a láthatóság és a pozícionálhatóság szempontjából korlátai vannak. Az ENTERPRISE a különböző video-oldalakat mindig csak egymás alatt tudja megjeleníteni. A WINDOWS program viszont lehetővé teszi, hogy az ablakokat a képernyő különböző részein helyezhesse el. Az egyidejűleg nyitva tartott ablakok számát csak a szabad belső tárkapacitás korlátozza.

Haladóknak
A WINDOWS esetében egy új "VIDEO" meghajtóról van szó, mely a beépítettet helyettesíti. Az új meghajtó a programozás szempontjából ugyanúgy működik, mint a szabványos, ezért az eddigi programokkal való kompatibilitás teljes egészében biztosított. Az új meghajtó viszont nem támogat semmilyen grafikát.

Fontos tudnivalók
A kézikönyv minden további magyarázat esetében abból indul ki, hogy az ön ENTERPRISE-ában a BASIC-bővítmény benne van, és a bemutatott példáinkat ön a számítógépén követi. Minden példát és utasítást BASIC-ben adunk meg. Természetesen lehetséges a WINDOWS használata más ENTERPRISE programozási nyelvvel is. A WINDOWS számára fontos parancsok minden nyelven hasonlóak, így bizonyára nem okoz önnek nehézséget a példákban szereplő BASIC utasításokat az ön által használt nyelvre lefordítania.
A WINDOWS-nak van néhány parancsa, mely BASIC-ből indító kettősponttal jelölve hívható (ld. 3.2. fejezetet). Ezek arra szolgálnak, hogy az ablakhasználatot ki- és bekapcsolja, ezzel a játékprogramokat is használhassa a számítógép újraindítása nélkül.
A következő parancsok kiadása előtt olvassa el a 3.2.1-2-es fejezetet, különben könnyen "elszállhat" a programja.
A következőkben a gyakran előforduló "ablak" és "video-oldal" kifejezéseket egyenértékű szinonimaként használjuk.

1. Első lépések a WINDOWS-zal

1.1. Mielőtt betölti a programot
Mielőtt tovább olvasná, készítsen egy munkakópiát az eredeti kazettáról. Az eredeti kazettát pormentes helyen tárolja, lehetőleg távol mágneses mezőktől (hangszóróktól, HI-FI-berendezésektől stb.), a továbbiakban pedig csak a munkakópiát használja.

1.2. Az kazettán található file-ok

1.3. A WINDOWS indítása
Bizonyosodjon meg, hogy a BASIC aktív. Zárjon le valamennyi nyitott grafikus és szövegoldalt és esetleges RAMDISK-et, mert a WINDOWS a teljes memóriára igényt tart. Ha nincs semmilyen BASIC program a memóriában, pl. a számítógép bekapcsolása után, csak az F1 billentyűt kell megnyomnia. Ugyanezt a hatást érheti el, ha a BASIC-ben beírja: LOAD "WINDOWS.EXT".
A képernyő üres lesz, és egy rövid idő múlva bejelentkezik a BASIC egy nyitott ablakkal, azaz egy keretet lát, melynek a tetején "IS-BASIC" felirat olvasható. A címsorból állapítható meg, hogy melyik ablak mi célból lett megnyitva. Ezek után a szokásos módon dolgozhatunk az ENTERPRISE-zal. A Windows abszolút rendszerbővítő, így nem csak BASIC-ból indítható!

2. A WINDOWS használata

Töltse be és indítsa el a "WINDDEMO.BAS" programot. Ez egy rövid, BASIC nyelven írt program, ami bemutatja a WINDOWS képességeit. A program kilistázható, így tanulmányozhatjuk felépítését.

3. Az utasítások összefoglalása

A WINDOWS-ból hívható valamennyi utasítás leírását négy részre tagoltuk:

  1. Az utasítás neve, pl. DISPLAY.
  2. Az utasítás szintaxisa, azaz hogyan és hova kell beírni az utasítás paramétereit. A kerek zárójelek MINDÍG - idézőjelen belül is - a zárójeles rész esetlegességét, nem kötelező voltát jelenti, pl.: DISPLAY # csatorna: (AT y) (FROM x). A ferde vonal alternatívát, azaz vagylagosságot jelöl.
  3. A hatás magyarázata és a paraméterek jelentése.
  4. Példa.

Minden utasítás név mögött a két jelzés egyike található:

3.1. Az EXOS-változók

Az EXOS-változók jelentését és módosítását az ENTERPRISE kézikönyvéből, valamint a Referencia Kézikönyvből ismerheti meg. A SET / TOGGLE / ASK hármast a SET képviseli a továbbiakban. A kisbetűk, pl.: n, x, y, számokat helyettesítenek a 0... 255-ös számtartományban, "csatorna" jelölés helyére a megfelelő video-csatorna számát kell beírni.

BORDER (o)
SET BORDER n
A keret színét állítja be az n szám által jelölt színre.
Pl.: SET BORDER 255

DEFAULT CHANNEL (o)
SET DEFAULT CHANNEL csatorna

Kijelöli a (kimeneti) csatornát, melyet a rendszerbővítések, mint például az EXDOS az üzenetek megjelenítésére használnak. Itt lehet meghatározni, hogy melyik ablakban jelenjék meg pl. a katalógusjegyzék (directory).
Pl.: SET DEFAULT CHANNEL 120


EDITOR PUFFER (o)
SET EDITOR PUFFER n

Minden EDITOR-nak van egy puffere, amelyben a szöveget tárolja. Ez a tároló normálisan több mint egy képernyőoldalt tartalmaz. Mielőtt egy EDITOR:-t megnyitna, így határozhatja meg, milyen nagy legyen a puffere. Az n szám 1-62 között lehetséges, a tárolókapacitás pedig n 256-szorosa byte-okban.
Pl: SET EDITOR PUFFER 20
(5120 byte tárolási kapacitás)


EDITOR VIDEO (o)

SET EDITOR VIDEO csatorna

Minden EDITOR-nak szüksége van egy kimeneti lehetőségre, mely normálisan egy video-csatorna. Mielőtt egy EDITOR-t megnyitna, így határozhatja meg, hogy melyik legyen a kimenete által használt csatorna. Mindig előbb kell a video-oldalt, ablakot megnyitni mint az EDITOR-t, az oldal nagysága később nem változtatható, ekkor az EDITOR ugyanis nem veszi észre.
Pl: SET EDITOR VIDEO 102
A kimeneti csatorna a 102-es (alapértelmezett) szövegoldal.


STATUS (o)

SET STATUS ON/OFF

A státuszsort kapcsolja ki és be.
Pl.: SET STATUS OFF
A státuszsor kikapcsolása.


VIDEO X (m)

SET VIDEO X n

A legközelebbi video-oldal szélességét lehet beállítani, az n 1-82 között a karakter vízszintes irányú pozíciószámát jelöli.
Pl.: SET VIDEO X 40
(40 karakter szélességűre)


VIDEO Y (o)

SET VIDEO Y n

Hasonló a VIDEO X-hez, csak itt az ablak magasságot lehet beállítani. Attól függően, hogy az ablaknak van címsora vagy sem, az n értéktartománya a következő lehet:
címsorral együtt: 1-25 között
címsor nélkül:    1-26 között
Pl.: SET VIDEO Y 10
(10 sor magasságúra)


VIDEO MODE (m)

SET VIDEO MODE n

Az ablak típusát állítja be. Az n értéke. 0 és 2 lehet. A grafikusmódokat nem támogatja. Az n értéke az ablak valóságos szélességére van hatással:
n=0: A szélesség a VIDEO X-ben meghatározott
n=2: Az ablak szélessége a VIDEO X-ben   meghatározott duplája lesz
Pl. : SET VIDEO MODE 0
(A VIDEO X által meghatározott szélesség)


VIDEO COLOUR

 

A WINDOWS mindig figyelmen kívül hagyja. Az értéknek nincs semmi szerepe.

3.2. Az utasítások

Az utasításoknak két fajtáját különböztetjük meg: az egyik a "SET #csatorna:" kezdetű és escape-szekvenciát (ld.: 4.3. fejezet) hoz létre, míg a másik fajta EXOS funkcióhívásokat, pl. "OPEN £csatorna:". Ha más programnyelvben az utasítások némelyike hiányozna, a "SET £csatorna:" típusnál mindig fennáll a lehetőség, hogy azt megfelelő escape-szekvencia (ld.: 4.3. fejezet) kiadásával pótoljuk.

CHARACTER (o)

SET £csatorna:CHARACTER c, n1, n2, ... n9

A karakterkészlet egyik karakterét határozza meg. A módosítás minden ablakra kihatással van. A csatorna egy video-csatorna száma kell legyen. A c a karakter ASCII kódja. Az n1-n9 értékek bináris alakjai határozzák meg a karakter egyes sorait.
Pl: SET £102:CHARACTER 70, 0, 255, 0, 255, 0, 255, 0, 255, 0
(az "F" karaktert egy vonalas sormintává alakítja át)


CLOSE (o)

CLOSE £csatorna

Egy csatornát zár le. Ha a csatorna egy ablak volt, akkor a beállított felület az átfedésekre tekintet nélkül törlődik. Az illető ablakokat aztán a DISPLAY utasítással kell ismét helyreállítani. A CLOSE kiadása után az illető csatorna többé már nem érhető el, ilyen próbálkozásnál hibaüzenetet kapunk.
Pl.: CLOSE £10


CURSOR CHARACTER (o)

SET £csatorna:CURSOR CHARACTER n

A kurzor alakját lehet vele változtatni. A csatorna egy video-csatorna száma, n egy karakter (ASCII kódja), mely ezt követően a kurzorkarakter lesz
Pl.: SET £102:CURSOR CHARACTER 95
A 102-es csatorna (szövegoldal) kurzora az aláhúzás karakter lesz.


CURSOR COLOUR (o)

SET £csatorna:CURSOR COLOUR n

A csatorna által meghatározott video-oldalon a kurzor színét határozza meg. Ugyanakkor hatással van a háttér és az előtér alapszínére, az n a négy alkalmazható színpár egyikét jelöli ki (ld. még INK). Az n 0 és 7 között lehet. Négy színpár van, ahol 0 és 1, 1 és 2 stb. az elő- és háttér színpárját alkotja. n=0 és n=1 magára a kurzor színére hat.
Pl.: SET £102:CURSOR COLOUR 4
(3. színpár (fekete/fehér))


DISPLAY (m)

DISPLAY £csatorna:(AT y) (FROM x)

A DISPLAY a képernyőn egy ablakot nyit. Az x és y az ablakkeret bal felső sarkának koordinátája, amelyet úgy kell megválasztani, hogy az ablak a képernyőn teljesen elférjen. Az y a sor száma, az x az oszlopé. A már megjelenített ablak további DISPLAY utasítással eltolható. További két különleges funkció is van:

DISPLAY £csatorna:FROM 0

töröl egy ablakot (csak) a képernyőről. A CLOSE utasítással ellentétben a csatornára történő kimenetek továbbra is lehetségesek, az adatokat a puffer tárolja.

DISPLAY £csatorna:AT 0

egy ablak "felfrissítésére" szolgál, azaz a részben, vagy a FROM 0 által teljesen törölt adatainak újra megjelenítésére. Az előnye abban áll,  hogy a felhasználónak nem kell megjegyezni a koordinátákat. Ha az AT y és FROM x teljesen hiányzik, a BASIC a következő alapértékeket veszi fel: DISPLAY£#csatorna: ugyanaz, mint DISPLAY £csatorna: AT 1 FROM 1

Pl:
DISPLAY £10:AT 1 FROM 1 - balra teljesen fönt megjelenít
DISPLAY £10:FROM 0 - töröl
DISPLAY £10:AT 0  - újra megjelenít


INK (o)

SET £csatorna:INK n

Az INK utasítással az a szín választható meg, mellyel a további szövegek írása történik. Bár az "INK" (=tinta) valójában az írás vagy előtér színét jelenti, az utasítás a szöveg háttér színét is befolyásolja. Ez abból következik, hogy az ENTERPRISE szövegmódban a színeket ún. színpárokba szervezi. A színpárokat a következő színszámok alkotják:

Színpár Színszámok Színek
1
(0, 1)
(fekete / zöld)
2
(2, 3)
(fekete / lila)
3
(4, 5)
(fekete / fehér)
4
(6, 7)
(vörös / fekete)

Az n egy szín száma, amely ha nagyobb 7-nél, a gép modulo 8-ként értelmezi, tehát értéke mindig 0 és 7 közé esik. Mivel színpárokról van szó, a SET #10:INK 6 és INK 7 utasítások egyenértékűek, mindkét esetben a 4-es színpár lesz kijelölve, a vörös háttér és fekete előtér.
Pl.: SET £102:INK 4
(szöveg fekete/fehérben)


LOOK (o)

LOOK £csatorna: változó

A LOOK többféle feladatot lát el:
Lekérdezhető vele a kurzor alatti karakter és a kurzor pozíciója. A csatorna egy video-csatorna száma, a változó pedig egy változónév. Ha csak a "LOOK #csatarna:változó" utasítást adjuk meg, a változóban a kurzorpozíción található karakter ASCII kódja jelenik meg. Ha a kurzorpozíciót akarjuk megismerni, a következő utasításokat kell megadnunk:

PRINT £csatorna:HEX$("1B,3F")
LOOK £csatorna:X
LOOK £csatorna:Y

Az X-ben a kurzorpozíció oszlopának, az Y-ban pedig a sorának a száma jelenik meg. Pl.:
LOOK £I02:C              - C tartalmazza a kurzor alatti karaktert
PRINT £102:HEX$("1B,3F") - escape-szekvencia
LOOK £102:XPOS    - XPOS-ban a kurzor oszlopának száma
LOOK £102:YPOS    - YPOS-ban a kurzor sorának száma


OPEN (m)

OPEN £csatorna:"VIDEO:(címsor)"

Az OPEN egy csatornát, most egy video-csatornát (vagy ablakot, ami ugyanaz) nyit meg. Előzetesen a "SET VIDEO" utasítással meg kell határozni a szélességét, magasságát stb. Fakultatívan adhatunk az ablaknak egy címsort is. A szövegnek közvetlen a VIDEO-t követő kettőspont után kell állnia, és az EXOS-file-névre vonatkozóknak kell eleget tennie. Ha hiányzik a szöveg, az ablaknak nem lesz címsora. A címsor jelenlététől függ az ablak maximális magassága (ld.: VIDEO Y). Egy ilymódon megnyitott ablakra már lehet írni, függetlenül attól, hogy még nem látható (v.ö.: DISPLAY). Az adatok egy puffer-ban tárolódnak.
Pl.:
OPEN £15:"VIDEO:ablak" - címsorral
OPEN £13:"VIDEO:" - címsor nélkül


PAPER (o)

SET £csatorna:PAPER n

Működése azonos az INK utasításéval.


SCROLL ON / OFF (o)

SET £csatorna:SCROLL ON / OFF

Az automatikus képernyő görgetést kapcsolja ki vagy be. Bekapcsolt állapotban, ha a kurzor a képernyő utolsó sora végénél tovább megy, egy sorral feljebb görgeti a szöveget. Kikapcsolt állapotban a kurzor csak  az    utolsó sor elejére menne vissza. Alapállapotéban a görgetés be van kapcsolva. Pl.:
SET £120:SCROLL ON     - a görgetést bekapcsolja
SET £120:SCROLL OFF    - a görgetést kikapcsolja


SCROLL UP / DOWN (o)

SET £csatorna:SCROLL UP / DOWN n, m

Az ablak egy kivágását le (DOWN) vagy fel (UP) mozgatja. Az n az első sor, az m az utolsó sor. Az n-nek kisebbnek vagy egyenlőnek kell lenni, mint m. Jegyezzük meg, hogy az n és m értékéhez mindig egy 32-es eltolást hozzá kell számítani.
Ha például a 4. és 8. sor közé akarjuk az ablakot:
SET £102:SCROLL UP 4+32, 8+32


WINDOWS (m)

:WINDOWS (ON / OFF / AN / AUS)

Játékprogramnál vagy grafikánál a WINDOWS-t ki kell kapcsolni. Ennek érdekében BASIC-ben ezt írja be
:WINDOWS OFF
vagy
:WINDOWS AUS
A parancskezdő kettőspontról ne feledkezzünk meg, hisz ez nem egy BASIC utasítás. Programból nem hívható.

Fontos!
Ha a WINDOWS-t lekapcsoltuk, újra kell indítani valamilyen alkalmazói programot, pl. BASIC-et a ":BASIC"-kel vagy a szövegszerkesztőt a ":WP"-vel. A régi video-eszköz csak ezáltal az újraindítás által lesz újra aktív.

A WINDOWS újra bekapcsolása érdekében egyszerűen csak ezt írja be:
:WINDOWS
vagy
:WINDOWS ON
vagy
:WINDOWS AN

Minden nyitott video-csatorna bezáródik. A WINDOWS-t csak akkor lehet aktivizálni, amikor BASIC-ben vagyunk (csak a BASIC van abban a helyzetben, hogy felismerje és megfelelően reagáljon, ha a kimeneti csatornája be lett zárva; a WP erre elszállna).

4. Technikai adatok

Ez a fejezet a WINDOWS működési módjába enged az érdeklődőknek bepillantást.

4.1. A WINDOWS felépítése
A WINDOWS két részből áll: az egyik a rendszerbővítés, a másik a (video-device-driver) video-eszköz meghajtó. A két részt együtt mint az ENTERPRISE RSX = Relocatable System Extension-ját kell betölteni. A rendszerbővítés-rész feladata az, hogy a video-meghajtót a betöltés és az alkalmazási program minden váltása után az eszközmeghajtók közé újra besorolja (21-re történő EXOS-hívással). Továbbá egy HELP-szöveget bocsát rendelkezésre, és a video-meghajtó be- és kikapcsolásához szolgáló utasításokat feldolgozza.

4.2. (Kompatibilitás) Illeszkedés
A WINDOWS minden olyan programmal használható, amely szövegkiadásra korlátozódik. Ebben a programnyelvnek nincs semmi szerepe. A szerző sikeresen tesztelte a GEN és MON (HiSoft DEVPAC), az IS-BASIC, az IS-LISP programokat és az EXDOS command interpreterét. A beépített szövegszerkesztő is működik az ablaktechnikával. A játék- és grafikus programok nem működnek.

4.3. ESCAPE-szekvenciák és vezérlőjelek
Az ESCAPE-szekvenciák olyan karaktersorozatok, melyeket a video-meghajtó nem jelenít meg, hanem speciálisan kezeli őket. Ezek hatása a kurzornak a megfelelő pozícióra történő beállításától a karakterkészlet újradefiniálásáig terjedhet.
A karaktersorozat az <ESC> jellel kezdődik, melyet ESCAPE-nek hívunk, s melynek ASCII-kódja decimális 27, folytatódik egy a kívánt akciónak megfelelő karakterrel. A kívánt akciótól függ, hogy még hány paramétert kell megadnunk. A PRINT utasítással például így adhatunk meg egy ilyen karaktersorozatot:

PRINT £10:CHR$(27); "_"; CHR$(4+32); CHR$(1+32);

Ez a kurzort a £10-es video-oldalon a 4. sor 1. oszlopára pozícionálja. Egy másik, ennél rövidebb lehetőség a HEX$-függvény használata (ilyenkor a hexadecimális kódokat kell használnunk):

PRINT £10:HEX$("1B,3D,24,21");

vagy az alábbi:

PRINT £10:CHR$(27); "=$!";

Mind a három PRINT sor egyenértékű. Figyeljen   a pontosvesszőkre.

Az ESCAPE-szekvenciák felsorolásánál a kapcsos zárójelek (<>) közöttiek egy karakterek:

<ESC>=<y><x>

A kurzort pozícionálja, az x és y a 32-vel növelt koordináták.

<ESC>o Kikapcsolja a kurzort.
<ESC>O Bekapcsolja a kurzort.
<ESC>s

Automatikus görgetés kikapcsolása.

<ESC>S Automatikus görgetés bekapcsolása.
<ESC>I<n> n-színűre állítja be a karakterszínt.
<ESC>P<n> lásd előzőt.

<ESC>K<n><rl><r2><r3>...<r9>

Az n ASCII-kódú karaktert beállítja olyan alakúra, amilyent az r1-r9 byte-ok meghatároznak. Minden byte a képernyőn a karakter egy pontsorát képviseli.

<ESC>?

A kurzorpozíció olvasása. A két egymást követő a video-oldalról olvasott karakter a kurzor Y és X pozíciója (minden esetben 32-vel növelve)

<ESC>.<n> A kurzor karakter beállítása az n kódú karakterre.
<ESC>M<n>

A kurzor beállítása az n színre.

<ESC>U<m><n> Az m-32 sor görgetése felfelé az n-32 sorig; m<=n.
<ESC>D<m><n>

Az m-32 sor görgetése lefelé az n-32 sorig; m<=n.

A vezérlőkarakterek hasonló funkciójúak, mint az ESCAPE-szekvenciák, de mindössze egy az ASCII 32 kód alatti byte-ból állnak.
Legegyszerűbb egy CHR$( ) függvénnyel használni. Például:

PRINT £10:CHR$(26);

törli az ablakot.

^Z CHR$(26) A video-oldal törlése.
^J CHR$(10) Soremelés (LF).
^M CHR$(13) CR, kocsi-vissza, a kurzort a sor elejére állítja vissza.
^^ CHR$(30)

A kurzort a bal felső sarokba állítja vissza.

^Y CHR$(25)

Töröl a sor végéig, a kurzor mozgatása nélkül.

^H CHR$(8) Kurzort balra.
^I CHR$(9) Kurzort előre.
^K CHR$(11) Kurzort fel.
^V CHR$(22) Kurzort le.

4.4. A speciális funkció hívása
Ez a fejezet csak azok számára érdekes, akik gépi nyelven programoznak és kiismerik magukat az EXOS-ban.

A 11-es EXOS-hívás (Special-Function-Call) a B regiszterbe különböző paramétert kíván. Az ablakot meghatározó X koordinátát (vízszintes) az E regiszterbe, az Y koordinátát a C regiszterbe kell helyezni.

4.5. A memória felépítése
Minden nyitott ablaknak van egy háttértára, amelybe az olyan fontos adatokat rakják be, mint az ablak nagyságát, a kurzor címét, az ablak helyét a képernyőn stb., ugyancsak itt van az ablak tartalmának egy másolata is. Ezt a háttértárat a csatorna megnyitásakor az operációs rendszer mint Channel-RAM-ot bocsátja rendelkezésre. A tárigény az     ablak nagyságától függ és a következőképpen lehet kiszámítani.

Tárigény byte-okban = 128+52+16+szélesség * magasság

A Channel-RAM három részre oszlik:

  1. Az adattartomány (128 byte)
  2. A mutató (=pointer) tartomány (52 byte)
  3. Az ablak tartalma (szélesség*magasság)

A mutatótartomány felépítése:

DE az 1. sor mutatója <- DE ugyanakkor a 3-as funkcióhívásra is mutat!
DE-2 a 2. sor mutatója  
DE-4 a 3. sor mutatója  
DE-6 ...  
DE-50

a 26. sor mutatója

 

Mindig 26 sor van, még ha az ablaknak kevesebb is lehet. Mindig csak az első n számú mutató érvényes.
A mutató azért lett bevezetve, hogy a szöveg görgetésének a lehető legkevesebb legyen a ráfordítás. A szöveg eltolásakor valójában nem a sorok tolódnak el, csak a megfelelő mutatók. Ennek természetesen az a következménye, hogy a sorok a memóriában már nem abban a sorrendben vannak, mint a képernyőn. Egy összehasonlítás: 10 sort soronként 80 karakterrel eltolni, egy sorral 800 byte-ot kellene átrakni, míg ez csak 10 mutató, azaz 20 byte.
A mutatóknál még egy továbbit is figyelembe kell venni: ezek a DE tartalmához viszonyítottak, és a memóriában először a mutató magas értékű byte-ja és aztán az alacsony értékű következik!
Az adatoknak a megfelelő sorba kerülése érdekében a következő számítást kell elvégezni:

Az első karakter címe: DE + 128 - a sor mutatója

A cím az 1-es Z80 lapon van.