Nie wiem, na ile orientujesz się w cechach 65c816. Ten procesor ma dwa tryby pracy, tryb emulacji (w którym jest to w zasadzie 65c02) oraz tryb natywny dający dostęp do 16-bitowych rejestrów i innych bajerów.
Problem w tym, że w trybie natywnym wektory przerwań CPU znajdują się gdzie indziej, niż w trybie emulacji (są przesunięte o 16 bajtów niżej, czyli np. wektor NMI nie jest pod $FFFA, ale pod $FFEA). W normalnym ROM-ie jest tam numer wersji, data jej wypuszczenia itd., więc z punktu widzenia CPU nic sensownego. Więc ze zwykłym ROM-em można normalnie używac tylko trybu emulacji, a przełączenie procesora w tryb natywny powoduje zwis.
A więc pierwszą i najważniejszą modyfikacją nowego ROM-u jest rozszerzenie systemu obsługi przerwań tak, żeby systemowe procedury przerwań działały bezkonfliktowo zarówno w trybie natywnym jak i emulacji.
Po drugie, 65c816 ma w ogóle więcej przerwań, więc nowy ROM daje support do ich wykorzystania (zdefiniowane nowe wektory w RAM-ie).
Po trzecie nowy ROM ma zdefiniowaną możliwość robienia bezpośrednich wywołań własnych funkcji z programu, który działa w obszarze pamięci poza pierwszymi 64k. Bo tradycyjna metodą to się nie da.
Po czwarte jest dodana podstawowa obsługa rozszerzonej pamięci liniowej, czyli wykrywanie jej wielkości oraz ustawianie dwóch wektorów o funkcji takiej, jak MEMLO i MEMTOP w podstawowych 64k.
Pomijając drobiazgi, które zostały zrobione niejako przy okazji (nieco szybsze procedury pakietu matematycznego, nieco szybsze procedury wyjścia na E: i S:), to na razie wszystko, ale jeszcze coś będzie, jak się zmieści :?