Autor Wątek: Nowe ficzery w nowym Divide Plus  (Przeczytany 18549 razy)

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Nowe ficzery w nowym Divide Plus
« dnia: 2011.12.09, 22:53:19 »
Taaa... swego czasu tez gdzieś tam pomyśleli w ten sposób i powstało 5 czy sześć oficjalnych systemów dyskowych oraz kilka homemade'ów (MB-02, ZXVGS i DivIDE) - pewnie jest jeszcze kilka. Problem w tym, że zamiast się skupić na dopracowaniu chociaż jednego (bliski temu był MB-02), to powstawały kolejne i kolejne... Co tym razem?
Wiem, szerzę defetyzm, ale chyba nie ma sensu wypuszczać kolejnego xxx-face'a, gdy jeszcze jest tyle do zrobienia przy poprzednich. Jeżeli już to byłbym za opcją przebudowy ZXVGS. O ile szanuję nakład pracy Yarka jaki w to włożył, to raczej nie rozumiem niektórych zabiegów tam poczynionych (indywidualne przerabianie każdego programu/gry z narzuceniem jednolitego sterowania i inne takie). Trochę też przekombinowana obsługa w niektórych miejscach.
Przede wszystkim należałoby się skupić na obiektach dyskowych, czyli udoskonalona emulacja .TRD, .DSK (FDD3000)... Nie pamiętam na jakim etapie stanęły prace z TAP/TZX.
Najbardziej wspierany i chyba najbardziej popularny jest mimo wszystko DivIDE i to chyba tam najmniej brakuje do pełnego funkcjonowania systemu.
Nowe rozwiązanie, nowy wydatek, kolejny kawałek elektroniki w szafce, żonglowanie interfejsami i niszczenie biednej "krawędziówki", a nic w pełni funkcjonalnego... A to wszystko po to, aby te same stare rzeczy oglądać z coraz to nowych "nośników". Eeee tam... :p Bardziej potrzeba chyba sprzętowców do ożywiania starych sprzętów i programistów (ogólnie twórców) do wspierania tego co mamy.
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

Duddie

  • ****
  • Wiadomości: 402
  • Miejsce pobytu:
    Warszawa
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #1 dnia: 2011.12.10, 09:54:39 »
Pyza, ja noszę się z zamiarem przeprojektowania divIDE Plus, będzie na układzie FPGA, żeby zajmował mniej miejsca. Zostanie sporo wolnego na AY, Kempston Mouse/joystick. Masz jakieś sugestie, propozycje? Co chciałbyś w tym widzieć?
ZX Spectrum 48K, ZX Spectrum+, ZX Spectrum 128K, ZX Spectrum +2/+3, Timex 2048, Unipolbrit 2086, FDD3000, Timex Terminal 3000, PlusD, Multiface 128, Multiface +3, divIDE Plus, IF1+microdrive

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #2 dnia: 2011.12.10, 12:57:32 »
Jak szaleć to szaleć...
Wbudowane NMI z możliwościami Masterface/MacFace/Multiface - głównie wbudowany dobry monitor, zgrywanie snapshota (opcja 48/128), czy wgranych na stałe kilka podstawowych programów (tu kwestia doboru) :D
Najlepsze było rozwiązanie w MacFace, gdzie można było wgrać sobie w pamięć RAM interfejsu dosłownie co się żywnie zachciało. Był monitor, snapshot-saver, a nawet ROM 48, który czasami się przydawał, gdy nie chciało coś odpalić na mojej przerobionej +2. Niegłupie byłoby wbudowanie szybkiego selektora ulubionych programów. Np. po naciśnięciu NMI uruchamiała by się wybieraczka, która z określonego pliku na karcie pobierała by listę must-have programów. Plik ten każdy użytkownik mógłby sobie sam modyfikować. Wiadomo, że na takiej karcie wszystko jest pochowane w różnych katalogach. Tu by było coś w rodzaju skrótów na pulpicie. Odbywało by się to tak. Na dzień dobry, wgrywamy do pamięci interfejsu ten selektor i rezyduje on tam aż do odłączenia zasilania (chyba, że podtrzymanie bateryjką wchodzi w grę) - reset oczywiście nic nie czyści. Po resecie klik w NMI i mamy prostą wybieraczkę, która po Enterze automatycznie ładuje dany program. Bez latania po katalogach i wpisywania czegokolwiek.
Zagłębiłem się teraz bardziej w kwestie programowe niż sprzętowe, ale niestety w ten sposób mogę cokolwiek doradzić, bo takie FPGA (cokolwiek to jest) kojarzy mi się wyłącznie z kolejnym slotem pod procesor dla PC :p

