Autor Wątek: Dla początkujących i powracających  (Przeczytany 28073 razy)

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Dla początkujących i powracających
« Odpowiedź #15 dnia: 2012.02.26, 17:03:40 »
Tak na szybko bez odpalania kompa - na WoS w kategorii dokumentacja jast ZX-Spectrum 128 disassembly. Na stronie można ściągnąć pliki z ROMami w tym ROM 0 a w nim na początku jest m.in. lista zmiennych systemowych.

DDX

  • ***
  • Wiadomości: 185
  • Miejsce pobytu:
    proszę uzupełnić/please update
Odp: Dla początkujących i powracających
« Odpowiedź #16 dnia: 2012.02.26, 17:04:34 »
Jest na WOSie (tutaj) "skan" z instrukcji, ale o zmiennych systemowych tam nic nie widze.

[EDIT]: To powyzej oczywiscie mialo byc odnosnie ostatniego postu Abrimala i instrukcji do ZX128... ale widze, ze w miedzyczasie pojawil sie juz post Matofesiego z informacja gdzie na WOSie znalezc info o zmiennych systemowych.
« Ostatnia zmiana: 2012.02.26, 17:14:53 wysłana przez DDX »
pozdrawiam
DDX

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Dla początkujących i powracających
« Odpowiedź #17 dnia: 2012.02.29, 02:58:37 »
Miało być dla początkujących i zapominalskich  ;) a my tu o assemblerze i organizacji pamięci :P.
Jeśli już jesteśmy tutaj, zawartość jakich rejestrów jest zwracana instrukcją LET a=USR nn
AY Music, ULA plus.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Dla początkujących i powracających
« Odpowiedź #18 dnia: 2012.02.29, 07:11:07 »
Od zawsze BC.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Dla początkujących i powracających
« Odpowiedź #19 dnia: 2012.03.30, 03:34:45 »
Jaki adres z ROM trzeba wywołać (chyba któryś RST?) aby wyświetlić znak na ekranie?
I jakie parametry wejściowe w rejestrach trzeba podać?

Cytuj

Co powoduje zmienna 23739 - znalazłem to w loaderze dla gry sterowanej myszą.
W mądrej książce jest tylko coś takiego - zmienna SBRT 23737 (10 bajtów) podprogram wywołania procedury z ROM:
LD HL,nn : CALL uu : LD (23738), HL : RET - to jest jasne, lecz
co to daje w praktyce, jeśli z loadera nie ma żadnego wywołania USR, zmieniany jest tylko 3 bajt zmiennej, czyli rejestr H.

23739 to zmienna (a właściwie kawałek kodu) używana przez ZX Interface 1. Nie wiem do czego miałby tej zmiennej używać loader - używa jej Shadow ROM Interface 1 do wywoływania procedur z ROMu systemowego - ustawia w tym obszarze adres procedury, która ma zostać wywołana (z Shadow ROM wykonywane jest to przez RST 16; DW adres_procedury), na stosie ustawia jako adres powrotu #0008 (adres procedury obsługi błędów i równocześnie hook aktywujący Shadow ROM) na koniec na stos trafia adres zmiennej SBRT i wołana jest procedura wyłączająca Shadow ROM, co w efekcie powoduje wykonanie SBRT, skok do ROMu systemowego a po powrocie z niego skok pod adres #0008 z ustawionym znacznikiem "wykonała się procedura z ROMu systemowego".
Załadowanie pod adres wartości 111 wyłącza wyświetlanie tekstu na ekranie, 244 włącza z powrotem.
Jest to często używane w loaderach, aby po załadowaniu screenu nie wyświetlały się nazwy kolejnych bloków.
AY Music, ULA plus.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Dla początkujących i powracających
« Odpowiedź #20 dnia: 2012.03.30, 08:37:46 »
Jaki adres z ROM trzeba wywołać (chyba któryś RST?) aby wyświetlić znak na ekranie?
I jakie parametry wejściowe w rejestrach trzeba podać?

RST 16 z kodem znaku w A. Znak jest drukowany zgodnie z pozycją ze zmiennych systemowych, ale jakbyś chciał na przykład przestawić tę pozycję "kulturalnie" to możesz to zrobić wywołując RST 16 trzy razy pod rząd podając najpierw 22 a potem wiersz i kolumnę jako znaki - RST 16 zapamiętuje stan drukowania i przy wieloznakowych ciągach (AT, INK, PAPER itp.) kolejne wywołania poprawnie dodają kody kontrolne.

Cytuj
Załadowanie pod adres wartości 111 wyłącza wyświetlanie tekstu na ekranie, 244 włącza z powrotem.
Jest to często używane w loaderach, aby po załadowaniu screenu nie wyświetlały się nazwy kolejnych bloków.

