Autor Wątek: Rosyjskie klony Spectrum  (Przeczytany 29598 razy)

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Rosyjskie klony Spectrum
« Odpowiedź #30 dnia: 2011.11.28, 15:36:43 »
Jeśli chodzi o timingi poszczególnych modeli to są w pliku timings.c w źródłach libspectrum ;)

/* The frame timings of a machine */
typedef struct timings_t {

  /* Processor speed in Hz */
  libspectrum_dword processor_speed;

  /* AY clock speed in Hz */
  libspectrum_dword ay_speed;

  /* Line timings in tstates */
  libspectrum_word left_border, horizontal_screen, right_border,
                   horizontal_retrace;

  /* Frame timings in lines */
  libspectrum_word top_border, vertical_screen, bottom_border,
                   vertical_retrace;

  /* How long does an interrupt last in tstates */
  libspectrum_word interrupt_length;

  /* How long after interrupt is the top-level pixel of the main screen
     displayed */
  libspectrum_dword top_left_pixel;

} timings_t;

/* The actual data from which the full timings are constructed */
static timings_t base_timings[] = {

                   /* /- Horizonal -\  /-- Vertical -\ */
  /* 48K */
  { 3500000,       0, 24, 128, 24, 48, 48, 192, 48, 24, 32, 14336 },
  /* TC2048 */
  { 3500000,       0, 24, 128, 24, 48, 48, 192, 48, 24, 32, 14321 },
  /* 128K */
  { 3546900, 1773400, 24, 128, 24, 52, 48, 192, 48, 23, 36, 14362 },
  /* +2 */
  { 3546900, 1773400, 24, 128, 24, 52, 48, 192, 48, 23, 36, 14362 },
  /* Pentagon */
  { 3584000, 1792000, 36, 128, 28, 32, 64, 192, 48, 16, 36, 17988 },
  /* +2A */
  { 3546900, 1773400, 24, 128, 24, 52, 48, 192, 48, 23, 32, 14362 },
  /* +3 */
  { 3546900, 1773400, 24, 128, 24, 52, 48, 192, 48, 23, 32, 14362 },
  /* Unknown machine */
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  /* 16K */
  { 3500000,       0, 24, 128, 24, 48, 48, 192, 48, 24, 32, 14336 },
  /* TC2068 */
  { 3500000, 1750000, 24, 128, 24, 48, 48, 192, 48, 24, 32, 14321 },
  /* Scorpion */
  { 3500000, 1750000, 24, 128, 32, 40, 48, 192, 48, 24, 36, 14336 },
  /* +3e */
  { 3546900, 1773400, 24, 128, 24, 52, 48, 192, 48, 23, 32, 14362 },
  /* SE */
  { 3500000, 1750000, 24, 128, 24, 48, 47, 192, 48, 25, 32, 14336 },
  /* TS2068 */
  { 3528000, 1764000, 24, 128, 24, 48, 24, 192, 25, 21, 32,  9169 },
  /* Pentagon 512K */
  { 3584000, 1792000, 36, 128, 28, 32, 64, 192, 48, 16, 36, 17988 },
  /* Pentagon 1024K */
  { 3584000, 1792000, 36, 128, 28, 32, 64, 192, 48, 16, 36, 17988 },
  /* 48K NTSC */
  { 3527500,       0, 24, 128, 24, 48, 24, 192, 25, 23, 32,  8960 },
};


Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Rosyjskie klony Spectrum
« Odpowiedź #31 dnia: 2011.11.28, 16:26:34 »
No cóż... przydało by się to w milszej dla oka formie :p siakaś tabelka or somfink :p
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

trawen

  • *
  • Wiadomości: 39
  • Miejsce pobytu:
    proszę uzupełnić/please update
Odp: Rosyjskie klony Spectrum
« Odpowiedź #32 dnia: 2011.11.28, 19:44:47 »

malowane przeze mnie osobiście na Speccy2010.
Mam nadzieję, że o dodatkowych jasności border-a NIE trzeba wyjaśniać?

Animation?
www.zxpress.ru •www.zxtunes.com

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Rosyjskie klony Spectrum
« Odpowiedź #33 dnia: 2011.11.29, 09:58:42 »
@Pyza Mówisz i masz ;)

Poniższe dane na podstawie źródeł libspectrum, fuse i innych.
Opis do tabelki poniżej.

                                                Line timings            Frame timings                                   Contention