Jak się będzie zachowywać wbudowany w DivIDE AY, gdy już mamy go wewnętrznie? Rozumiem, że akurat ten układ będzie na podstawce i wyjęcie go (nie instalowanie na płytce) po prostu będzie traktowane jakby go tam wcale nie było.
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

Duddie

  • ****
  • Wiadomości: 402
  • Miejsce pobytu:
    Warszawa
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #3 dnia: 2011.12.10, 14:18:14 »
No akurat wymyśliłeś kwestie programowe bardziej. Ja miałem na myśli co ze sprzętu i jak. Reszta będzie należeć do autorów firmware. AY będzie opcjonalny, wyłączany. A FPGA to układ o dużej skali integracji zastępujący wszystkie (no, prawie) inne.
ZX Spectrum 48K, ZX Spectrum+, ZX Spectrum 128K, ZX Spectrum +2/+3, Timex 2048, Unipolbrit 2086, FDD3000, Timex Terminal 3000, PlusD, Multiface 128, Multiface +3, divIDE Plus, IF1+microdrive

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #4 dnia: 2011.12.10, 15:03:11 »
Jako sprzęt to chyba nic więcej nie jest potrzebne (choć sama przystawka wykorzystująca NMI też jest przecież sprzętem). Myślę, że standardy utworzyły się same przez te wszystkie lata. Nie ma co na siłę wymyślać.
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: Nowe ficzery w nowym Divide Plus
« Odpowiedź #5 dnia: 2011.12.11, 02:31:01 »
@Pyza Większość tego, co napisałeś powinno się dać - jak pisze Duddi - zrobić software'owo na istniejącym DivIDE plus. Nie jestem przekonany, czy cokolwiek w tej kwestii wymaga zmian sprzętowych.

To czego mi brakuje to fanaberia - możliwość zakładania sprzętowych haków na konkretny adres/warunek (choć sam adres powinien wystarczyć), czyli sprzętowy break point.

No i oczywiście jakaś dokumentacja, bo to, co dostałem z moim do sensownego programowania się nie nadaje - nadaje się co najwyżej jako quick start dla normalego usera.

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #6 dnia: 2011.12.11, 12:28:32 »
To czego mi brakuje to fanaberia - możliwość zakładania sprzętowych haków na konkretny adres/warunek (choć sam adres powinien wystarczyć), czyli sprzętowy break point.

Czyli wspomniany NMI z wbudowanym monitorem/debugerem w pamięci zewnętrznej (poza ZX). Nie wiem, czy miałeś styczność z takim MacFace2, ale tam właśnie to było. Przyciskiem zatrzymywało się program, wyskakiwał monitor, wszystkie rejestry itp. Pod konkretnym adresem można było wstawić pułapkę i wrócić do programu, a on po napotkaniu pułapki lądował z powrotem w monitorze. Rzecz okrutnie przydatna przy programowaniu.
Tak jak wspomniałem wcześniej - nic więcej nie potrzeba: Kemp mouse/joy, AY, NMI z własną pamięcią (w MacFace było to 16kB podpinanych w miejsce ROM - ciekawe, czy można jakoś podpiąć tam więcej i upchać więcej oprogramowania).
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

Duddie

  • ****
  • Wiadomości: 402
  • Miejsce pobytu:
    Warszawa
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #7 dnia: 2011.12.11, 12:38:09 »
Pyza, masz jakąś dokumentację do tego Macface 2? Ja z tym się nigdy nie zetknąłem. Można na pewno zrobić coś takiego. jesteś w stanie otworzyć i zrobić fotkę środka? Interesuje mnie jakie układy tam siedzą.
ZX Spectrum 48K, ZX Spectrum+, ZX Spectrum 128K, ZX Spectrum +2/+3, Timex 2048, Unipolbrit 2086, FDD3000, Timex Terminal 3000, PlusD, Multiface 128, Multiface +3, divIDE Plus, IF1+microdrive

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #8 dnia: 2011.12.11, 15:51:52 »
W sumie, to mamy tu na forum autora :D Dawniej AMST - tu na forum - thom (Artur Muszyński)
Strona autora, gdzie jest zdjęcie i nawet odręczny schemat MacFace2 :)
http://www.union.com.pl/artur/index.php
Chyba najlepszym rozwiązaniem będzie kontakt poprzez email :)
Oczywiście foty mogę walnąć jak mimo wszystko będą konieczne (muszę przeszperać szafę).
Wszelkie inne tech-info również najlepiej uzyskać u autora. Myślę, że coś tam jeszcze pamięta...

