ZX Spectrum > PROGRAMOWANIE

Ktoś pomoże rozkminić krótki program w formacie TZX lub Z80 dla celów R&D?

<< < (2/3) > >>

matofesi:
No to jeszcze trochę, ale tym razem to już wszystko - dalej nie chce mi się bawić ;)

"Rozkomentowałem" ci podstawowe rzeczy, zmieniłem niektóre etykiety.

Wychodzi mi, że główna część programująca interfejs to procedura l_76FE - pobiera tam dane z tablic l_7A9E i l_7AAF do których zapisuje dane wyskanowane w procedurze l_7675.

Całe programowanie jest dziwaczne - interfejs ma 17 różnych dolnych połówek portów na których słucha. Wysyła się na nie bity, które ma ustawiać/zerować na danych portach oraz (na górnej połówce adresu) górną połówkę adresu klawiatury. Ale nie do końca chce mi się wgryzać w ten kod - on tam robi jakąś kontrolę kolizji tak, żeby poprawnie obsługiwać kilka bitów z tego samego półwiersza klawiatury. Tyle, że w takiej sytuacji moim zdaniem ma za mało adresów, bo "kolizyjnych" kombinacji wyszło mi 20 ;)

Nie wiem co o tym sądzić, ale mam nadzieję, że coś z tego zrozumiesz ;)

damik:
Wow, szybko działasz  :o
Mnie by to pewnie zajęło wiele dni zanim bym to jakoś rozczesał i pokomentował  ???
Dzięki raz jeszcze za update tego kodu.  :)

matofesi:
Dobra... usiłowałem to głębiej zrozumieć, ale nic mi z tego nie wynika ;)

Liczba kombinacji, które tam są robione jest masakryczna. Jedyna sensowna metoda to skopiowanie całej procedury od l_76FE aż do l_7A4C-1 oraz tablic l_7A9E i l_7AAF a następnie ustawienie tej drugiej zgodnie z oczekiwaniami procedury i call do l_76FE. A oczekiwania są takie, że w pierwszym z pary bajtów ma się znaleźć bajt z ustawionym wszystkim oprócz bitu da klawisza, który nas interesuje a w drugim górna połówka adresu klawiatury - np. dla klawisza D będzie to %11111011 czyli $FB i $FD (bo adres do $FDFE). Tablica ma 10 bajtów - po dwa dla każdego kierunku. Jeśli w "bitach" jest FF to jak rozumiem ten kierunek nie jest obsługiwany.

Ale czy to wszystko pomoże ci przerobić interface dla ZX81 to ja nie jestem pewien ;)

damik:
Zobaczymy co z tego wyjdzie, najpierw muszę złożyć prototyp tego urządzenia a potem odgruzować moje stare książki i notatki do ZX81 wtedy pokombinować z uruchamianiem programu na realnym sprzęcie bo żaden emulator nie obsługuje raczej tego hardware.
Trzeba będzie przepisać na nowo interface użytkownika i podpiąć do tego procedury konfigurujące to ustrojstwo z oryginalnego kodu tak jak sugerowałeś.
W każdym razie mam już od czego zacząć bo mniej więcej teraz już wiem co gdzie tam jest w pierwotnym kodzie. :)

ZX Freeq:
Ja ostatnio używałem kombajnika RetroVirtualMachine. Jest tam debugger, pokazuje wszystkie rejestry, pamięć, można skakać co 1 adres, do breakpointów, co jedną klatkę itd.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej