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

trojacek

  • *****
  • Wiadomości: 6831
  • 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: 1362
  • 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: 5509
  • 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: 6831
  • 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 »

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #19 dnia: 2021.07.21, 18:10:21 »
No to mały teaser :)

Pozostaje mi przywieźć sobie fizyczne FDD3000 i sprawdzić, czy naprawdę działa.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #20 dnia: 2021.07.21, 18:53:34 »
A będzie też wersja PC?*) :)

*) lin/win
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #21 dnia: 2021.07.21, 19:14:20 »
Yyy,  nie rozumiem? Mało masz apek terminali na PC?

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #22 dnia: 2021.07.21, 19:50:14 »
Obsługujących wszystkie kody i dewiacje terminala dla FDD3(000)?
Hm, gdzieś tak... zero.
Jak jest to się chętnie dowiem.
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #23 dnia: 2021.07.21, 20:53:57 »
Jakie dewiacje? To jest podzbiór VT52. Jedynym nietypowym kodem jest przełączanie na czcionkę portugalską (Esc N + litera łacińska).

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #24 dnia: 2021.07.21, 21:46:17 »
Hm.
Co w takim razie obsługiwało w przykładach z Twojej (niestety nieco uszkodzonej) dyskietki kody (^ = ESC) :
^O, ^P, ^Q, ^G, ^F, ^T0, ^T1, ^N, ^WD, ^WG i inne odpowiedzialne za grafikę i okna.

Terminal TMX (z szybkiego rycia kodu widzę, że chyba nie), terminal Unipolbrit, jakieś rozszerzenie ładowane na ZX przed/po terminalu , Masaj?
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #25 dnia: 2021.07.21, 22:05:51 »
Nie wiem, o czym piszesz. Grafika, okna? To nie jest VT52, mogę tylko zgadywać, że chodzi o jakieś rozszerzenia polbritowskie. Jak widzę, tytuł wątku okazał się adekwatny :D

Timex Monitor Emulator (dołączany standardowo do oryginalnej stacji FDD3000) obsługuje kody:
A (Cursor Up) - wiersz w górę
B (Cursor Down) - wiersz w dół
C (Cursor Forward) - znak do przodu
D (Cursor Back) - cofanie o znak
F - zmiana na graf font
G - zmiana plain font
H (Cursor Position) - SCREEN home
I - kursor w górę z ewentualnym scrollem
J (Erase in Display) - czyszczenie od kursora do końca ekranu
K (Erase in Line) - kasowanie linii na prawo od kursora
Y (Direct Cursor Address) - ustawianie kursora (włączenie oczekiwania na parametry)
Z (Identify) - wysyłka Esc + "/Z.", identyfikacja
L - INVERSE ON
M - INVERSE OFF
N - znak z innego fontu (PT)

OK - kombinacje Esc+L i Esc+M mają inne funkcje, niż w VT52. To faktycznie może powodować problemy, choć tak na oko, programy typu WordStar działają prawidłowo z tym terminalem.

TT3000 obsługuje dodatkowo kody Esc+O i Esc+P, ale na jakieś swoje wewnętrzne potrzeby (wygląda to na włączenie/wyłączenie obsługi kilku znaków specjalnych z puli 127-255).

Obrazek z Wikipedii (https://en.wikipedia.org/wiki/VT52).
« Ostatnia zmiana: 2021.07.21, 22:12:29 wysłana przez trojacek »

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #26 dnia: 2021.07.21, 22:30:37 »
Nie wiem, o czym piszesz. Grafika, okna? To nie jest VT52, mogę tylko zgadywać, że chodzi o jakieś rozszerzenia polbritowskie. Jak widzę, tytuł wątku okazał się adekwatny :D
Piszę o tym co w załączniku :)
Wiem że to nie czysty VT52.
Przypuszczam że masz rację. Ale nie mam siły na analizę unipolbriterminala żeby to zweryfikować :(
A tytuł wątku w 101% trafny :>
---
edit : Jak mówi Księga : 'szukajcie aż znajdziecie' ;/
« Ostatnia zmiana: 2021.07.21, 22:54:16 wysłana przez steev »
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #27 dnia: 2021.07.21, 22:59:15 »
No, ja w pełni rozumiem, sam odkładam temat mutacji polbritowskiej na jakąś nieokreśloną przyszłość. Wolałbym się skupić na wersji timexowej i ewentualnie ją rozbudowywać o jakieś funkcjonalności. Może nawet o wspomniane już ramki i grafikę :)

Jednak jako priorytet chciałbym umożliwić zmianę mapowania kodów Esc. Nie jest to jakiś rocket science, a pozwalałoby uruchamiać pogramy CP/M wymagające nieco odmiennych funkcjonalności terminala (na przykład Esc+L i Esc+M do dodawania/kasowania linii). Może nawet udałoby się zaimplementować nowsze wersje protokołu.

W załączeniu artykuł z Bajtka, zawierający spis kodów polbritowskich.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #28 dnia: 2022.12.21, 13:48:14 »
A tak wygląda porównanie procedur wysyłki zawartości rejestru B do FDD.
Po lewej - kod TT3000.
Po prawej - kod z programu terminala dla TC2048.
Instrukcje z użyciem (iy+04h) to nakładanie statusu CapsLocka, nie występuje w TC2048. Dla zwiększenia czytelności kod TC2048 ma tam puste linie.
W negatywie - znalezione przeze mnie różnice, dotyczące, jak widać, starszych 4 bitów wysyłanych/odbieranych do/z FDD.

Opis bitów dla in/out:
D0..D3 - dane in/out w formie półbajtów (nibble)
D4, D5 - TT3000: bity sterujące wysyłką/odbiorem, 2048: 00
D6 - 2048: sterowanie wysyłką/odbiorem (TT3000 nie używa tego bitu)
D7 - TT3000: out: LED CapsLocka, in: odczyt dodatkowego rządka klawiatury (nie używany w cytowanym kodzie), 2048: sterowanie wysyłką/odbiorem
« Ostatnia zmiana: 2023.01.08, 23:26:46 wysłana przez trojacek »

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Terminal do FDD3000, czyli bajzel na kółkach
« Odpowiedź #29 dnia: 2022.12.21, 18:20:35 »
Dla porządku jeszcze dodam, że w posiadanych przeze mnie wersjach ROMów dla TI, oprócz romów z sygnałami maskowanymi bajtem $c0 (flagi transmicji na bitach 7,6) znajdują się też romy maskowane bajtem $50 (bity 6,4)
BYĆ MOŻE różnice dotyczą wersji interfejsu (Asic / TTL)
Machines should work. People should think.