Autor Wątek: ZX 128 Spider  (Przeczytany 17856 razy)

Klaud

  • *****
  • Wiadomości: 4803
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: ZX 128 Spider
« Odpowiedź #45 dnia: 2018.10.04, 09:25:37 »
Bez niuchania oscyloskopem raczej nic nie zrobisz. Gdybamy tylko.
KL
-----
R Tape loading error 0:1

trojacek

  • *****
  • Wiadomości: 5454
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #46 dnia: 2018.10.04, 11:05:29 »
No to cała nadzieja w mariansss i martin381 chyba ;)
A z gdybania rodzą się czasami fajne pomysły. No, może nie w tym konkretnym przypadku...

Maryjan

  • *****
  • Wiadomości: 5016
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: ZX 128 Spider
« Odpowiedź #47 dnia: 2018.10.04, 12:12:58 »
Poeksperymentowałem i:

Zmiana 7404 na HC, HCT, F, HCU, nic nie zmienia.
Po wejściu do edytora wersji 128k i wpisaniu polecenia "USR 0", płyta resetuje się i przechodzi do trybu 48k.
Po wpisaniu polecenia "SPECTRUM" - zawiesza się. Po resecie sprzętowym, czasami działa, czasami nie.

Znaczy się, ze te polecenia działają różnie, choć wykonują to samo. Przejście do BASIC-a 48k.
Z tego co pamiętam, "USR 0" - powoduje restart bez aktywnych banków, zaś "SPECTRUM" przechodzi do edytora 48k z aktywnymi bankami.
"... podobno są dwie szkoły, Falenicka i Otwocka."

trojacek

  • *****
  • Wiadomości: 5454
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #48 dnia: 2018.10.04, 12:43:47 »
Wyniki są powtarzalne? USR 0 zawsze działa prawidłowo?

skoti

  • ****
  • Wiadomości: 429
  • Miejsce pobytu:
    Polska
Odp: ZX 128 Spider
« Odpowiedź #49 dnia: 2018.10.04, 12:49:48 »
Wyniki są powtarzalne? USR 0 zawsze działa prawidłowo?

U mnie USR 0 działa zawsze. Dlatego też wcześniej pytałem czy USR 0 przełącza banki ROM-u.
ZX 48k I2, ZX 48 Spider, ZX 128 Spider, ZX Spectrum +2a, HQ 48k, ZX MAX48 I1 i 2, Timex Computer 2048

Maryjan

  • *****
  • Wiadomości: 5016
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: ZX 128 Spider
« Odpowiedź #50 dnia: 2018.10.04, 12:52:13 »
Wyniki są powtarzalne? USR 0 zawsze działa prawidłowo?

Tak.
Za to polecenie "spectrum" - jak chce. Raz tak, a raz nie.
« Ostatnia zmiana: 2018.10.04, 13:02:46 wysłana przez mariansss »
"... podobno są dwie szkoły, Falenicka i Otwocka."

Klaud

  • *****
  • Wiadomości: 4803
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: ZX 128 Spider
« Odpowiedź #51 dnia: 2018.10.04, 12:52:31 »
USR 0 wylacza bankowanie. Na bitach 4 i 5 0x7FFD pojawia sie "1". Bit nr 4, wlacza bank 1 ROMu - ROM 48K, a bit 5 powoduje ignorowanie czegokolwiek pojawiajacego sie na porcie 0x7FFD. Przy resecie (przez przycisk czy odlaczenie zasilania) komputera, 6 bitow (od 0 do 5) na tym porcie jest ustawiane na "0".
« Ostatnia zmiana: 2018.10.04, 13:02:39 wysłana przez Klaud »
KL
-----
R Tape loading error 0:1

trojacek

  • *****
  • Wiadomości: 5454
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #52 dnia: 2018.10.04, 13:14:52 »
Z tego co pamiętam, "USR 0" - powoduje restart bez aktywnych banków, zaś "SPECTRUM" przechodzi do edytora 48k z aktywnymi bankami.

Z tego co widzę, "SPECTRUM" blokuje bankowanie (LD A,$20):
; ----------------
; SPECTRUM Routine
; ----------------
; Return to 48K BASIC Mode. This routine will force caps lock is off.

L1B2B:  CALL L1B53        ; Overwrite 'P' channel data to use the ZX Printer.

        LD   SP,($5C3D)   ; ERR_SP. Purge the stack.
        POP  HL           ; Remove error handler address.

        LD   HL,MAIN_4    ; $1303. The main execution loop within ROM 1.
        PUSH HL           ;

        LD   HL,PRINT_A_1+$0003 ; $0013. Address of a $FF byte within ROM 1, used to generate error report "0 OK".
        PUSH HL           ;
        LD   HL,ERROR_1   ; $0008. The address of the error handler within ROM 1.
        PUSH HL           ;

        LD   A,$20        ; Force 48K mode.
        LD   (BANK_M),A   ; $5B5C.
        JP   SWAP         ; $5B00. Swap to ROM 1 and return via a RST $08 / DEFB $FF.

