Tak, logika musi być dość złożona, gdy chcę, żeby $D5xx było jakimś ostatnim bankiem pamięci flash. Wtedy trzeba błyskiem przestawić adresy. Podobny trik robi S-XEGS, gdy pojawia się nS5 to ma włączyć ostatni bank.
Natomiast jak przestrzeń może się pokrywać, to już jest banał.
Teraz carty zgodne z maxflashem mają:
nCE = nS5
Robię trik:
nCE = ( nS5 AND nCCTL )
i wtedy "chyba" A000-BFFF widzi cały bank a $D5XX widzi tylko $B500-$B5FF? Tego drugiego nie jestem pewien :/
Generalnie to próbuję wybrnąć z problemu konwersji ATR do CAR, gdzie muszę gdzieś dać kod obsługi carta. Niestety ale programy nie stosując żadnych zasad i latają po całej pamięci włącznie ze stosem. Jak to jest krótki kod na kilka bajtów to gdzieś wciśnie. Ale jakby był dłuższy (np. zapisy itp) to kłopot. A zakres $D500-$D5FF nie są w stanie zepsuć bo to jest już sprawa sprzętowa.
Natomiast bez sensu byłoby lutować ekstra pamięć na obsługę $D500-$D5FF. Więc kombinuje jakby tu jedną kostką pokryć dwa zakresy gdzie tylko jeden z nich jest wyłączany.
Ostatnio edytowany przez Gienek (2023-07-08 15:45:03)