Autor Wątek: Timingi ULA 48, 128, Timex  (Przeczytany 4016 razy)

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Timingi ULA 48, 128, Timex
« dnia: 2013.12.30, 17:03:46 »
Hello wiara,
Czy jest gdzieś zebrane do kupy kompendium wiedzy na temat różnic w timingach wyświetlania obrazu przez poszczególne maszyny? Znalazłem detale na WOS odnośnie 48-mki, ale to akurat łatwo znaleźć. Bardziej mnie interesuje porównanie z innymi modelami.
Z góry dziękuję :)

sect0r

  • *****
  • Wiadomości: 698
  • Miejsce pobytu:
    Oltedal/NO
  • speccyholic
Odp: Timingi ULA 48, 128, Timex
« Odpowiedź #1 dnia: 2013.12.30, 18:27:46 »
Szarak # DivIDE+ # MasakratorFM DeluXe by Zaxon

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Timingi ULA 48, 128, Timex
« Odpowiedź #2 dnia: 2013.12.30, 18:30:22 »
Dokładnie to, choć w dość zawiłej formie :)
Dzięki!
Tylko naprawdę ciężko to wyszukać...

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Timingi ULA 48, 128, Timex
« Odpowiedź #3 dnia: 2013.12.30, 19:01:22 »
To może ktoś się pokusi o zrobienie "testera" który sprawdzi z jaką maszyną mamy do czynienia?
Test miałby polegać na sprawdzeniu banków (wolne/szybkie) oraz długości ramki, w efekcie czego dostajemy informację typu:

1 - 128k
2 - banki parzyste szybkie / nieparzyste wolne
3 - ilość taktów na ramkę = xxxxx
4 - prawdopodobnie Pentagon 128

albo

1 - 48k
2 - brak
3 - ilość taktów na ramkę = xxxxx
4 - prawdopodobnie ZX Spectrum 48/+

Nie wiem czy jest do sprawdzenia czy komputer posiada 2 ekrany. Pamiętam natomiast, że nie da się chyba wykryć obecności AY.

Kawałek kodu najlepiej jakby zwracał w jakimś bajcie (rejestrze) typ kompa, który można by sobie dopasować wg tabelki.

1 - ZX 48/+
2 - ZX 48/+ przerobiony na 128k
3 - ZX Spectrum 128k/+2
4 - ZX Spectrum 128k+2A/+3
5 - Timex TC2048
6 - Timex TC2128
7 - Pentagon 128
8 - ZS Scorion
itd.

Program niewątpliwie pomógł by w dostosowaniu swoich produkcji np. aby na każdym kompie efekt multikoloru czy na ramce wyświetlał się prawidłowo. Mam niby "gotowe rozwiązanie" napisane/dostosowane przez Yarka Adamskiego, ale nijak nie wiem o co tam chodzi i gdzie dostaję "odpowiedź" :p

Oto źródło (mam nadzieję, że mogę "zacytować").

BankTest:*L+
*M+
;banktest

*I ULATEST.GI

start EQU #8000
topbank EQU #D000
;#C000 nie mo§e byŤ, bo si‘ strony w banku 2 pokrywaj†

DEFB #03
DEFW bend-bbeg,start,#FFFF,#FFFF

ORG start
bbeg EQU $

JP ulaC
LD HL,goesup
LD DE,topbank
LD BC,ulaDe-ulaD
LDIR
JP topbank
ulaC ULATEST

DEFM "KONIEC"

goesup EQU $

ORG topbank

ulaD ULATEST
ulaDe EQU $

ORG $-topbank+goesup


bend EQU $

ULAtest:
*L+
;ULA type test for ZXVGS purposes
;Last modification: 2003-04-22 by Yarek
*L-
; doesn't recognize ZX48, TC2048 and Scorpion; also ZX128, +3
; checking for slow banks speed?
;030422 based on Float Spy (C) 2002 Ramsoft

;returns the same values as Float Spy by Ramsoft
;macro because ULA can be tested at #8000 and #C000 to detect slow banks
uttT68 EQU #0CB9 ;3257 TC2068 60Hz
utt48 EQU #0F27 ;3879 ZX Spectrum 48kB, TC2048, Scorpion slow
utt128 EQU #0F60 ;3936 ZX Spectrum 128kB, +2, +3
uttPen EQU #0F8B ;3979 Pentagon
uttSam EQU #15BC ;5564 Sam Coupé
uttSco EQU #1E52 ;7762 Scorpion in fast mode



ULATEST MACRO
;some math
uth@$YM EQU $ .AND. #FF00 ;current page
utt@$YM EQU uth@$YM+#0100 ;next page
uti@$YM EQU uth@$YM .SHR. 8 ;byte written to jump table
;setup
ut0@$YM DI
LD HL,utj@$YM
LD (utt@$YM+#00FF),HL ;write address to IM2 table
LD HL,ut1@$YM
LD (utj@$YM+1),HL ;set jump to first service
LD A,utt@$YM .SHR. 8
LD I,A
IM 2
LD BC,#0000 ;counter starts from 0
EI
HALT
INC BC
JR $-1 ;one label less
;jump to correct service
utj@$YM JP ut1@$YM
;first service sets the second service
;3 times INC BC is before EI because longer /INT in Sam
ut1@$YM LD HL,ut2@$YM
LD (utj@$YM+1),HL
INC BC
JR $+2
INC BC
JR $+2
INC BC
JR $+2
EI
RET
;second service stops counter
ut2@$YM POP HL
IM 1
EI
RET
ENDM
;
; End of file ULATEST.GI
;

W moim przypadku problemem jest niezrozumienie samego tekstu pod ów kompiler, który to niby rozumie. Ja operuję jeszcze na przyzwyczajeniach z GENS czy Prometheus i niektórych komend w ogóle nie łapię. Może ktoś pomoże?
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Timingi ULA 48, 128, Timex
« Odpowiedź #4 dnia: 2013.12.30, 19:09:09 »
Nie wiem czy jest do sprawdzenia czy komputer posiada 2 ekrany. Pamiętam natomiast, że nie da się chyba wykryć obecności AY.

???
Przecież możesz czytać rejestry AY.

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Timingi ULA 48, 128, Timex
« Odpowiedź #5 dnia: 2013.12.30, 19:15:10 »
Hmmm, to może coś poprzestawiałem w tej swojej łepetynie :)
No to sprawdzanie obecności AY też można dodać.

ps. W sumie fakt, Krunel chyba sam rozpoznaje co ma podłączone (SAA).
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Timingi ULA 48, 128, Timex
« Odpowiedź #6 dnia: 2013.12.30, 19:33:18 »
Chciałem sprostować. Krunel wykrywa obecność AY, za to przyjmuje obecność SAA, gdyż ten ma tylko rejestry jedynie do zapisu.