Natomiast USR 0 jest wywoływaniem interpretera w ROM-ie 1 (48K) i kończy się skokiem pod adres 0 (ale nie pojawia się sygnał /RESET), więc tak na zdrowy rozum nie blokuje to banków.
Jak ktoś ma pod ręką toastracka czy szaraka (lub sprawdzonego klona, np. JS128), to łatwo to przetestować, próbując wysłać coś nierozsądnego pod port #7FFD z Basica 48. Jak się zwiesi, to port odblokowany, jak nie ma reakcji - to port zablokowany.

USR 0 wylacza bankowanie.

Hmm, jeśli to dane empiryczne, to jestem dość mocno zdziwiony, bo zawartość ROM tego nie sugeruje. No ale też nie przeczytałem całych 32KB (ze zrozumieniem), bo to jednak sporo.
« Ostatnia zmiana: 2018.10.04, 13:41:46 wysłana przez trojacek »

Maryjan

  • *****
  • Wiadomości: 5016
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: ZX 128 Spider
« Odpowiedź #53 dnia: 2018.10.04, 14:16:23 »
Jak widać,  źle pamiętałem :)
Po wysłaniu  różnych wartości na port #7FFD w ZX 128 Spider w trybie 48k , zawsze mam komunikat "0 OK,".
Zaś w trybie edytora 128k, wysłanie czegokolwiek na ten port kończy się różnymi efektami, w zależności od stanu "wygrzania" płyty i elementów.
Tzn. jak płyta popracuje dłużej, to wysłanie czegokolwiek na w/w port z edytora 128k kończy się przejściem do BASIC-a 48k.
« Ostatnia zmiana: 2018.10.04, 14:25:49 wysłana przez mariansss »
"... podobno są dwie szkoły, Falenicka i Otwocka."

trojacek

  • *****
  • Wiadomości: 5454
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #54 dnia: 2018.10.04, 15:16:13 »
No nie do końca o to mi chodziło.
Z tego co wiem, są 3 metody wejścia w tryb Basic 48 - wpisując SPECTRUM, wpisując USR 0 albo wybierając Basic 48 z początkowego menu.
Metody te trochę się różnią pod względem wywoływanego kodu - któraś może blokuje port #7FFD, a może któraś go nie blokuje. Nie wiem.
Chodzi o to, by na oryginalnym sprzęcie sprawdzić blokowanie potu w każdej z tych sytuacji, ale już w trybie 48K.
Jeśli wysłanie (z Basica) np. wartości zero kończy się "OK", to znaczy, że port jest zablokowany. Jeśli nastąpi zwis, restart lub jakiś śmietnik na ekranie - to port jest otwarty.
Ja mogłem tylko rzucić na okiem na zawartość ROM-u 0 (128K) i wysnuć na tej podstawie wnioski, które mogą być błędne :)
A kluczem do zrozumienia problemu ze Spiderem jest moim zdaniem m.in. wiedza, co dokładnie się dzieje przy przechodzeniu z trybu 128K do 48K.

Klaud

  • *****
  • Wiadomości: 4803
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: ZX 128 Spider
« Odpowiedź #55 dnia: 2018.10.04, 15:47:53 »
A kluczem do zrozumienia problemu ze Spiderem jest moim zdaniem m.in. wiedza, co dokładnie się dzieje przy przechodzeniu z trybu 128K do 48K.


Oraz czy takie same problemy sa z ZX Maxem 128K. Jesli tak, to wina w Alterze. A jesli nie, to problem z PCB.
KL
-----
R Tape loading error 0:1

trojacek

  • *****
  • Wiadomości: 5454
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #56 dnia: 2018.10.04, 15:51:18 »
Z wcześniejszych wypowiedzi wywnioskowałem, że Max 128 działa poprawnie, co raczej wskazuje na PCB lub zły dobór elementów.

Maryjan

  • *****
  • Wiadomości: 5016
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: ZX 128 Spider
« Odpowiedź #57 dnia: 2018.10.04, 16:03:45 »
O.k. Już "zatrybiłem". Idę wyciągnąć jakąś 128-ke w oryginale.
"... podobno są dwie szkoły, Falenicka i Otwocka."

Phonex

  • *****
  • Wiadomości: 1176
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #58 dnia: 2018.10.04, 16:47:28 »
@trojacek
Dobrze piszesz: USR 0 na 100% nie blokuje banków, dema na 128 czasami się uruchamia przez USR 0.
Tryb 48K naturalnie blokuje przełączanie banków, a komenda SPECTRUM robi praktycznie to samo nie czyszcząc pamięci.

trojacek

  • *****
  • Wiadomości: 5454
  • Miejsce pobytu:
    Warszawa
Odp: ZX 128 Spider
« Odpowiedź #59 dnia: 2018.10.04, 18:50:23 »
Idę wyciągnąć jakąś 128-ke w oryginale.

I jak? Udało Ci się coś przetestować?