Komputery z Z80 > AMSTRAD

Tricki na Amstradzie

<< < (25/28) > >>

ZbyniuR:
Działa rewelacyjnie! :)

Teraz by trzeba wyodrębnić z całego ROMu te procedury które rzeczywiście zostały zmodyfikowane i w jednej binarce umieścić powiedzmy pod &8000, aby 16K od &4000 zostawić do dyspozycji na przełączane ekrany czy coś. I zmodyfikować tylko te poprawiane wektory.

W pośpiechu by wypróbować jak działają co niektóre programy na tak zmienionym ekranie przypadkiem nagrałem na dysku z moimi ostatnimi bajziczkami obraz twojego dsk z tym poprawionym poke. I mam teraz żałobę po utraconych pliczkach. :(

McArti0:
overscan8.bas

i relokacja niecałych 8kb do banku 2.

Teraz wgrywamy plik RAM8-ROM.bin.

ustawiłem też symbol after 0 i zmieściło się na styk.

wywołania z B992 są liczone czy mają iść do dolnej czy górnej części LowRom.

do górnego 8k lecą do ROMu (&2000-3FFF), do dolnego 8k (&0000-&1EEF) lecą do RAMu (&8000-7EEF).

oczywiście BASIC i przerwania korzystają z tego co chcą.

Tablica skoków ASCII i Tablica skoków Firmware Indirection poprawiona na adresy od &8000.

ps. łącze się w bólu po stracie dyskietki. I pasem po d... powinieneś dostać, że nie robisz backupu chociażby zipa całego katalogu.

McArti0:
CLS i CLG działa źle.

zrobiłem wersje 16k w banku 1 gdzie działa copiowanie i shiftcursor.

problem jest taki, że działa to na codzie między 8 a 12 kb LowRom które jest wycięte w wersji 8kB.

ZbyniuR:
Po tym jak wiele widziałem skrolaków i sprajtów latających po szerokich ekranach, nie wierzę żeby nikt wcześniej nie myślał aby przygotować takiego działającego gotowca. A że o tym nie słyszałem mogę tłumaczyć tylko tym o czym mówisz, że tych procedur które korzystają z grafy jest aż tyle i są rozsiane po tylu miejscach że sie odechciewa. I prościej jest napisać np kilobajt kodu który przesuwa po tych giętych ekranach coś ruchomego a przy tym wyższego niż linijka tekstu, niż modyfikować wszystkie odwołania które korzystają ze standardowych ustawień. No cóż gdyby to było łatwiejsze to już wcześniej ktoś by to zmienił.

Powiedz czy musiałeś gdzieś ingerować w same procedury czy tylko zmieniałeś w nich parametry co by dostosować ich działanie do innej szerokości/wysokości ekranu?
Zaczynasz mieć tego dość czy się dobrze bawisz rozkminiając jak to zrobić? :)

McArti0:
Zabawa z relokacją jest niebanalna. Trzeba przypilnować które wartości w rejestrach są przyszłymi adresami skoku a które nie.
Wiadomo że wszystkie wywołania prowadzą do romu a nie ramu więc trzeba wyczekać moment gdzie procedury przechodzą przez ram żeby cokolwiek móc zmodyfikować. Znalazłem dwie takie luki. Procedura licząca adresy wejścia do romu, leci przed adresem &b999. Tamtejsze RET nie wraca z procedury tylko jest skokiem do LowRom z policzonego adresu położonego na stosie. Druga luka to procedury &bdcd i &bdd0 zapalające i gaszące kursor. Myk jest taki że one nie używają rejestru DE a Rom skacze do nich akurat trzymając w DE adres przyszłego skoku do rom. Na stosie leży też adres skoku z rom do procedury kursorów. Jak sie napisze procedure modyfikującą ten adres to wtedy wraca do ramu a nie do romu.
Zabawa jest niezła. Ale rozkładu procedur w pamięci nie zmieniam, bo zawsze jakaś inna procedur może w nią wtedy nie trafić. Życia zabraknie na rozkminienie całych 16kB. :)

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej