Pierwszy w Polsce magazyn w formie bloga w całości poświęcony mikrokomputerom Sinclair, a w szczególności ZX Spectrum. Dla wszystkich, dla których legenda nigdy nie umrze... SPECTRUM RULEZ!!!
niedziela, 19 czerwca 2005
Wspolpraca z magnetofonem...
Gniazda przeznaczone do współpracy z magnetofonem MIC oraz EAR są dołączone za pośrednictwem układu ULA do procesora jako układ wejścia-wyjścia o adresie 254 (tego samego, który steruje dźwiękiem oraz kolorem brzegu ekranu). Trzeci bit szyny danych jest podłączony do gniazda MIC, a szósty bit do gniazda EAR.

Chcąc odczytać program z taśmy magnetofonowej, do pamięci komputera, należy przede wszystkim podłączyć magnetofon z wejściem EAR komputera. Ponieważ Spectrum współpracuje z każdym magnetofonem kasetowym, jedynym problemem może być tylko wykonanie odpowiedniej przelotki - na szczęscie sygnał do komputera doprowadza wtyczka typu mini jack, która jest zasadniczo najbardziej teraz popularna. Następnie ustawić wstępną siłę głosu - jak zaleca instrukcja do Spectrum - tak aby poziom sygnału ustawiony był na poziomie słyszalności głośnika komputera (należy eksperymentalnie dobrać) i przewinąć taśmę do początku programu który chcemy wczytać. Wydajemy polecenie LOAD "" i uruchamiamy magnetofon. Jeżeli siła głosu i barwa jest odpowiednio dobrana, to na ekranie powinny na obrzeżach pojawić się na kilka sekund niebiesko-czerwone pasy. Po nich na ekranie ukaże się napis: Program: nazwa, gdzie nazwa stanowi nazwę wczytywanego programu, a paski powinny zmienić kolor na niebiesko-żółte. Teraz w zależności od długości programu należy odczekać od kilku sekund do kilku minut, aż program wczyta się do pamięci. Nie pojawienie się napisu Program: nazwa po niebiesko-czerwonych pasach, lub pojawienie się w trakcie wczytywania napisu R Tape loading error 0:1 oznacza że barwa i siła głosu są źle dobrane i należy czynności wczytywania powtórzyć, dobierając inne ich wartości.

Zapisywanie informacji na taśmie przypomina generację dźwięku. Ponieważ szybkość przesuwu taśmy nie jest stała, a konieczna jest synchronizacja pracy komputera i magnetofonu, nie można zapisywać wprost jedynki logicznej jako wysokiego napięcia, a zera logicznego jako napięcia niskiego. Użyto więc tzw. kodu samosynchronizującego. Każdy bit jest zapisywany w ten sposób, że napięcie na wyjściu zmienia się z niskiego na wysokie (z 0,75V na 1,3V). Różny jest czas trwania stanów jedynki i zera i jest dwa razy dłuższy dla jedynki niż dla zera.


Schemat zapisu sygnału na taśmie magnetofonowej

Wszystkie programy są zapisywane na taśmie w dwóch blokach: krótki blok to nagłówek, dłuższy - blok programu lub danych. Bloki tych dwu typów mają na taśmie identyczny format. Na jego początku słychać jednostajny dźwięk - jest to wstępny, wiodący sygnał (trwa on 5 s przed nagłówkiem i ok. 2 s przed blokiem danych). W czasie trwania tego sygnału na wyjściu pojawia się na przemian niskie i wysokie napięcie, a każdy ton trwa 619 µs (co odpowiada ok. 2108 okresom zegara). Jest on używany po to, aby użytkownik mógł rozpoznać, że zaczyna się program, oraz by mogły ustawić się układy automatyki w magnetofonie. Dla komputera sygnał ten jest zbędny. Następnie pojawia się krótki impuls synchronizacji, który informuje komputer, że zaczynają się dane. Ton synchronizacyjny to niski stan przez 190 µs i wysoki przez 210 µs. Bity danych kodowane są w następujący sposób:
  • jedynka - niski, a następnie wysoki stan napięcia przez okres 488,6 µs (1710 taktów zegara każdy);
  • zero - niski, potem wysoki stan napięcia przez okres 244,3 µs (855 taktów zegara);
