19. Textová obrazovka: POSITION, GRAPHICS 0, SETCOLOR

Na čo to je

PRINT píše tam, kde práve stojí kurzor – riadok za riadkom, zhora nadol. Na hru, ponuku alebo tabuľku to nestačí: chceš písať na presné miesto, obrazovku zmazať a zmeniť jej farby.

Ako sa to píše

PríkazČo robí
GRAPHICS 0zapne obyčajnú textovú obrazovku a zmaže ju
PRINT CHR$(125)zmaže obrazovku (kurzor ide vľavo hore)
POSITION stĺpec,riadokpostaví kurzor; ďalší PRINT píše odtiaľ
SETCOLOR 2,odtieň,jasfarba pozadia
SETCOLOR 1,0,jasjas písmen (odtieň majú vždy ako pozadie)
SETCOLOR 4,odtieň,jasfarba okraja okolo obrazovky
POKE 752,1skryje kurzor

Obrazovka má 40 stĺpcov (0 až 39) a 24 riadkov (0 až 23). Miesto 0,0 je vľavo hore.

Odtieň je číslo 0 až 15, jas párne číslo 0 (tmavá) až 14 (svetlá):

OdtieňFarbaOdtieňFarba
0sivá8modrá
1zlatá9svetlomodrá
2oranžová10tyrkysová
3červená11modrozelená
4ružová12zelená
5fialová13žltozelená
6modrofialová14olivová
7modrá15svetlooranžová

Celý program

Súbor examples/screen.abas:

Atari BASIC
10 REM The text screen
20 GRAPHICS 0
30 SETCOLOR 2,12,2:REM background: dark green
40 SETCOLOR 1,0,14:REM letters: bright
50 SETCOLOR 4,3,6:REM border: red
60 POKE 752,1:REM hide the cursor
70 POSITION 14,2:PRINT "A T A R I"
80 FOR X=10 TO 26
90   POSITION X,4:PRINT "-";
100 NEXT X
110 FOR Y=6 TO 10
120   POSITION Y,Y:PRINT "Row ";Y
130 NEXT Y
140 POSITION 2,20:PRINT "Bottom line";

Preklad a spustenie

Farby ukáže len emulátor:

Basic26 screen.abas --run

Rozloženie textu ukáže aj simulátor s voľbou --sim-screen:

Basic26 screen.abas --sim --sim-screen

Čo uvidíš



              A T A R I

          -----------------

      Row 6
       Row 7
        Row 8
         Row 9
          Row 10









  Bottom line

V emulátore je to isté svetlými písmenami na tmavozelenom pozadí s červeným okrajom, bez kurzora.

Ako to funguje

Zmazanie obrazovky

GRAPHICS 0 zmaže obrazovku a vráti farby. PRINT CHR$(125) ju len zmaže – farby aj skrytý kurzor ostanú. V dobových programoch nájdeš za PRINT v úvodzovkách zvláštny znak (zahnutú šípku); je to ten istý kód 125 napísaný rovno z klávesnice Atari.

Inverzné písmo

Znaky s kódom o 128 väčším sa vypíšu inverzne – tmavé na svetlom. PRINT CHR$(65+128) je inverzné A. Tak sa robia zvýraznené nadpisy a „tlačidlá“.

Časté chyby

Čo sa staloČo sa stane
poradie POSITION riadok,stĺpectext je inde; správne je stĺpec prvý
pozícia mimo obrazovky (POSITION 50,5)ERROR- 141 AT LINE 70 pri najbližšom PRINT
PRINT bez bodkočiarky v riadku 23obrazovka sa posunie o riadok nahor
text presiahne pravý okrajpokračuje na ďalšom riadku od ľavého okraja (stĺpec 2)
SETCOLOR 1 s odtieňomodtieň sa ignoruje, písmená majú farbu pozadia v inom jase
malý rozdiel jasu písmen a pozadiatext nevidno

Vyskúšaj si

  1. Nakresli z pomlčiek a znakov ! rámček okolo nadpisu.
  2. Vypíš svoje meno do stredu obrazovky. (Stĺpec je (40-LEN(N$))/2.)
  3. Vyskúšaj v slučke všetkých 16 odtieňov pozadia; medzi nimi čakaj pol sekundy podprogramom z kapitoly 18. Spusti v emulátore.

Zhrnutie

Späť: 18. Pamäť počítača · Ďalej: 20. Grafika