Dodatkowo przypomniałem sobie, że u Yarka sporo tego jest:
http://8bit.yarek.pl/interface/zx.macface/index.html
« Ostatnia zmiana: 2011.12.11, 15:59:23 wysłana przez Pyza^Illusion »
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

Duddie

  • ****
  • Wiadomości: 402
  • Miejsce pobytu:
    Warszawa
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #9 dnia: 2011.12.11, 16:14:53 »
Schemat słabo czytelny, ale da się coś z tym zrobić. Niestety, ze strony Yarka nie można pobrać zawartości ROM - niezbędnej do jego stworzenia. Tam też widzę, że było to przeniesione do Eagle'a i te pliki byłyby najbardziej przydatne. Ale popracuję nad tym.
ZX Spectrum 48K, ZX Spectrum+, ZX Spectrum 128K, ZX Spectrum +2/+3, Timex 2048, Unipolbrit 2086, FDD3000, Timex Terminal 3000, PlusD, Multiface 128, Multiface +3, divIDE Plus, IF1+microdrive

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #10 dnia: 2011.12.11, 18:02:00 »
@Pyza Nie. Monitor pod przyciskiem to jest tylko jedna rzecz. Sprzętowy brak point to coś innego. Chodzi mi o to, że po wejściu do monitora po wciśnięciu przycisku chciałbym mieć możliwość ustawienia adresu (a raczej przynajmniej kilku adresów) dla których sprzęt włączałby monitorowanie i - po wyjściu z monitora z powrotem do programu pilnował czy nie następuje na przykład skok pod zadany adres (czy ogólnie - pobranie instrukcji z tego adresu) i jeśli tak to wtedy automatycznie generował NMI najlepiej w biegu podmieniając RAM tak, żeby NMI nie popsuło stosu itp.

Softwareowa pułapka jest fajna, ale ma to do siebie, że żeby ją ustawić musisz zmodyfikować kod, a to się da wykryć programowo. Pułapka sprzętowa nie modyfikuje pamięci stąd byłaby dużo lepszym rozwiązaniem. A poza tym nie da się ustawić softwareowej pułapki na kod, który jest generowany "w locie" - a sprzętową i owszem :)

Gryzor

  • *****
  • Wiadomości: 2009
  • Miejsce pobytu:
    Warszawa
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #11 dnia: 2011.12.11, 20:54:48 »
Z ciekawosci - po co Wam to ? Przeciez na emulatorze mozna wszystko.
Akurat programowanie obecnie bezposrednio na zx wydaje mi sie przegieciem.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #12 dnia: 2011.12.11, 21:00:38 »
A to nie jest pytanie "po co" tylko "co byście chcieli". Nie ważne, że może nigdy tego nie użyję - ważne, że byłaby taka potencjalna możliwość.

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Nowe ficzery w nowym Divide Plus
« Odpowiedź #13 dnia: 2011.12.11, 21:23:48 »
@Duddie
Jako takiego ROMu MacFace nie posiada (!?!). Jego ROM to to, co do niego wgrasz przed jego użyciem - czyli de facto - RAM, z możliwością podpięcia go jako ROM (nie wiem czy zawsze od tego samego adresu, czy pod dowolną stronę/bank).
Wyglądało to tak, że jak startujesz na czysto, to przycisk NMI działa jako zwyczajny reset. Można wgrać ROM 48 i wtedy po resecie, niezależnie od modelu ZX, pojawia się słynne @1982 Sinclair Research... Odpinany jest zatem wbudowany w komputer ROM i zastępowany tym z MacFace'a. Zablokowane są również banki itd. Jednym słowem mamy oryginalnego gumiaka (multikolory jednak działają jak na natywnym sprzęcie - to chyba oczywiste). Pokusiłbym się o stwierdzenie, że jak wgramy ROM1 z BASIC'iem 128, to odpaliłby się na zwykłym 48kB (chyba, że przy starcie sprawdza banki itp.) - funkcje BASIC'owe AY powinny działać, choć z jasnych przyczyn nie pójdą funkcje przełączania banków.

