Autor Wątek: AY 3-891x adresy portów  (Przeczytany 23416 razy)

coberr

  • ***
  • Wiadomości: 138
  • Miejsce pobytu:
    Gorzów Wlkp
Odp: AY 3-891x adresy portów
« Odpowiedź #15 dnia: 2016.02.26, 21:49:30 »
a już sobie tak myślalem nad tym - musialbym sie podpiąc  do sekcji generującej sygnał synchronizacji pionowej. Musialbym sprawdzić - jak szeroki jest impuls- ew. dopasować go do wymaganego minimum (maksimum) przez z80. Jest to do zrobienia.

Ew. wykorzystac sygnal wygaszania pionowego i zaadaptowac go do procesora

W dalszej kolejności musiałbym zmodyfikowac sam program monitora zaszytego w EPROM i dodac kilka instrukcji. (takze tych, które przenoszą częśc kodu bezpośrednio do RAM po starcie systemu).

Głowna różnica miedzy spectrum a CObrą jest taka - ze ZX startuje od adresu 0000h. Cobra zaś od C000h. W spectrum napoczatku 16KB to ROM - pozniej 16KB slow RAM zamulane przez ULA i na koncu 32KB "FAST" RAM.

Czyli adresy skoków po przyjeciu INT mamy juz w ROM (chyba ze inny tryb wybrano).

CObra ma inną organizacje pamieci - jest to w sumie czasem dośc wygodne (ze wzgl. na pisane programy - z reguly od adresu 0000h)

w zależnosci od konfiguracji - mamy 16 lub 32 lub 48KB RAM (0...49151)
DALEJ - 2KB EPROM (z możliwoscią  rozszerzenia do 4KB - na płycie "głownej" ) - czyli 49152...51199 - 2KB  (ew. 49152...53247 - 4KB)

Następnie 10KB wolnej przestrzeni ( na ew. zewn. EPROM - 53248 - 63487)
Ja juz u siebie zapakowałem 8KB EEPROM pod adresami 53248...61439.

Ze wzgl. na ten nietypowy obszar trzeba go było troche nietypowo adresować (zamiast liniami A15,A14 - Dekoder adresow siedzi na A15...A12. Zaś linia A12 EEPROM sterowana jest linią A13 systemu :)

Ostatnie 2KB  pamiec wizji  - a odkładniej 768 bajtów z obszaru 63488...65535


Wpadł mi jeszcze jeden pomysł - a mianowicie - "podrasowanie" cobry do poziomu ZX 81.
Oba komputery wykorzystuja ten sam tryb - tekstowy. Nalezałoby dołożyć źródło przerwań, dopisac procedurę, która przenosi dane ekranu dla ZX 81 - do obszaru wizji cobry i na poczatek coś by moze było (pomijam obsługe klawiatury)

W takiej sytuacji byc moze udałoby sie bezpośrednio uruchomic jakiś player z ZX81 :)












« Ostatnia zmiana: 2016.02.26, 22:26:58 wysłana przez coberr »

nietoperz

  • ****
  • Wiadomości: 400
Odp: AY 3-891x adresy portów
« Odpowiedź #16 dnia: 2016.02.27, 22:22:00 »
Mam aplikacje do ładowania plików AY ale pod CP/M, działało to na sprzęcie samoróbce i nie potrzebowało przerwań - po prostu w pętli czekał odliczoną ilośc cykli aby wyszło 20ms i robił call pod int_addr (pole wyciągnięte z pliku ay) - jakoś to grało. Napisane w C (odczyt pliku i parsowanie) oraz asm (pętla). Jak chcesz to moge ci wyslać zródła (wyślij email na pw).

W przypadku cobry i plików ay obawiałbym się, że int_addr wskazywał powyżej 48K. Nie mam teraz jak na szybko odpalić tej aplikacji żeby to sprawdzić.

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: AY 3-891x adresy portów
« Odpowiedź #17 dnia: 2016.03.20, 14:06:03 »
Czy w ZX Spectrum 48 AY jest na tych samych portach bo zamierzam podłączyć go do swojego klona?
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: AY 3-891x adresy portów
« Odpowiedź #18 dnia: 2016.03.20, 14:13:43 »
A standardowe porty dla AY w Spectrum 128 to $BFFD i $FFFD. Poza Unipolbritem/Timexem chyba wszystkie modele Spectrum i jego klony miały/mają AY na tych samych portach, żeby zapewnić zgodność z ZXS 128.

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: AY 3-891x adresy portów
« Odpowiedź #19 dnia: 2016.03.20, 15:00:26 »
Sprawdziłem w emulatorze ZXMAK2 emulację klona "Bajt" i w trybie zgodności z ZX Spectrum AY działa (działa nawet COVOX) :-) więc w realu też chyba powinno działać. W załączniku kawałek wideo z pracy emulatora.
"Byte" Personal Computer
Брестское ПО средств вычислительной техники