Name            CPU clock       AY clock        LB  HS   RB  HR         TB  VS   BB  VR         IRQ     Top border      pattern
-----------------------------------------------------------------------------------------------------------------------------------
16K             3500000         0               24, 128, 24, 48         48, 192, 48, 24         32      14336           65432100
48K             3500000         0               24, 128, 24, 48         48, 192, 48, 24         32      14336           65432100
48K NTSC        3527500         0               24, 128, 24, 48         24, 192, 25, 23         32      8960            65432100
128K            3546900         1773400         24, 128, 24, 52         48, 192, 48, 23         36      14362           65432100
+2              3546900         1773400         24, 128, 24, 52         48, 192, 48, 23         36      14362           65432100
+2A             3546900         1773400         24, 128, 24, 52         48, 192, 48, 23         32      14362           76543210
+3              3546900         1773400         24, 128, 24, 52         48, 192, 48, 23         32      14362           76543210
+3e             3546900         1773400         24, 128, 24, 52         48, 192, 48, 23         32      14362           76543210
TC2048          3500000         0               24, 128, 24, 48         48, 192, 48, 24         32      14321           65432100
TC2068          3500000         1750000         24, 128, 24, 48         48, 192, 48, 24         32      14321           65432100
TS2068          3528000         1764000         24, 128, 24, 48         24, 192, 25, 21         32      9169            65432100
Pentagon        3584000         1792000         36, 128, 28, 32         64, 192, 48, 16         36      17988           65432100
Pentagon 512K   3584000         1792000         36, 128, 28, 32         64, 192, 48, 16         36      17988           -
Pentagon 1024K  3584000         1792000         36, 128, 28, 32         64, 192, 48, 16         36      17988           -
Scorpion        3500000         1750000         24, 128, 32, 40         48, 192, 48, 24         36      14336           -
SE              3500000         1750000         24, 128, 24, 48         47, 192, 48, 25         32      14336           65432100

Name - nazwa komputera
CPU clock - częstotliwość taktowania procesora w hercach
AY clock - częstotliwość taktowania AY w hercach
Line timings - czasy poszczególnych elementów pojedynczej linii w taktach (t-states)
    LB - left border - lewa część ramki
    HS - horizontal screen - główna część linii
    RB - right border - prawa część ramki
    HR - horizontal retrace - powrót plamki
Frame timings - czasy poszczególnych elementów ramki w liniach
    TB - top border - górna część ramki
    VS - vertical screen - główna część ekranu
    BB - bottom border - dolna część ramki
    VR - vertical retrace - powrót plamki
IRQ - czas trwania przerwania w taktach
Top border - liczba taktów od przerwania po których wyświetlany jest pierwszy piksel ekranu
Contention pattern - kolejność opóźnień sprowadzanych przez ULA przy dostępie do pamięci/portów dzielonych
        Opóżnienia są wprowadzane począwszy od jednego taktu przed początkiem ekranu (Top border) według podanego wzorca.
        Np. dla Spectrum 48 jeśli dostęp do pamięci dzielonej następuje w takcie 14335 to ULA wprowadza dodatkowe 6 taktów
        opóźnienia. :
        numer taktu     wprowadzane opóźnienie
        14335           6
        14336           5
        14337           4
        14338           3
        14339           2
        14340           1
        14341           0
        14342           0
        14343           6
        ...

        Opóźnienia wprowadzane są przy dostępie do pamięci współdzielonej, przy wykonaniu kodu w tej pamięci oraz przy
        dostępie do nieprzystych portów I/O i przy wyliczaniu czasu wykonania kodu należy je uwzględnić w obliczeniach.


Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Rosyjskie klony Spectrum
« Odpowiedź #34 dnia: 2011.11.29, 11:31:55 »
Hyhy, dzięki!
Takie rzeczy to obowiązkowo powinny pojawiać się na stronce :)
Ciekawe z jaką częstotliwością taktowany jest AY w razie przeróbki w 48k (lub podpięty interfejs). Co ciekawe... Pierwsza wersja AY jaką mi wujek zrobił, charakterystycznie charczała w niektórych programach. Zależało to chyba od tego czy były przerwania czy odczekiwał na koniec ramki halt'em. Okazało się potem, że poszedł "na leniucha" i jakiś zegar podpiął bezpośrednio z szyny, czy z procka - nie pamiętam. Dopiero później coś zmienił, że było dobrze.
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Rosyjskie klony Spectrum
« Odpowiedź #35 dnia: 2011.11.29, 11:37:20 »
Wiem, że na 100% pierwsze AYgreki były taktowane inaczej niż w 128 - grały chyba ciut niżej. Biorąc pod uwagę, że AY w 128 jest taktowane mniej więcej połową zegara procesora to w 48 pewnie było podobnie czyli zamiast ~1.77 wyszło by ~1.75.

