Ja bym zmienil bank vica na e000-ffff (cut..)
Nie bardzo widzę co by mi dała zmiana banku VICa na obszar $E000-$FFFF, a hasło "DreamLoader" już mi gdzieś mignęło na Wiki, ale linki nie działały, próbowałem znaleźć źródła w inny miejscu, ale jakoś mi nie wyszło, a potem zmieniłem koncepcję żeby skorzystać z kernala, może poszukam jeszcze raz.
Właśnie pierwsze co zrobiłem to sprawdziłem ile zajmuje level po spakowaniu Exomizerem. Przykładowy etap zajmuje 1800 bajtów po spakowaniu 274 więc jeśli będę miał wolny obszar od F000 to wystarczy na około 14 etapów... hmmm nie wiem jak to się stało ale chyba coś źle wcześniej wyliczyłem
14 to nie jet tak źle. Chyba wiem... podzieliłem hex 1000 na dec 274, chyba już byłem wtedy po piwie albo zmęczony. No i już mi pomogłeś
Ale awaryjnie muszę być przygotowany na użycie dyskietki może będzie jakiś hi score load/save.
(...)
Jeśli chodzi o transmisję to wystarczy dobre przestudiowanie dwóch bloków od ed00 ef00 w kernalu.
Już studiowałem. Kombinowałem różne opcje i coś niebardzo mi to działało (zazwyczaj wywołanie load kończyło się tym że przerwania z kernala się uruchamiały), chyba jednak umieszczenie danych w obszarze $200+ nie jest najlepszym pomysłem, ale tam to to się fajnie wpasowało bo procedura mnożąca z tablicami zajęła dokładnie obszar od $200 do $7F3.
Na razie jedyny pomysł jaki mi zadziałał to:
- przed głównym uruchomienim wykonuję kopię obszaru $01-$ff i $200-$400
- wyłączam kernal rozpakowuje dane gra startuje itd.
- przed załadowaniem z pliku przywracam wcześniej zapamiętane dane do w/w obszarów
- wyłączam IRQ
- włączam kernal
- wywołuję LOAD
- wyłączam kernal
- przywracam moje dane
Może jest jakiś łatwiejszy sposób bez konieczności marnowania pamięci na przechowywanie danych z tych obszarów?
Pomyślałem że można by było ewentualnie skompresować obszar $200-$400 i po prostu przed włączeniem kernala rozpakować, oczywiście dla ZP zostało by zwykłe kopiowanie.
Czy takie kopiowanie tych obszarów będzie kompatybilne z większością maszyn (czy to zadziała jak ktośbędzie miał np. Jiffy lub inny rom)?
Czy może jest łatwiejszy sposób, może wystarczy przywrócić wartości tylko dla kilku komórek (ale jakich)?