Jeszcze jedno mi się nasunęłó:
ewentualny nowy ROM ($F00000-$F7FFFF) - mógłby być na jakiejś pamięci Flash (lub podobnej), którą zwykły szary użyszkodnik mógłby sobie sam zaktualizować wersję systemu - a nie prosić się kogoś posiadającego programator danej pamięci. Po uruchomieniu kompa mógłby się załączać jakiś eprom z czymś w postaci BIOS'u, który sprawdziłby procka, ExtRAm, FastRAM i czy w obszarze $F00000-$F7FFFF jest nowy ROM, skoczył tam i odłączył eproma włączając w ten obszar przeadresowany blok $F0C000-$F0FFFF. dopiero inicjalizacja wszystkich urządzeń, itd. Jeśli by ROM'u w tym obszarze nie było, a stwierdzonoby obecność pamięci Flash, to mógłby się uruchomić start awaryjny - np. ponowne zaprogramowanie pamięci Flash lub start systemu z dyskietki w trybie 6502 lub coś w tym stylu.
Mam też pytanie:
mam kawałek swojego programu umieszczonego w obszarze np. od $123456 - czyli w pamięci FAST:
czy jeśli wykonam LDA $123456 a LDA $3456, to czy ten drugi odwoła się fizycznie do $003456, czy do $123456 ? Analogicznie z rozkazem JMP - skacze sobie JMP $123456, a JMP $3456 - mówiąc krótko jeśli w nowym biosie jest $F0C000 - $F0FFFF, to jeśli tam będa JMP/LDA/STA, etc. odwołujące się w trybie 6502 (2 bajty adresu), to czy 65c816 będzie wszystko wykonywał na adresach $00c000 - $00ffff, czy $F0C000 - $F0FFFF. Bo z tego co wiem, to 65c816 ma jakieś ograniczenia, że niemoże normalnie przekraczać bloku 64kB.
draco030 napisał/a:Rejestrów pod $d1xx nie trzeba chyba koniecznie zachowywać, w końcu cały prawie soft, który z nich korzysta, można łatwo uaktualnić, a tak na codzień potrzebne są tylko sterownikowi w ROM-ie.
hmm... niby fakt, tyle że mój system HiDOS przy obsłudze IDE KMK używa własnego sterownika, który wspiera także użądzenia ATAPI oraz obie tabele partycji (starą (FDISK) i nową (PartitionWizard). No i sam PartitionWiazard teżby trzeba przerobić, a jeszcze go nawet nieskończyłem, chyba że podzieli los filesystemu HiDOS v1.1 - po sugestiach i krytyce Liazrda powstał v1.3 - który teraz koduję praktycznie od nowa, bo przerobić v1.1 było trudno, ale taksobie myślę, że w systemie potrzebne byłby dwie wersje - dla 6502 (np. obecna - po to potrzebne byłaby zachowanie zgodności rejestrów na stronie $D1) i dla (65c816 - uwzględniająca poprawkę kontrolera).