Tewenin

  • *
  • Wiadomości: 20
Odp: Rosyjskie klony Spectrum
« Odpowiedź #36 dnia: 2011.11.29, 14:41:22 »
Wiem, że na 100% pierwsze AYgreki były taktowane inaczej niż w 128 - grały chyba ciut niżej. Biorąc pod uwagę, że AY w 128 jest taktowane mniej więcej połową zegara procesora to w 48 pewnie było podobnie czyli zamiast ~1.77 wyszło by ~1.75.

Układy AY przłączane jako zewnętrzne moduły były taktowane z odrębnego oscylatora. Głównie przez podział częstotliwości odpowiadających typowym rezonatorom kwarcowym (do systemu PAL) typu 3.5795MHz mod 2, 17.7345MHz mod 10 (czyli tak jak w 128K) itp. (czasami stosowane były również obwody RC).

PS Sygnał zegarowy 3.5MHz (dla Z80) w ZX48k jest kluczowany, z wiadomych względów, przez ULA, ZTCP 128K ma osobne wyjście do taktowania AY.
« Ostatnia zmiana: 2011.11.29, 14:53:26 wysłana przez Tewenin »

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: Rosyjskie klony Spectrum
« Odpowiedź #37 dnia: 2012.01.13, 13:30:59 »
Chyba tylko zdeklarowany xenophobe i mono-zx-teista nie pochyli czoła słysząc SID'a w akcji.

No chyba, że na kultowym C16/C116/C+4, właśnie zamierzam sobie sprawić SIDa dla tych maszyn. :) Haaaaaaaaaaaaaaaa.

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Rosyjskie klony Spectrum
« Odpowiedź #38 dnia: 2013.10.20, 10:06:48 »
Wychodzę z założenia, że tworzenie komputerów o większych możliwościach niż pewne założone wcześniej przez twórców cechy (rozdzielczość, kolory, szybszy procek itp.) jest mało sensowne. To już ze Spectrum ma niewiele wspólnego.
Całkowicie się z tobą zgadzam i też tak uważam :-). Dlatego w tym temacie napisałem, że "Bajt" jest jednym z lepszych klonów ZX Spectrum.

CPU 3.5MHz,  48k RAM, 16k ROM, 15 kolorów, przycisk RESET, port Kempston Joystick, wyjście RGB, MIC, EAR, złącze krawędziowe (nietypowe ale sygnały są zgodne), ekran 256x192, ROM "Bajta" po podmianie w emulatorze ZX Spectrum np. Spectaculator działa bez problemu.

ZX Spectrum nie posiadał portu joysticka ani wyjścia RGB i aby to osiągnąć trzeba było podłączać oddzielne interfejsy do złącza krawędziowego. "Bajt" ma te wyjścia zintegrowane :-)

Po za tym ktoś na forum wspominał iż rosyjskie chipy są lepsze (nie do zdarcia) niż zastosowane w ZX Spectrum np. ULA. Grafika i BEEP jest zgodna z ZX Spectrum więc wszelkie dema stworzone na ZX Spectrum działają poprawnie na "Bajcie". Wrzucałem jakiś czas temu wideo z działania "Bajta" i ktoś po obejrzeniu tego zachwycał się iż na ekranie są równiutkie ramki BORDER.

P.S. Muszę nagrać kilka wideo i wrzucić na forum bo jakoś chyba mało kto zna ten klon ZX Spectrum ;-)
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Rosyjskie klony Spectrum
« Odpowiedź #39 dnia: 2014.03.18, 20:48:33 »
P.S. Muszę nagrać kilka wideo i wrzucić na forum bo jakoś chyba mało kto zna ten klon ZX Spectrum ;-)
Jakby ktoś chciał poznać bliżej komputer 'Bajt' to napisałem artykuł w dziale Hardware
Komputer Bajt

Miłej lektury  ;)
"Byte" Personal Computer
Брестское ПО средств вычислительной техники