forum speccy.pl
Komputery z Z80 => TIMEX => Wątek zaczęty przez: Yolk w 2020.04.16, 21:06:10
-
Cześć.
Mam na stanie świeżo aktywowanego Unipolbrita 2086. Gdzieś w otchłani internetu wyczytałem, że zamontowany na płycie AY jest inaczej adresowany niż "standard" z nowszych Spectrumów. Demo Timmy działa z dźwiękiem, więc układ jest sprawny, ale czy da się go jakoś przerobić, żeby był widoczny pod standardowym adresem? Internet podpowiada, że takie przeróbki ktoś kiedyś uprawiał, ale czy ktoś wie jak to zrobić? Czy lepiej kupić AY montowanego na szynie?
PS 1. Czy ktoś bawił się w rozszerzenie Unipolbrita do 128k? Byłbym wdzięczny za opis.
PS 2. Jako ciekawostka: mam w tym Unipolbricie spolszczony ROM, który zgłasza się jako:
(c) 1982 Sinclair Research Ltd.
(c) 1986 S.P.M. "Spektrum"
Pozdrawiam.
-
Cześć!
O przeróbkach na 128K poczytaj tutaj:
https://www.speccy.pl/forum/index.php?topic=4468
https://www.speccy.pl/forum/index.php?topic=501.0
Tak, AY da się przepiąć na porty używane w Spectrum 128K, trzeba dorobić nowy dekoder adresów. Timmy to jedna z nielicznych produkcji, które używają AY również w wersji timexowej.
Ad PS1: https://www.speccy.pl/forum/index.php?topic=3499
Ad PS2: mógłbyś zgrać i wrzucić na forum ten ROM?
-
Dzięki za info.
Widzę, że zabawa jest nietrywialna. Dam sobie spokój. Lepiej faktycznie upolować jakiegoś 128 +2 lub +3 i zostawić tego Unipolbrita w stanie (powiedzmy) mint. Poprzedni właściciel nablumbrał nieco w połączeniach, wywiercił dziurkę na reset i drugą dziurkę na diodę LED, której ostatecznie nie podłączył :) Ale generalnie sprzęt wygląda dość przyzwoicie. Poniżej zdjęcie.
Co do ROMa, to musiałbym się udać do kolegi, który ma programator i zgrać całość z kostki. W najbliższym czasie może być z tym problem, ale będę pamiętał.
Załączam też przykładowy komunikat błędu po polsku z polską czcionką.
-
Wygląda lepiej, niż każdy mój TC2068 :D
A do zgrania ROM nie musisz wyciągać kości, o ile znasz trochę kod maszynowy. Jak nie, to trudno :)
-
ROM jest w podstawce, wygląda na typowy EPROM z okienkiem. Żaden problem z wyjęciem.
Zastanawiam się, bo może uda mi się to nawet zrobić samemu w domu z użyciem Atari i SIC!'a. Pokombinuję...
-
Ciekawe na jakich kodach są polskie znaki?
-
Aż mnie podkusiliście i wygrzebię swojego UK2086 z kartonu z Timexami.
A'propos ROMów do TC2068/UK2086:
- pear zrobił zestawienie ekranów startowych: https://www.speccy.pl/forum/index.php?topic=2894.msg41550#msg41550
- pliki od matrina381: https://www.speccy.pl/forum/index.php?topic=467.msg5383#msg5383
-
Wracająć do AYka w TS/TC2068 i UK2086 możesz go aktywować programowo na portach 0xF5 i 0xF6.
OUT (0xF5) - wybór rejestru AY-ka z zakresu 0-14
IN (0xF6) - odczyt z wybranego rejestru AY-ka
OUT (0xF6) - zapis do wybranego rejestru
IN (0xF5) - zawsze zwróci wartość 255.
W Timexie rejestr R14 jest używany do obsługi Joysticka. W ZX128K porty AY-ka odsługują MIDI i RS232
W ZX128K wywołanie AY-ka:
LD BC,0xFFFD 01 FD FF
OUT (C),D ED 51
LD B,0xBF 06 BF
OUT (C),E ED 59
W TS/TC2068:
LD BC,0xFFF5 01 F5 FF
OUT (C),D ED 51
LD C,0xF6 0E F6
OUT (C),E ED 59
Kilka POKEów i każda gierka z muzyką AY, powinna nim zagrać zagrać.
(źródło: https://faqwiki.zxnet.co.uk/ oraz "TS2068 Technical Manual")
-
W czasach jak miałem Unipolbrita zrobiłem sobie "cwany" programik - dogrywało się go w pamięć ekranu przed startem właściwej gry/dema, odpalało i on skanował całą pamięć wyszukując patterny odpowiadające znanym odwołaniom do AY w "standardowych" adresach i poprawiał na te właściwe dla Unipolbrita. Programik rósł w miarę pojawiania się nowych gier aż w końcu trafiłem na coś, co używało OUTI albo innej pokręconej konstrukcji i nijak nie mogłem wykombinować sensownej procedury podmiany. I to był ten dzień kiedy pociąłem płytę i zapiąłem "normalny" dekoder adresów ;)
Programik oczywiście się nie zachował tak jak nie zachowała się większość rzeczy, które pisałem w tamtych czasach :(
-
A'propos ROMów do TC2068/UK2086:
- pear zrobił zestawienie ekranów startowych: https://www.speccy.pl/forum/index.php?topic=2894.msg41550#msg41550
Mój Unipolbrit zgłasza się identycznie jak model opisany jako 2386 (dwa dolne screen shoty - pierwszy z wyjętym ROMem z Emulatorem ZX, drugi z ROMem włożonym). Mam port drukarki.
PS. Nie wiem czy to zasługa tych zmienionych ROMów, ale wywala mi się gra Frank-N-Stein w momencie dotknięcia czachy.
-
Zeby zgrac ROM wystarczy jedna komenda w Basicu
-
SAVE "ROM" CODE 0,16384
To miałeś na myśli?
-
Tak zgrasz tylko główny ROM, do EXT ROM trzeba przerzucić bit w porcie 255, a tego nie można zrobić z poziomu Basica.
-
A no tak, tam jest 24KB :-X
-
Moj UK2086 zgłasza się jako Unipolbrit 1.2, nr seryjny mojego egzemplarza: 2884 S+Z. Nie mam oryginalnego emulatora, a samoróbka ma na sobie ROM z Timexa 2048, więc zgłasza się jako "(c) 1982 Sinclair Research Ltd"
W środku jeden ROM jest typowy z innych Timexów 2068, wlutowany w płytę. Drugi ROMem to EPROM M5L27128K. Zrzut EPROMa w załączniku.
-
Na szybko porównałem ten ROM z ROMem z TS2068 i różnią się one w 2 miejscach:
1. adres 0x6D -wartość 0x28 (JR Z, x) z 0x20 (JR NZ, x)
2. zakres od 0x1118 do 0x114F - komunikat startowy
EDYTA:
Ad.1. Jest to poprawka do błędu NMI w ZX Spectrum. Cytując "Komputer Wydanie specjalne - A.Kadlof - Tajniki ZX Spectrum", strona 29:
Błąd NMI. Jest to jeden z najpoważniejszych błędów. Przesta- wienie jednego bitu pod adresem # 006D sprawiło, że Spectrum nie jest w stanie przyjmować tzw. przerwań niemaskowalnych z obsługą przerwania przez procedurę użytkownika. Przerwania takie mogą być bądź ignorowane, bądź restartować system przez skok do adresu 0. Uniemożliwia to kontrolowany restart systemu po jego załamaniu, jak i wiele innych zastosowań komputera. Eliminacja tego błędu wymaga niełatwych i kosztownych przeróbek technicznych.
-
Na tym wsadzie do kartridża mój UNIPOLBRIT 2086 startuje z komunikatem jak napisane w pierwszym poście.
(c) 1982 Sinclair Research Ltd.
(c) 1986 S.P.M. "Spektrum"
-
Dzięki za plik. Spróbuję później.
Różnic pomiędzy tą binarką a ROMem z TC2048 czy emulatorem Spectrum z Portugalii jest sporo. Chyba większość błędów w ROMie ZX Spectrum poprawiono, dodano komunikaty błędów w naszym języku.
-
Tak zgrasz tylko główny ROM, do EXT ROM trzeba przerzucić bit w porcie 255, a tego nie można zrobić z poziomu Basica.
Zajrzałem do dokumentacji Timexa 2068 i komenda
SAVE "ROM" 0, 16384
Nie jest poprawna. Są z nią dwa problemy:
1. zły zakres adresów
2. procedura SAVE w 2068 jest w EXROM, a nie w HOME. Komendą SAVE można zgrać tylko zawartość EXROM. Poprawny jej zapis byłby:
SAVE "EXROM" CODE 0, 8192
O tym co wspominał trojacek, aby dobrać się do zawartości HOME trzeba skopiować jego zawartość do RAM i dopiero potem zrzucić na taśmę.
-
O tym co wspominał trojacek, aby dobrać się do zawartości HOME trzeba skopiować jego zawartość do RAM i dopiero potem zrzucić na taśmę.
No, ja napisałem dokładnie odwrotnie, bo myślałem, że procedura SAVE jest w Home ROM.
Dzięki za sprawdzenie :)
-
O tym co wspominał trojacek, aby dobrać się do zawartości HOME trzeba skopiować jego zawartość do RAM i dopiero potem zrzucić na taśmę.
No, ja napisałem dokładnie odwrotnie, bo myślałem, że procedura SAVE jest w Home ROM.
Dzięki za sprawdzenie :)
That is why LOAD & SAVE traps used on interfaces for 48K do not work with 2068 ROM.
For example, the Timex Interface for 2048 do not work with 2068 ROM.
-
Johnny, what do you mean by "Timex Interface for 2048"?
-
Przypuszczam, że standardowy TI z wsadem z '84 (2068 miał inny wsad z '85)
Co do maski dla portu komunikacyjnego nie jestem pewien (ROM z 2048 który mam na dysku, korzysta z maski $c0)
-
Ale to raczej nie miałoby nic do rzeczy, że w TC2068 procedury LOAD i SAVE są w EXT-ROM?
-
Nie wiem jak tam wygląda obsługa błędów, więc nawet nie próbuję spekulować.
(wiem jedynie, że ROM 2068 ustawia porty FF i F4 na zero a ROM z 2048 nie :) )
-
Z tego co pamiętam, ROM 2048 też zeruje port 255 i tym się różni od ROM-u 48K :)
Ale dyskusja była na temat LOAD i SAVE, odbiegamy od tematu.
-
To ja poproszę do mojej kolekcji Twój ROM do TI 2048, bo 'mój' outuje jedynie na $fe i $ef.
A co do LOAD/SAVE.
<gdybanie>
Jeśli procedura obsługi błędu LOAD/SAVE też jest w EXT-ROM, i jeszcze nie daj Intel pod tym samym adresem (lub go zawiera) to ROM interfejsu się załączy przy zamapowanym EXT, i pójdzie w krzaki bo spodziewa się ZX ROMu...
</gdybanie>
-
ROM TC2048 jest ROMem ZX Spectrum z zerowaniem portu 255 przy starcie. W TC2048 port 244 nie jest używany. W TC2048 procedury LOAD i SAVE są spectrumowe. W „dużych” Timexach ROM jest przepisany i czesc procedur wyładowała w EXROM. Mam gdzieś pełen listing obu ROMów z TS2068.
Z ROMu TC2048:
129A Call 386E
...
386E Out(FF),A
3870 Call 0C0A,PO-MSG
3873 RET
W ROMie Speccy pod tymi adresami siedzi:
Call 0C0A,PO-MSG
...
FF
FF
FF
-
To ja poproszę do mojej kolekcji Twój ROM do TI 2048, bo 'mój' outuje jedynie na $fe i $ef.
W załączeniu.
Jeśli procedura obsługi błędu LOAD/SAVE też jest w EXT-ROM, i jeszcze nie daj Intel pod tym samym adresem (lub go zawiera) to ROM interfejsu się załączy przy zamapowanym EXT, i pójdzie w krzaki bo spodziewa się ZX ROMu...
"Błąd gwiazdki" jest rzucany na etapie parsowania składni instrukcji, to jeszcze nie dotyka kodu procedur LOAD/SAVE. To jest tak istotny element systemu, że musi być w HOME ROM. Inaczej byłoby za dużo przełączania ROM-ów.
-
Procedury w obu ROMach zaczynają się dość podobnie...
EXT:
;
; MDZ80 V0.9.0 Z80 Disassembly of ext.rom
; 2020/05/01 00:35
;
;
ORG $08
;
X0008: ld hl,(X5c5d) ; 0008 2A 5D 5C *]\
X000b: ld (X5c5f),hl ; 000B 22 5F 5C "_\
pop hl ; 000E E1 a
ld l,(hl) ; 000F 6E n
X0010: ld (iy+$00),l ; 0010 FD 75 00 }u.
ld sp,(X5c3d) ; 0013 ED 7B 3D 5C m{=\
X0017: ld hl,X1354 ; 0017 21 54 13 !T.
push hl ; 001A E5 e
...
HOME:
X0008: ld hl,(X5c5d) ; 0008 2A 5D 5C *]\
ld (X5c5f),hl ; 000B 22 5F 5C "_\
X000e: jr X0053 ; 000E 18 43 .C
;
X0053: pop hl ; 0053 E1 a
ld l,(hl) ; 0054 6E n
X0055: ld (iy+$00),l ; 0055 FD 75 00 }u.
ld sp,(X5c3d) ; 0058 ED 7B 3D 5C m{=\
jp X1354 ; 005C C3 54 13 CT.
;
Więc nie dam głowy że jest tak jak mówię, ale twierdzę że pewne prawdopodobieństwo istnieje :)
-
To ja poproszę do mojej kolekcji Twój ROM do TI 2048, bo 'mój' outuje jedynie na $fe i $ef.
W załączeniu.
To jest ROM z komputera.
Ja pisałem o ROM interfejsu :D
-
OK, widać zrozumiałem inaczej :D
-
Ja tez, wiec nie jesteś sam ;)
Listing ROMów TS2068 wrzucałem tu: https://www.speccy.pl/forum/index.php?topic=5346.msg82029#msg82029