Komputery z Z80 > AMSTRAD

Dktronic 64 reverse engineering ;)

(1/5) > >>

zaxon:
Ot szukalem jakichkolwiek info o tym fejsie. Cos tam jest na CPC Wiki ale schematu brak, wsadu do PAL tez. Udalo mi sie ostatnio go kupic w wersji SMD na 2 kosciach 4464 i tak sobie go reversuje powoli .

1.Schemat mam zrysowany ale jeszcze musze nad nim popracowac bo poki co wstyd ludziom pokazac ;)

2. PAL, Dzieki pomocy Marka Smitha mam skopiowany i zrobiony wsad do GAL16v8,  orginal byl zabezpieczony ale  brute force zadzialalo  :D. (Tak Pear, bylem kowalem ,heheh) . W zasadzie to go nawet mam w 2 wersjach. Dziala wszystko co testowalem, oprocz Batman Forever. Tez temat do dopracowania.

3. Plytka prototypowa: wymiary mojego orginalu SMD , uklad elementow podobnie tyle ze zrobilem  w przewlekanym bo pewnie sie gdzies machnalem i latwiej bedzie drutowac przy uruchomieniu.

Dr Piotr:
Ten pal to odpowiednik pala z 6128 do mapowania ramu. Gdzies chyba mialem do niego oryginalny kod...

Na tym rozszerzeniu niektore rzeczy moga nie chodzic ze wzgledu na korzystanie z trybu c3 dodatkowej pamieci - mapowania banku pod adres #c000 i jednoczesnie wewnetrznej pamieci od #c000 pod #4000. Z tego, co pamietam to jest najwieksze wyzwanie na 464, nawet dktronics nie dal w pelni sobie z tym rady :)

zaxon:
Tak , odpowiednik ale nie zamienny niestety. Orginalny kod do interfejsu czy do 6128? Bo ten co go kiedys zdumpowal z 6128 Porky i lezy na CPC Wiki dziala swietnie dopoki sie nie podlaczy karty X-mem, wtedy sa artefakty. Z orginalnym HAL X-mem dziala ok.

Anyway, 2 orginaly i jedna podroba ;)


Dr Piotr:
Mam zrzut ze 6128 ale juz poprawiony.

A14OUT     = !(  !A14
             #   !A15 & !Q0 & Q2 );

A15OUT     = !(  !A15 & !A14
             #   !A15 & !Q1
             #   !A15 & !Q0 & !Q2 );

Q0     = (  D7ANDD6 & nRESET & D0 & !A15 & !nIOWR
         #   !D7ANDD6 & nRESET & Q0
         #   nRESET & A15 & Q0
         #   nRESET & nIOWR & Q0 );

Q1     = (  D7ANDD6 & nRESET & D1 & !A15 & !nIOWR
         #   !D7ANDD6 & nRESET & Q1
         #   nRESET & A15 & Q1
         #   nRESET & nIOWR & Q1 );

Q2     = (  D7ANDD6 & nRESET & D2 & !A15 & !nIOWR
         #   !D7ANDD6 & nRESET & Q2
         #   nRESET & A15 & Q2
         #   nRESET & nIOWR & Q2 );

nCAS0     = (  nCAS
            #   RAMDIS & !nCPU & nCAS0
            #   !A15 & A14 & !nCPU & Q2 & nCAS0
            #   A15 & A14 & !nCPU & Q0 & !Q2 & nCAS0
            #   !nCPU & !Q0 & Q1 & !Q2 & nCAS0
            #   !nCAS1 );

nCAS1     = !(  !RAMDIS & !nCAS & !A15 & A14 & !nCPU & Q2 & nCAS0
            #   !RAMDIS & !nCAS & A15 & A14 & !nCPU & Q0 & !Q2 & nCAS0
            #   !RAMDIS & !nCAS & !nCPU & !Q0 & Q1 & !Q2 & nCAS0
            #   !nCAS & !A15 & A14 & Q2 & nCAS0 & !nCAS1
            #   !nCAS & A15 & A14 & Q0 & !Q2 & nCAS0 & !nCAS1
            #   !nCAS & !Q0 & Q1 & !Q2 & nCAS0 & !nCAS1 );

Zreszta jest juz do sciagniecia z http://www.cpcwiki.eu/index.php/PAL16L8
Q1,Q2 tworza numer banku pamieci, wyliczany w momencie gdy jest robiony out #7f00, cx (to ten kawalek D7ANDD6 & nIOWR & !A15). Q3 to tryb przelaczania bankow, gdy=1 banki mapowane sa pod #4000 (A14=1)

kod do interfejsu pewnie bedzie troche inny, poniewaz do A15OUT i A14OUT musi dojsc jeszcze sterowanie wymuszeniem MREQ dla trybow c4-c7 i A15 dla trybu c3, pewnie cos w stylu MREQHIGH=(A14OUT # A15OUT)

zaxon:
No i gotowe,





Teraz kolej na wersje 256k  ;D

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej