Autor Wątek: Terminal do FDD3000, czyli bajzel na kółkach  (Przeczytany 311 razy)

trojacek

  • *****
  • Wiadomości: 5894
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #15 dnia: 2021.06.08, 21:08:55 »
Fiu, fiu, dobra robota, steev!

steev

  • *****
  • Wiadomości: 1135
  • Miejsce pobytu:
    inode 42
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #16 dnia: 2021.06.08, 21:14:12 »
Na deser wszystkie bejziki en masse.
To już w pełni maszynowo ;)
Machines should work. People should think.

pear

  • *****
  • Wiadomości: 5268
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #17 dnia: 2021.06.09, 05:31:34 »
Dzięki :) Hm, mam tylko wątpliwości, czy to na pewno to, bo coś za krótkie mi się wydaje.
Poprzeglądam jeszcze inne dyskietki.
ZX/Enterprise/CPC/Robotron/C128D

trojacek

  • *****
  • Wiadomości: 5894
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #18 dnia: 2021.06.10, 19:46:35 »
Korzystając z drobnych przestojów w pracy oraz faktu, że zawsze mam włączone co najmniej 2 laptopy z dedykowanymi monitorami, zezowałem (zezem rozbieżnym, oczywiście) dziś sporo do kodu TT3000. A tam - kilka niespodzianek.

1. Terminal jest zrobiony "na motywach" VT52, ale oczywiście są pewne rozbieżności (do przełączania fontów oraz włączania/wyłączania inwersji wykorzystano kody, które w VT52 służą do innych celów). Do tego jest ładnie zaimplementowany bufor klawiatury, no ale to w zasadzie standard w terminalach.

2. Mapowanie klawiszy zrobiono wręcz elegancko. Bardzo łatwo je zmodyfikować do innego układu klawiszy (nie dotyczy 8 klawiszy specjalnych, czytanych z portu #nnBF). Banalizuje to poprawienie układu klawiszy do jakiegoś sensownego, współczesnego standardu, gdyby ktoś się podjął zrobienia klona TT3000 :) Pozwala to na zaadaptowanie jakiejś mniej lub bardziej generycznej klawiatury, o ile tylko jej matryca zmieści się w docelowej siatce 8x8 (tyle da się osiągnąć bez głębszego kombinowania, bo w porcie #BF pozostał jeszcze bit D6 do wykorzystania).

3. Matryca klawiatury to niezła kombinacja :) W zasadzie trzon jest odziedziczony po Spectrum/TC2048, do tego wspomniany port #nnBF (nn to stan niski wystawiany na jednej z linii A8-A15 - brzmi znajomo?) dla 8 dodatkowych klawiszy specjalnych, no ale jak zacząłem liczyć klawisze, doliczyłem się kolejnych 8 :D Otóż kody klawiszy nie są odczytywane po 5 bitów (D0..D4), tylko... po 6 (bo jeszcze dodatkowo D6). Szósta linia została wykorzystana, bo przecież terminal nie wykorzystuje magnetofonu, zatem wejście EAR jest w SCLD wolne :)

4. Jak już wspominałem, port #BF jest wykorzystywany do komunikacji z FDD. Do wysyłki służą bity 0..3 (czyli młodszy "nibble"), a bity 4 i 5 służą do sterowania przesyłem (natomiast bit 7 steruje diodą LED w klawiszu CAPSLOCK). W drugą stronę - z FDD do TT - jest tak samo (przy czym na bicie D7 pojawia się dodatkowo stan klawisza, zaadresowanego jedną z linii A8-A15, jak opisywałem powyżej).

5. Beeper siedzi na porcie #FE jak w Spectrum/TC2048 i służy do produkcji dźwięku przy naciskaniu klawiszy oraz przy "drukowaniu" kodu 07h (BELL).

6. Przy weryfikowaniu list kodów klawiszy z i bez shifta odkryłem, że w jednej z wersji klawiatury jest błąd na keycapie - znakowi zapytania towarzyszy backslash (\) zamiast slasha (/). Ma tak klawiatura z capsami podobnymi do klawiatury LoProfile. Wersja z "kółeczkami" na palce (coś jak klawiatury Siemensa) ma ten opis poprawiony.

7. TT3000 po starcie/resecie przeprowadza test ROM i RAM. Jak coś nie gra - wyświetla stosowny komunikat po portugalsku i się haltuje.

No i czas mi się skończył, do usłyszenia w następnym odcinku :)
« Ostatnia zmiana: 2021.06.10, 21:35:02 wysłana przez trojacek »