Komputery z Z80 > TIMEX

Timex Sinclair 1500

<< < (3/5) > >>

trojacek:
Hmm, to nie tylko kwestia 50/60 Hz, ale również liczby linii na obraz (nie pikseli w pionie, tylko linii generowanego obrazu). Te układy muszą mieć więc jakąś funkcjonalność przełączania liczby linii, chyba że ZX81/TS1000 mocno "naciąga" parametry obrazu, wyświetlając coś pomiędzy 262 a 312 liniami na klatkę. Ale jakoś tego nie widzę, musi być więc jakiś inny detal, który pozostawiam do wyjaśnienia miłośnikom tych maszynek, bo mnie one nie kręcą ;) - OK, doczytałem, wszystko się odbywa software'owo, a R30 zmienia tylko stan logiczny, czytany przez CPU :) No i ROM musi wspierać takie przełączanie.

Wracając do 4264, znalazłem taki dość stary dokument o scalonych pamięciach i tam faktycznie jest znak równości między MN4264 a 4416 (w załączeniu).

KWF:

--- Cytat: trojacek w 2018.10.04, 18:03:09 ---OK, doczytałem, wszystko się odbywa software'owo, a R30 zmienia tylko stan logiczny, czytany przez CPU :) No i ROM musi wspierać takie przełączanie.
--- Koniec cytatu ---

Nie jest to soft a hardware logiki w ULA. ULA z Zeddiego (kazda) ma mozliwosc wymuszenia trybu 60Hz (USA). Zmienia sie wtedy ilosc generowanych linii na ekranie. W ostatecznym rozrachunku Z80 prawie nic wiecej nie robi poza generowaniem obrazu w trybie SLOW. Czasu uzytecznego procesora pozostawionego dla programisty w trybie 60Hz to jakies 1/7 z calosci (30*2*149 cykli).

Pamietaj, ze w ZX81 to ULA wydaje rozkazy, a Z80 je poslusznie wykonuje. W nagrode za dobrze wykonane zadania Z80 dostaje NOPy.

trojacek:
Doczytałem, że to nie ULA za to odpowiada, ona tylko wystawia stan pinu 22 (na której jest lub nie ma R30) na którąś linię danych czytanych wraz z klawiaturą. Zależnie od odczytanego stanu, procedura w ROM ładuje do akumulatora inną wartość, używaną jako licznik "pustych" linii wyświetlanego obrazu.

KWF:
Tak na porcie 0xFE na D5 jest podawany stan tego przelacznika. Przy jego stanie niskim licznik ma wartosc 31, a przy stanie wysokim 55. W ULA jest wewnetrzny pull-up na tym pinie.

W kazdym razie odeszlismy od tematu o TS1500.

trojacek:
I po przeliczeniu wpisywany do zmiennej MARGIN (16424 MARGIN - Number of blank lines above or below picture: 55 in Britain, 31 in America):


--- Kod: ---02BB - KEYBOARD LD HL,+FFFF
LD BC +FEFE
IN A,(C)
OR +01
02C5 EACH-LINE OR +E0
LD D,A
CPL
CP +01
SBC A,A
OR B
AND L
LD L,A
LD A,H
AND D
LD H,A
RLC B
IN A,(C)
JR C,02C5,EACH-LINE
RRA
RL H
RLA
RLA
RLA
SBC A,A
AND +18
ADD A,+1F
LD (MARGIN),A
RET
--- Koniec kodu ---

Jest ona potem czytana w pętli generowania obrazu.


Znalazłem takie omówienie:
https://www.sinclairzxworld.com/viewtopic.php?t=935

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej