Opis sterownika W: (WINDOWS.SYS)
Opis sterownika W: (WINDOWS.SYS)
Program autorstwa L Pasternaka i Janusza Pelca został opublikowany na 12 stronie czasopisma Moje Atari z października 1990.
Sterownik okienek WINDOWS.SYS instaluje w systemie sterownik urządzenia W:. i od tego momentu mamy możliwość użycia okienek np. w języku Turbo Basic XL. Sterownik posiada wiele ograniczeń, chociażby takie, że pracuje tylko w trybie tekstowym i tylko 40 kolumnowym. Niestety przedstawiona wersja została napisana dla systemów innych niż Sparta DOS X – mogą więc wystąpić jakieś trudności z użytkowaniem – wynika to przede wszystkim ze sposobu umieszczenia go w pamięci, mnie taka sytuacja nigdy się nie zdarzyła, sądzę, że w większości przypadków nadaje się do wykorzystania w nieskomplikowanych programach.
Plik sterownika można pobrać z linku z końca artykułu. W systemie Sparta DOS X można uruchomić go w trybie bezpośrednim lub umieścić wywołanie w pliku CONFIG.SYS.
Funkcje sterownika WINDOWS.SYS:
#KANAŁ,AUX,N,”W:X,Y,SX,SY,R,P,Z”
-
- AUX=4 – odczyt położenia kursora, AUX=8 – wpisywanie tekstu do okna, AUX=12 – wpisywanie tekstu do okna i odczyt położenia kursora
- N=0 okienka standardowe, N=1 okienko w negatywie
- X i Y – pozycja lewego górnego narożnika ramki okienka, zgodne z POSITION
- SX i SY – szerokość i wysokość okienka wraz z ramką, maksymalny SX=38 maksymalny SY=22
- R – wzór ramki, przyjmuje wartości od 0 do 7
- P – ilość linii tekstu do przesunięcia po przepełnieniu okienka
- Z=0 okienko zamyka się natychmiast po instrukcji CLOSE, END lub Z>0 okienko czeka na naciśniecie klawisza
Przykład 1: otwarcie okienka do wyświetlenia tekstu i zamknięcie po naciśnięciu klawisza:
10 OPEN #1,8,1,”W:10,10,15,5,0,0,1″
11 ?#1,”Moje piersze okienko”
20 CLOSE #1
Przykład 2: menu w programie, okno w negatywnie, wybranie opcji klawiszami kursora, zamknięcie po wybraniu klawiszem Return. Po zamknięciu okna zmienna X zawiera numer wybranego wiersza liczony od 0 (zera). Jeśli zostanie wciśnięty klawisz ESC zmienna X zwróci wartość 155. Umieszczenie średnika w linii 13 spowoduje, że tekst nie przepłynie w oknie.
10 OPEN #1,12,1,”W:10,10,15,3,0,0,0″
11 ?#1;”Pierwsza opcja”
12 ?#1;”Druga opcja”
13 ?#1;”Trzecia opcja”;
14 GET #1,X
20 CLOSE #1
Proste ? Teraz można już wzbogacić swoje dzieło w okienka z treścią programu lub menu z opcjami.
Przykład 3: kilka okienek otwieranych kolejnymi kanałami:
10 CLS :POKE 752,1
12 OPEN #3,12,0,”W:2,2,34,10,0,0,1″
14 POSITION 3,2:? „Moj program w TBXL”
16 OPEN #1,12,0,”W:3,3,15,3,0,0,0″
18 ? #1;”PIERWSZA OPCJA”
20 ? #1;”DRUGA OPCJA”
22 ? #1;”TRZECIA OPCJA”;
24 GET #1,X: CLOSE #1:IF X=155 THEN 28
26 ? #3:? #3;”Wybrana opcja „;X+1
28 CLOSE #3:POKE 752,0:CLS :END
Poniżej znajduje się również link do sterownika WINDOWS2.SYS W zmodyfikowanej wersji poruszamy kursorem wewnątrz okna dla wygody tylko klawiszami strzałek góra-dół bez CONTROL. Drugi zestaw znaków (R=2) służący do rysowania ramek został dostosowany do możliwości wyświetlania polskich czcionek w popularnej konwencji CTRL+A=ą itd… CTRL+X=ż oraz pozostawia możliwość zdefiniowania czcionek dla ramki. Przykładowy zestaw czcionek znajduje się w pliku ATARI8.FNT
Prawda że łatwe ? Brakuje sterownika okienek z prawdziwego zdarzenia napisanego typowo dla Sparta DOS X. Być może kiedyś się taki pojawi.
Uwagi:
1. Otwarcie okienka rezerwuje i zwalnia pamięć, może się zdarzyć błąd o braku pamięci. Jak pisałem sterownik nie jest najlepszy.
2. Aktywne jest jedynie okno pierwszoplanowe, użycie funkcji GET nawet na innym kanale będzie dotyczyło aktywnego okna (można dla próby zmienić w linni 24 GET#1 na GET#3). Również funkcja CLOSE zamknie ostatnio aktywowane okno.
3. Sterownik działa pod Sparta DOS X lecz nie został napisany zgodnie ze „sztuką”: nie relokuje się, nie inicjuje po RESET (po wciśnięciu RESET lub zmianie trybu graficznego na inny niż GRAPHICS 0 zostanie uszkodzony)
Biblioteka:
- Sterownik WINDOWS.SYS (wewnątrz spakowanego pliku ZIP)
- Sterownik WINDOWS2.SYS (wewnątrz spakowanego pliku ZIP)
- Przykładowe czcionki ATARI8.FNT (wewnątrz spakowanego pliku ZIP)