BlueDraco wrote: No właśnie powyżej napisałem, że nie możesz, bo jest napisany tak, żeby siedział w ROM od adresu 0. Może jest gotowa inna wersja, która nie używa RST zamiast CALL.
Hmm... Jak już wspominałem, w przypadku mojego urządzenia EPROM zaczyna się od 0xC000. Odpowiednia logika troszczy się o to, aby po restarcie linie A14 i A15 zostały ustawione, umożliwiając start kodu z EPROM-u.
Nie wiem czy moje rozumowanie jest poprawne, ale gdyby tak zmodyfikować kod tego BASIC-a wg następujących założeń:
1) Program zaczyna się od ".ORG 0C000H", na początku inicjuję stos oraz umieszczam parę instrukcji odpowiedzialnych kwestie specyficzne dla mojego sprzętu, inicjuję też peryferia.
2) Kod odpowiedzialny za obsługę rozkazów RSTx na razie pomijam. Za pomocą polecenia ".ORG" przygotowuję jednak zbiór etykiet wskazujących na konkretne lokacje w pamięci RAM.
3) Zmienne inicjuję gdzieś w dolnej części pamięci RAM, jednakże powyżej wspomnianych etykiet.
4) Na końcu kodu programu w pamięci EPROM umieszczam kod obsługujący poszczególne funkcje dla RSTx. Oznaczam je rzecz jasna przy pomocy innych etykiet niż miejsca przewidziane w pamięci RAM.
5) Tworzę funkcję "memcopy", która bajt po bajcie przepisuje kod obsługujący RSTx z EPROM-u pod właściwe adresy w RAM-ie. Funkcję wywołuję na samym początku, podczas inicjacji kodu.
Taka modyfikacja zadziała?
Czy próbować to przepisać w taki sposób, aby wywyłania RST x zastąpić wywołaniami CALL etykieta, nie przejmując się pod jakimi adresami w EPROM-ie znajdują się elementy docelowe?