Autor Wątek: ZX81 - tryby SLOW/FAST  (Przeczytany 3565 razy)

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
ZX81 - tryby SLOW/FAST
« dnia: 2020.04.05, 09:27:23 »
Wczorajsza dyskusja o ZX81 i jego trybie SLOW/FAST kontra synchro na ekranie i obraz wczytywania z taśmy wymaga kilku wyjaśnień.

ZX81 FAST/SLOW

ZX81 ma dwa tryby pracy:
  • SLOW (compute & display) - domyślny dla BASICa i w nim komputer znajduje się początkowym teście pamięci i wyrzuceniu na ekran znaku zachęty "K"
  • FAST (compute then display) - komputer startuje w tym trybie, robi w nim test pamięci (tylko w zakresie 16K-32K) i można go wywołać przez komendę BASICa "FAST"

Ponad to tryb FAST jest trybem odziedziczonym z ZX80, któty tylko w taki tryb miał w swojej pierwotnej postaci, z ROMem 4K i bez generatora /NMI (przerwań niemaskowanych).

Komenda FAST wyłącza generator /NMI (https://www.tablix.org/~avian/spectrum/rom/zx81.htm#L0207), zapewnia zgodność ze starszym bratem, ale także przywołuje wszystkie mankamenty generowania obrazu znane z ZX80. W skrócie obraz nie jest odświeżany do momentu zakończenia programu.

W trybie "SLOW" generator /NMI działa i obraz jest normalnie odświeżany tj. 50x sekundę.

Na filmiku prosty programik pokazujący jak wygląda generowanie obrazu w trybie FAST i SLOW. W przypadku trybu FAST, grabber nie dostawał sygnałów synchronizacji i wyłączył wejście, dlatego jest tam "zielona" wstawka. ZX81 FAST - SLOW

Różnica szybkości działania komputera w obu trybach jest znacząca i wyniki można zobaczyć tu: Benchmark ZX81

Wczytywanie z taśmy:

Utrata synchronizacji obrazu na wyjściu wideo nie ma nic wspólnego z trybami SLOW/FAST. W tym przypadku "szmaty na ekranie" są wynikiem uproszczeń konstrukcyjnych ZX81. ULA ZX81 (dowolna) ma 40 nóżek, konstruktorzy nóżkę nr 16 ULA wykorzystali do:
  • wyprowadzenia obrazu
  • wejścia sygnału audio - komenda "LOAD"
  • wyjścia sygnału audo - komenda "SAVE"

w przypadku we/wy sygnału audio, to I/O nie może być wykorzystane do wysłania poprawnego obrazu na TV.

Na początku po wydaniu komendy LOAD "", ekran będzie biały bez kursora a kiedy pojawi się sygnał wejściowy ekranie lecą śmieci lub nic nie pojawi się, w zależności jak tolerancyjny jest odbiornik. Na filmie z grabbera można zobaczyć początek oraz po wydaniu komendy "LOAD"i wczytywania programu. ZX81 LOAD

Dla programistów
Potrzebujecie więcej mocy kosztem generowania obrazu, tryb FAST.
Nie jestem programistą, ale z tego co zrozumiałem, wyłączenie generatora /NMI (tryb FAST) daje Wam dostęp do większej ilości rejestrów Z80, więc tryb FAST, ale na ekranie zobaczycie najprwadopodobiey czarny ekran (zależności o podpiętego TV).
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

Maryjan

  • *****
  • Wiadomości: 6650
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: ZX81 - tryby SLOW/FAST
« Odpowiedź #1 dnia: 2020.04.05, 11:01:12 »
Ciekawe.
Nigdy w to nie wnikałem, ale by zrozumieć pewne mechanizmy rządzące ZX81 warto w ten temat było wniknąć.
Nia ma się co dziwić, że w ZX81 zachowano kompatybilność wsteczną. W jakimś tam procencie zapewne.
"Co miałem powiedzieć - przeczytałem..." Nikodem Dyzma

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 - tryby SLOW/FAST
« Odpowiedź #2 dnia: 2020.04.05, 13:25:47 »
Każde ZX80 można przerobić na ZX81, a wymagane są do tego dwie rzeczy:
1. ROM z rozszerzonym BASICiem (w sumie jest to ROM z ZX81), który jest w układzie 8KB.  Sinclair nawet oferował taki "upgrade".
2. generator /NMI.

Po "upgradzie" nie ma różnic między ZX80 a ZX81, poza tym, że ZX80 jest na układach dyskretnych a ZX81 ma całą logikę w układzie o dużej stali integracji (ULA).

Aha, jeszcze dwa słowa wyjaśnienia w sprawie utraty synchro przy wczytywaniu/zapisywaniu programów. Ta operacja musi być ciągła, a nie wykonywana w przerwach między generowaniem ramek. Albo wczytujemy/zapisujemy, albo generujemy obraz i Z80 karmiony jest NOP-ami.

Owszem, na ZX80 można napisać program, który nie będzie "migał" ekranem, ale z wykonywaniem programu trzeba wstrzelić się w okresy kiedy procesor nie generuje obrazu. W ZX80 nawet odczyt klawiatury powoduje "miganie", jak na tak prostą maszynę z 1KB RAM, bez dedykowanego układu graficznego, to i tak osiągnięto wiele.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

damik

  • Fresh rosin sniffer ;)
  • *****
  • Wiadomości: 2426
  • Miejsce pobytu:
    Generalnie Polska, głównie Bytom czasem Bielsko-Biała oraz okolice
  • ZX'owy i nie tylko...
Odp: ZX81 - tryby SLOW/FAST
« Odpowiedź #3 dnia: 2020.04.06, 11:45:42 »
Po "upgradzie" nie ma różnic między ZX80 a ZX81, poza tym, że ZX80 jest na układach dyskretnych a ZX81 ma całą logikę w układzie o dużej stali integracji (ULA).

Jest jedna różnica - to nieco inny układ klawiatury, ale to można załatwić naklejką lub wydrukowaną kartką papieru nakładaną na klawiaturę ZX80   ;)
Wszystkiego po trochu: Schwarz, mydło i powidło... konsole, stare i nieco nowsze komputery oraz akcesoria i duperele.

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 - tryby SLOW/FAST
« Odpowiedź #4 dnia: 2020.04.06, 12:37:19 »
Nowa naklejka klawiatury jest potrzebna do ZX80 przy zmianie ROMu na 8K. Rożnice są pomiędzy "starym" a 'nowym" ROMem do ZX80. Układ klawiatury z "nowym" ROMem jest taki sam, jak w ZX81.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76