I stand corrected... Zapomniałem, że między zmiennymi systemowymi a obszarem BASICa jest jeszcze obszar opisu kanałów. 23739 to młodszy bajt adresu obsługi kanału S czyli drukowania na ekranie. Domyślnie jest tam adres procedury PRINT-OUT $09F4. Zapisanie tam 111 zmienia ten adres na $096F - to jest końcówka jednej z procedur obsługi taśmy a konkretnie adres rozkazu RET, co faktycznie powoduje, że kolejne odwołania do kanału S nic nie drukują. 244 to oczywiście $F4 czyli zmiana adresu na domyślny.

Pakowanie jednak czegoś pod ten adres na ślepo może się okazać ryzykowne, bo podłączenie np. ZX Interface 1 czy interface'u BETA przesuwa w górę BASIC i (na pewno w wypadku Interface 1, nie jestem pewien co do BETY) obszar opisu kanałów co oczywiście powoduje, że 23739 zaczyna przechowywać inne dane niż spodziewa się ich loader.


cyborg50

  • **
  • Wiadomości: 90
  • Miejsce pobytu:
    Warszawa
Odp: Dla początkujących i powracających
« Odpowiedź #21 dnia: 2012.04.03, 23:29:31 »
Trochę z innej bajki. Ale jako że temat dla powracających to ja tu:
Jaki jest optymalny zestaw dla powracającego do zabawy z zx. Moje doświadczenia kończą się na zx48, w moich czasach był tylko jeszcze +. Coś na czym można by poodpalać jakieś gierki, demka, powciągać się w "nowoczesną" technikę (jakieś tos-y albo co?), jakaś obsługa cf - sam nie wiem co jeszcze?
Pytanie pomocnicze: czy zx 128 - taki jak zx + jeszcze sinclaira może to samo co późniejsze wersje +2, +3?

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Dla początkujących i powracających
« Odpowiedź #22 dnia: 2012.04.03, 23:37:47 »
Dość optymalny zestaw startowy to Spectrum 128 (oryginalne (które jest dość trudne do wyrwania) albo szare +2 (znacznie łatwiejsze do dostania a co za tym idzie sporo tańsze)) a do tego DivIDE i karta CF. Do kompletu oczywiście jakiś joystick - jeśli +2 to przelotka z Amstradowego SJS na normalne Atari, jeśli oryginalne 128 to jakiś interface do joy'a.

I oczywiście jakiś zestaw emulator+assembler+edytor tekstu jeśli planujesz coś programować - w dzisiejszych czasach robienie tego na fizycznym sprzęcie to już czysta ekstrawagancja ;)

Co do wersji 128 - oryginalne Sinclairowe w obudowie jak plus z dużym radiatorem to jest baza. Potem Amstrad wypuścił +2 z magnetofonem i lepszą (?) klawiaturą i swoimi zmianami (wyjście RGB, 2 porty joysticka Sinclair dla joysticków SJS). Kolejna wersja to +2A w czarnej obudowie - tam zmieniła się elektronika wewnętrzna i to na tyle, że część programów (zwłąszcza dem wymagających dokładnych timingów) będzie się sypała a część rzeczy po prostu nie pójdzie - zasadniczo czarnych +2 należy unikać. Ostatni model to +3 - ma elektronikę z tej samej serii co +2A (takie same problemy jeśli chodzi o timingi) a do tego wbudowaną stację dyskietek 3" i oczywiście większy ROM z DOSem do obsługi tej stacji.

cyborg50

  • **
  • Wiadomości: 90
  • Miejsce pobytu:
    Warszawa
Odp: Dla początkujących i powracających
« Odpowiedź #23 dnia: 2012.04.04, 00:36:52 »
ok, a gdzieś kiedyś widziałem taką przeróbkę gumiaczka, co to się wymieniało oba banki pamięci na sprawne 64x1, chyba przy okazji były to już normalne takie jedno napięciowe (?), jakiegoś gala się na pigibag przyczepiało i było 128kb. Ale czy takie rozwiązanie to to samo co oryginalne 128?

BTW Po jaką cholerę sinclair oryginalnie użył 2 różnych typów pamięci (czy też coś mylę?)?

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Dla początkujących i powracających
« Odpowiedź #24 dnia: 2012.04.04, 01:38:34 »
ok, a gdzieś kiedyś widziałem taką przeróbkę gumiaczka, co to się wymieniało oba banki pamięci na sprawne 64x1, chyba przy okazji były to już normalne takie jedno napięciowe (?), jakiegoś gala się na pigibag przyczepiało i było 128kb. Ale czy takie rozwiązanie to to samo co oryginalne 128?

BTW Po jaką cholerę sinclair oryginalnie użył 2 różnych typów pamięci (czy też coś mylę?)?
ZX Spectrum 128 nie ma pamięci 2x64kB, tylko banki po 16kB.
AY Music, ULA plus.

trojacek

  • *****
  • Wiadomości: 6839
  • Miejsce pobytu:
    Warszawa
Odp: Dla początkujących i powracających
« Odpowiedź #25 dnia: 2012.04.04, 10:51:13 »
ok, a gdzieś kiedyś widziałem taką przeróbkę gumiaczka, co to się wymieniało oba banki pamięci na sprawne 64x1, chyba przy okazji były to już normalne takie jedno napięciowe (?), jakiegoś gala się na pigibag przyczepiało i było 128kb. Ale czy takie rozwiązanie to to samo co oryginalne 128?

