ZX Spectrum > PROGRAMOWANIE

Przerwania - ZX Spectrum 48

<< < (4/5) > >>

Tygrys:
Gryzor, trojacek, Klaud - proszę nie tworzyć offtopów w tym wątku.

SAJ:

--- Cytat: Gryzor w 2021.10.15, 13:19:38 ---jak "zrobic" floating bus na Timexie :-)
Oczywiscie bez zmian sprzetowych.

--- Koniec cytatu ---

Thompson:

--- Cytat: Phonex w 2021.10.14, 21:48:19 ---
Także nie wiem do końca, czemu ten sposób jest odradzany? Może na innyh klonach nie działa...
Albo może chodzi o niezgodność z dodatkowymi ROMami ZX128? Że np. w edytorze Basica nie działało by? A w +3 w czasie operacji dyskowych?

--- Koniec cytatu ---

To wszystko prawda (w sensie, że nie wiem jak z rosjaklonami). Odradzane jest (było) to rozwiązanie z powodu potencjalnej niekompatybilności w przypadku fizycznego podłączenia czegoś do szyny, jakiegoś cudactwa co sieje swoje sygnały. Rzekomo nawet dżojstik Kempston'a miał już wpływać szynę (tu już niech sprzętowcy się wypowiedzą). Czyli wracamy raczej do kwestii kompatybilności sprzętowych.  W przypadku egzekucji kodu na emulatorze powinno być w pełni bezpiecznie (z dokładnością do ROMu), jak i na żywym HW, bez przystawek.
@Phonex pozdro i dzięki za poturbowanie MK 232 (ówczesny element mojej wieży turbo-korbo-stereo texniksa im. Kasprzaka). Przyspieszyłeś erte moje życie dwukrotnie xD.

KWF:

--- Cytat: Thompson w 2021.10.19, 23:35:00 ---[...] Odradzane jest (było) to rozwiązanie z powodu potencjalnej niekompatybilności w przypadku fizycznego podłączenia czegoś do szyny, jakiegoś cudactwa co sieje swoje sygnały. Rzekomo nawet dżojstik Kempston'a miał już wpływać szynę (tu już niech sprzętowcy się wypowiedzą). Czyli wracamy raczej do kwestii kompatybilności sprzętowych. [...]

--- Koniec cytatu ---

Pamiętaj o tym, że jeśli Z80 przyjmie przerwanie na linii /INT uaktywnia linie /M1 i /IORQ, a przy wywołaniu portów we/wy linie /IORQ oraz /RD. Aby każdy interfejs poprawnie odczytywał zamiary procesora i był aktywny wtedy, kiedy potrzeba, musi brać pod uwagę stan /IORQ i /RD. Są interfejsy odczulone na wywołanie przerwań i "milczą" jeśli linia /M1 jest w stanie niskim. ALE w wielu oryginalnych ZX Spectrum 16K/48K miał Z80 od Ziloga z uszkodzoną linią M1 (zapewne sir Sinclair tanio kupił te niepełnowartościowe procesory), więc badanie stanu tej linii nic nie pomoże i może zaszkodzić. Ponad to mnogość różnych interfejsów oraz uproszczenia w ich konstrukcjach mogą powodować kolizje na szynie danych. Nawet taki Kempston może być problematyczny, ponieważ można go zbudować z wykorzystaniem tylko linii /IORQ i A5 w dekoderze adresów (na dwóch diodach i jednym rezystorze) z pominięciem /RD. W takim przypadku niezależnie od tego czy procesor przyjął przerwanie, czy ma zamiar odwołać się do urządzeń we/wy, o ile linia adresowa A5 będzie w stanie niskim, Kempston "rzygnie" danymi i stąd potrzeba zarezerwowania 257 bajtów na obsługę przerwań. A gdzie? Tam gdzie jest wolne miejsce w RAM, albo korzystając z obszaru z 0xFF w ROM, wedle uznania programisty.

Interfejsów zgodnych z Kempstonem powstała niezliczona ilość, a nie wiesz, co ktoś wsadził do jego wnętrza. Odwołujemy się do czasów, kiedy w "krajach wiecznego szczęścia, dobrobytu i realnego socjalizmu" kupienie czegokolwiek było wyzwaniem, a układy scalone nie były łatwo dostępne w sklepach dla hobbystów. Stosowano co było dostępne, kosztem niezgodności z przyjętymi standardami skoro działa. Obecnie, nie mamy takich problemów, ale wykopujemy interfejsy z szaf, strychów, zapomnianych skrytek i chcemy, aby one też działały "jak dawniej", stąd wyzwanie dla programistów z zapewnieniem wstecznej kompatybilności.

Gryzor:
Ha, ha - dobry ten floating bus, ciekawe ile osob kuma dowcip  :)

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej