Autor Wątek: MÓZGPROCESOR  (Przeczytany 10543 razy)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: MÓZGPROCESOR
« Odpowiedź #15 dnia: 2017.12.24, 11:50:33 »
@tdu układ plików jest inny, bo to zrzut pamięci po załadowaniu gry z taśmy (fuse -> debugger -> break event tape:stop)
Wykorzystałem gotowe rozwiązanie z mojej wersji dyskowej, i tylko podłożyłem binarkę gry z WOS/archiwum :)
MP_GAME to zapisany stan gry, możliwy jest tylko jeden.

@mariansss Tak.
Machines should work. People should think.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: MÓZGPROCESOR
« Odpowiedź #16 dnia: 2017.12.24, 13:57:55 »
Wyglada na to że z zrzutu pamieci wyciąłeś obrazek (6912) i obszar od adresu 24500 do konca
oraz bufor drukarki 23296/256.
Uruchomienie od adresu 47780 a tam wylączenie przerwan i skok pod 47694, i dalsze uruchomienie gry.
Czy to wszystko jest jak w oryginale czy coś tu modyfikowałeś ?
Zapisanie stanu gry w TOS musiało być zrobione dodatkowo.

SNA też jest zrzutem pamieci i mozna by tak samo zrobić.
Pociąć na kawałki i odpowiednio wczytać.
Problemem jest tylko znalezienie punktu wejścia, uruchomienia kodu.

Można by też odtworzyć rejestry procesora, stos, i program mógłby zacząć pracę
od punktu w którym została ona przerwana (Moment zrzucenia SNA lub Z80).

Można by się pokusić o zrobienie automatu przerabiającego zrzut z emulatora (Z80 lub SNA)
na wersję dyskową, odtworzenie rejestrów dla dowolnej gry powinno być jednakowe.

Mogłoby pozostać ręczne wykonanie loadera w Basic.


ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: MÓZGPROCESOR
« Odpowiedź #17 dnia: 2017.12.24, 14:12:45 »
Jedyne modyfikacje to dodanie procedur TOS i podmienienie adresów skoku do procedur zapisu i odczytu.
W przeróbce własnej kopii zmieniłem jeszcze słowo kluczowe wywołujące opcję zapisu i odczytu.
Automat możesz zrobić do ładowania snapa, ładowanie poziomów czy obsługę zapisu/ odczytu stanu gry trzeba już robić ręcznie,  pod konkretną grę.
Machines should work. People should think.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: MÓZGPROCESOR
« Odpowiedź #18 dnia: 2017.12.24, 14:42:06 »
wszystko jasne.

A moze Twój program tap2tos rozszerzyć o taką funkcjonalność,
byłoby fajnie.
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: MÓZGPROCESOR
« Odpowiedź #19 dnia: 2017.12.24, 22:28:20 »
A moze Twój program tap2tos rozszerzyć o taką funkcjonalność,
byłoby fajnie.
Ale jaką funkcjonalność... przerabiania snapa?
IMHO lepiej po prostu napisać program startowy który będzie ładował i odpalał wybranego snapshota...
Machines should work. People should think.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: MÓZGPROCESOR
« Odpowiedź #20 dnia: 2017.12.25, 11:53:09 »
Wystarczyłoby żeby plik SNA, został pocięty na odpowiednie kawałki
i znalazł się na dyskietce.
Loader to faktycznie można później dorobić.
podzial np. 6912,1704, 20000,20536

dodatkowo 27 bajtów zawierających stan rejestrów procesora
« Ostatnia zmiana: 2017.12.25, 13:45:09 wysłana przez tdu »
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: MÓZGPROCESOR
« Odpowiedź #21 dnia: 2017.12.25, 13:53:31 »
W zasadzie problem rozwiązuje program SnapToTap (http://arda.kisafilm.org/blog/?p=1188)
przyjmuje snap i z80, a nastepnie Tap2Tos i mamy działający program na dyskietce.
Prosto i skutecznie.

Tracimy na tym niestety przyjemność z własnoręcznego przygotowania gry.
Przygotowanie loadera to praca z asemblerem, basicem i końcowa satysfakcja. 
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: MÓZGPROCESOR
« Odpowiedź #22 dnia: 2017.12.28, 13:07:55 »
Przygotowanie loadera to praca z asemblerem, basicem i końcowa satysfakcja.
Końcowa satysfakcja wygląda tak.
Standard disclaimer: u mnie działa, ale na emulatorze :)
Optymistycznie zakładam, że na fizycznej maszynie też się poprawnie odpali...
Machines should work. People should think.