@matofesi
Niemal wszystko to masz. Nie wiem dokładnie jak działa przerzucanie pamięci pomiędzy przystawką a ZX. W każdym razie po wejściu w monitor nie uciekał nawet bajcik z zawartości pamięci, nie niszczy ekranu itd. Tzn. w miejscu, gdzie chciałeś pułapkę te 3 bajty zostały zastąpione JP (albo CALL - nie pamiętam) NN, ale po wejściu w monitor automatycznie była przywracana poprzednia zawartość. Rozumiem to tak, że w momencie postawienia pułapki, owe 3 bajty chowane były w pamięci przystawki, a gdy pułapka automatycznie wywołała NMI, zostawały one przywracane z powrotem. Pułapek można było zakładać kilka. Co ciekawe, będąc w monitorze, pod którymś tam przyciskiem mieliśmy możliwość podejrzenia aktualnego stanu ekranu również bez żadnego uszczerbku.
Podsumowując działało to tak (w przypadku monitora), jakby przy wywołaniu NMI cały bank od 16384 do 32767 został wymieniany z zawartością MacFace (albo wpinany w to miejsce), a po opuszczeniu monitora, wszystko wracało do normy (z wyjątkiem założonych pułapek, które przywracane były dopiero po ich samoczynnym wywołaniu).
Nie bardzo sobie wyobrażam, w którym momencie pułapka sprzętowa miałaby wywołać NMI w przypadku nadpisania przez program miejsca jej zadziałania. Reagowałaby na próbę nadpisania tego konkretnego adresu? Możesz to jakoś dokładniej wyjaśnić?

@Gryzor
Hmmm... Generalnie, to po co nam w ogóle oryginalny sprzęt? Przecież wszystko to można uzyskać pod emulatorami, nie trzeba kupować DivIDE, męczyć się z naprawami, przeróbkami, podpinać kabli pod jakiś stary TV i rzucać mięsem, że akurat pod mój model nie zrobili dobrze efektu z multikolorem. Grafika, muzyka czy programowanie jest łatwiejsze i przyjemniejsze na PC. Nawet na demoparty można odpalać produkcje z PC... Amigowcy, Atarowcy czy posiadacze C64 w sumie też tak mogą robić. Po co więc ciągną się z tym wszystkim sprzętem po kraju, klnąc przy rozkładaniu sprzętu, że brak gniazdek, a akurat zapomniał zabrać przedłużacza/rozdzielacza? Jasnej odpowiedzi nie ma, to się po prostu czuje. Zabawa z realnym sprzętem przywraca dawne wspomnienia i daje więcej radości :D
« Ostatnia zmiana: 2011.12.11, 21:26:53 wysłana przez Pyza^Illusion »
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: Nowe ficzery w nowym Divide Plus
« Odpowiedź #14 dnia: 2011.12.11, 23:35:18 »
Jak to jak? Układ monitorujący pułapkę sprawdza stan linii - jeśli następuje odwołanie do konkretnego (ustawionego w monitorze adresu) i równocześnie ustawione jest MREQ, RD i M1 to oznacza, że procesor pobiera rozkaz z zadanego adresu i tylko wtedy sprzęt wywołuje NMI podmieniając wcześniej pamięć. Zwykły odczyt pamięci nie ustawia M1, zapis nie ustawia RD - wykonanie kodu daje się rozpoznać jednoznacznie co oznacza, że jeśli na przykład program generuje jakieś procedury i wstawia je zawsze w to samo miejsce ustawienie pułapki na ten obszar wywoływałoby ją tylko w momencie właściwego skoku i zawsze z załadowanym generowanym kodem.

To, że da się to zrobić podmieniając kod i monitorując odczyty z pamięci a w stosownym momencie (przy próbie odczytu bez M1) podkładając w jakiś sposób (tu akurat nie jestem pewien jak miałoby się to odbywać - na złączu krawędziowym nie ma sygnału pozwalającego na odpięcie wbudowanego RAMu i włączenie w jego miejsce zewnętrznej pamięci) zapamiętaną wcześniej zawartość pułapki. Nie jestem pewien, czy rozwiązanie takie będzie mniej skomplikowane niż to, co opisałem wcześniej.