BTW Po jaką cholerę sinclair oryginalnie użył 2 różnych typów pamięci (czy też coś mylę?)?

Cos mi swita, ze w mlodzienczych latach przywrocilem w ten sposob do zycia kilka gumiaczkow w moim liceum. usuwalem wszystkie kosci 4116 i w ich miejsce wstawialem 4164 (ktorem minimalnie roznia sie pinoutem - trzeba tylko przepiac +5V i usunac napiecia -5V oraz +12V, najlepiej calkowicie pozbyc sie ukladu przetwornicy). Fakt, ze w ten sposob uzywa sie tylko 1/4 pojemnosci nowych pamieci, ale sa (byly) one wzglednie tanie i dostepne. W ten sam sposob mozna "zregenerowac" gorne 32 KB do pelnych 64 KB (to te same scalaki, tylko Sinclair kupowal odpady z uszkodzonym jednym bankiem), na tym bazowala niezgodna z niczym przerobka na 80 KB :).
A czemu w Spectrum byly kostki 4116? Po prostu byly najtansze...

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Dla początkujących i powracających
« Odpowiedź #26 dnia: 2012.04.04, 11:36:27 »
Ale czy takie rozwiązanie to to samo co oryginalne 128?

Jeśli chodzi o organizację pamięci - tak. Ale niestety w ten sposób nie zmienisz timingów ULA i dalej będziesz miał zgodne z 48. Jeśli program ma detekcję typu komputera i na podstawie obecności mechanizmu przełączania pamięci wybierze sobie timingi 128 to efekty się posypią.

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: Dla początkujących i powracających
« Odpowiedź #27 dnia: 2012.04.04, 16:08:10 »
Trochę z innej bajki. Ale jako że temat dla powracających to ja tu:
Jaki jest optymalny zestaw dla powracającego do zabawy z zx. Moje doświadczenia kończą się na zx48, w moich czasach był tylko jeszcze +. Coś na czym można by poodpalać jakieś gierki, demka, powciągać się w "nowoczesną" technikę (jakieś tos-y albo co?), jakaś obsługa cf - sam nie wiem co jeszcze?
Pytanie pomocnicze: czy zx 128 - taki jak zx + jeszcze sinclaira może to samo co późniejsze wersje +2, +3?

Tu MAT właściwie wyczerpująco odpowiedział.
Zwłaszcza, że dema to 128K jest optymalny, bo 99% z gumiaka pójdzie, a ponadto masz wszystko na 128K, czego jest o niebo więcej.
>>powciągać się w "nowoczesną" technikę<< to nie ma co patrzeć na Zachód, bo idziemy na Wschód. Tam musi być jakaś cywilizacja.
Ale trzeba liczyć się kosztami poszukiwać nowoczesnej techniki. Ostatnio dałem ok. 750 zł za wykwit tejże.


> ok, a gdzieś kiedyś widziałem taką przeróbkę gumiaczka, co to się wymieniało oba banki
> pamięci na sprawne 64x1, chyba przy okazji były to już normalne takie jedno napięciowe (?), jakiegoś gala się na pigibag przyczepiało i było 128kb. Ale czy takie rozwiązanie to to samo co oryginalne 128?
-----------------
Niestety nie. W skrócie - gdybyś wrzucił do A500 2Mb, też nie będziesz miał Amigi 1200. :)
To co mówi MAT. Gumiak jest wolniejszy od 128K i dema by się żałośnie ślimaczyły, nic multikolorowego ze 128K Ci nie pójdzie, że nie wspomnę, że na ekranie nie ukaże się nic poza tryb standardowy, bo 128K ma dwa ekrany i większość programów z tego korzysta.
Miałbyś więc gumiaka ze 128K ramu, którego nikt nigdy nie zużyje. :)

cyborg50

  • **
  • Wiadomości: 90
  • Miejsce pobytu:
    Warszawa
Odp: Dla początkujących i powracających
« Odpowiedź #28 dnia: 2012.04.04, 20:40:50 »
no dobra sprawę mamy jasną trzeba zapolować na 128 (chyba że jakiś timex - coś było wspominane?) . a DivIDE to jakie? Są jakieś różne? ew skąd. Coś mi się wydaje że imć Pan Zaxon coś w tej sprawie będzie wiedział :)
« Ostatnia zmiana: 2012.04.04, 20:45:34 wysłana przez cyborg50 »

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Dla początkujących i powracających
« Odpowiedź #29 dnia: 2012.04.04, 21:04:07 »
Kup nowe DivIDE od Lotharka (http://www.lotharek.pl/product.php?pid=25), wrzuć do niego esxdosa (http://esxdos.org/) z firmware selectorem (http://velesoft.speccy.cz/zx/divide/divide-esxdos.htm) i przyległościami i będziesz miał wszystko co potrzebne.