Nagłówek zawiera wiele informacji koniecznych do prawidłowego odczytania programu, są to:
  1. Typ programu:
    0 - program w BASICu;
    1 - tablica liczb;
    2 - tablica tekstu;
    3 - program binarny lub obraz binarnej pamięci ekranu;
  2. nazwa programu;
  3. długość w bajtach;
  4. dla programów samostartujących w BASICu numer linii od której należy rozpocząć wykonywanie programu; dla programów binarnych adres ładowania do pamięci;
  5. długość programu (dla programów w BASICu);

Numer bajtu 0 1 11 13 15

Typ
Nazwa
Długość
Adres lub długość linii
Długość programu w BASICu

Na podstawie informacji zawartych w nagłówku komputer wczytuje blok danych.

Aby zapisać program na kasetę, należy podłączyć wejście magnetofonu z gniazdem MIC, ustawić żądaną pozycję taśmy i nacisnąć przycisk nagrywania w magnetofonie, a w komputerze wydać polecenie SAVE "nazwa" gdzie nazwa odpowiada nazwie programu, którą chemy nadać naszemu programowi. Po zakończeniu nagrywania, na ekranie powinien pojawić się napis 0 OK 0:1. Jest to znak, że można wyłączyć magnetofon. Istotne jest aby dobrać eksperymentalnie głośność nagrywania (powinna być jak najniższa, bez żadnych przesterowań).
Następnie należy zweryfikować, czy zapis nastąpił bez błędów, można to uczynić (wykonując kroki opisane przy omawianiu wczytywania programu) przy użyciu komendy VERIFY " ".
piątek, 10 czerwca 2005
Klawiatura w ZX Spectrum
Postanowiłem napisać ten artykuł, ponieważ idę o zakład że mało kto wie/pamięta jak rozwiązane było wprowadzanie danych z klawiatury w pierwszych mikrokomputerach Sinclair'a - na przykładzie modelu ZX Spectrum.

Pierwszy rzut oka na klawiaturę ZX Spectrum może budzić przerażenie. Na szczęście jest to uczucie przejściowe i przyglądając się jej bliżej zauważamy pewne prawidłowości w opisach poszczególnych klawiszy.



Klawiatura ZX Spectrum posiada 40 klawiszy, na których opisane są nie tylko litery i cyfry, ale poszczególne słowa kluczowe języka BASIC, nazwy funkcji, znaki interpunkcyjne, itp. Zdecydowana większość klawiszy ma 5 znaczeń, a określenie znaczenia danego klawisza wybiera się za pomocą klawiszy funkcyjnych SYMBOL SHIFT (SS) i CAPS SHIFT (CS).

Po włączeniu zasilania komputera i naciśnięciu klawisza ENTER, w lewym dolnym rogu pojawia się kursor w postaci migającej litery K, oznaczający obecny tryb wprowadzania danych z klawiatury. W trybie K (ang. Keyword - słowo kluczowe) są dostępne wszystkie polecenia języka BASIC opisane na danym klawiszu białym kolorem (w modelach ZX80, ZX81, ZX Spectrum+ kolorystyka jest inna). W trybie K dostępne też są cyfry, które służą do wprowadzania np. numerów linii programu w języku BASIC.



Po wprowadzeniu słowa kluczowego, tryb pracy klawiatury zmienia się automatycznie w tryb L (z ang. Letters - litery). W tym trybie dostępne są wszystkie litery i cyfry opisane na klawiaturze. Jeżeli chcemy wprowadzić dużą literę, używamy klawisza CAPS SHIFT i litery - w ten sam sposób w jaki używamy klawisza SHIFT na klawiaturze PC. Przełączenie do trybu pisania dużymi literami możemy uzyskać naciskając jednocześnie CAPS SHIFT i klawisz z cyfrą 2. Na ekranie pojawi się migający kursor z literą C (z ang. Capital-letters - duże litery). Wyjście z tego trybu uzyskujemy naciskając ponownie tą samą kombinację klawiszy. Kombinacja ta jest odpowiednikiem klawisza CAPS LOCK z klawiatury PC.

Jeżeli komputer pracuje w trybie K, L, C, to po jednoczesnym naciśnięciu klawisza funkcyjnego SYMBOL SHIFT oraz innego klawisza - otrzymamy na ekranie znak oznaczony na klawiszu czerwonym kolorem.

Kolejnym trybem pracy klawiatury jest tryb E (z ang. Extended) czyli rozszerzony. Pojawia się on przy naciśnięciu kombinacji klawiszy CAPS SHIFT i SYMBOL SHIFT. Dostępne są w nim polecenia lub symbole umieszczone nad klawiszami i oznaczone kolorem zielonym. Jeżeli w tym trybie naciśniemy i przytrzymamy podczas wprowadzania klawisz SYMBOL SHIFT, wówczas wprowadzimy polecenie lub symbol znajdujący się pod klawiszem i oznaczony na czerwono.

Klawisze numeryczne (najwyższy rząd), ma trochę inne oznaczenia i trochę więcej można przy ich użyciu zdziałać. Jednoczesne naciśnięcie klawisza CAPS SHIFT i 9 zmienia tryb pracy klawiatury na G (z ang. graphics - graficzny). W trybie tym wprowadzane są znaki graficzne opisane na klawiszach od 1 do 8, które mogą zostać też wyświetlone w trybie inwersyjnym przy użyciu klawisza CAPS SHIFT. Wyjście z trybu G następuje przez powtórzenie tej samej kombinacji lub tylko naciśnięcie klawisza 9.



Cyfry od 0 do 7 mogą definiować kolory, użyte jako argumenty instrukcji PAPER (kolor tła), INK (kolor tuszu) lub BORDER (kolor ramki). Znaczenie ich opisane jest nad klawiszem odpowiednim kolorem. Podanie jako koloru cyfry 8 przywraca normalny kontrast, zaś 9 powoduje, że dobrana jest dodatkowa kontrastowość (jasność) koloru. Kolor tła pod tekstem lub jego kolor atramentu można także definiować bezpośrednio z klawiatury, w trybie E. Naciśnięcie klawisza numerycznego w tym trybie definiuje kolor tła, a jednoczesne użycie klawisza CAPS SHIFT definiuje kolor atramentu. Klawisze 8 i 9 służą w tym trybie do wyłączania i włączania migotania (FLASH), lub przy użyciu CAPS SHIFT, do wyłączania i włączania kontrastu.

Pozostało nam do omówienia działanie klawiszy numerycznych z klawiszem CAPS SHIFT. W fazie poprawiania programu bardzo użyteczne są funkcje opisane na klawiszach 1,5,6,7,8 i 0. Gdy na ekranie wyświetlane są zapamiętane wcześniej linie programu, to za pomocą CAPS SHIFT i 6 lub CAPS SHIFT i 7 możemy poruszać znacznikiem > między kolejnymi liniami programu, zgodnie ze strzałkami nad klawiszami. Znacznik zawsze znajduje się między numerem linii, a pierwszą jej instrukcją. Użycie CAPS SHIFT i 1 powoduje, że linia ze znacznikiem jest kopiowana do dolnej części ekranu i tam może być poprawiana lub zmieniana. W żądane miejsce wewnątrz poprawianej linii, można się przesunąć przy użyciu CAPS SHIFT i 5 lub CAPS SHIFT i 8 zgodnie ze strzałkami nad klawiszami. Dany znak można skasować, przy użyciu kombinacji CAPS SHIFT i 0.

Jak widać, wcale nie było to proste, obsługiwać klawiaturę w ZX Spectrum. Była to zresztą jedna z najbardziej denerwujących cech wszystkich pierwszych komputerów Sinclair'a, na którą narzekali programiści. Doprowadziło to w końcu do wprowadzenia w modelu 128k edycji "znak-po-znaku" która niestety też miała swoje mankamenty. Ale to już temat na osobny artykuł...
ZX Certified webmaster

Na licencji Creative Commons
O ile nie jest to stwierdzone inaczej, wszystkie materiały na stronie są dostępne na polskiej licencji Creative Commons