CA80 z pamięcią stronicowaną.

  W "nowym" CA80 pan Stanisław Gardynik przewidział stronicowanie pamięci. Do przełączania banków służyły dodatkowe przełączniki "I" oraz "H". Rozwiązanie to umożliwiało zamontowanie w komputerze dużych (32 lub 64 kilobajty) EPROM-ów z zapisanymi programami. Opis w MIK09 str. 53.

CAFL
Prawie ostateczna wersja modułu "flash-mini".


Gdy projektowałem moduł "flash" nie myślałem o takiej jego funkcji. Miałem już moduł "boot", który dawał nieograniczone możliwości ładowania dowolnego oprogramowania w całym dostępnym RAM czyli w 64 kilobajtach. Zależało mi jedynie na zachowaniu funkcji magnetofonu, a właściwie na zastąpieniu magnetofonu urządzeniem szybszym i mniej kłopotliwym. Przy okazji dodałem namiastkę MikSID-a czyli systemu uruchomieniowego z deasemblerem. "Flash" przyspieszył pracę nad kolejnymi modułami, bo zapisywałem w nim kolejne wersje oprogramowania. Coraz rzadziej wyjmowałem kartę SD, żeby przenieść nowy program z PC, bo szybciej było przesłać go przez UART.

CA80 "boot"
Wielofunkcyjny moduł CA80-boot.


Doszedłem do wniosku, że można prawie wszystko zrobić bez modułu "boot", jednak w wersji "mini" było to chwilowo niewykonalne. Nie było miejsca na EPROM systemowy. W wersji RCbus było łatwiej. Wystarczyło w sektorze "00" zapisać program CAFL i przepisać go po włączeniu komputera do RAM. W "mini" można zrobić podobnie, ale w module "flash" zmieści się tylko 4 kilobajtowy EPROM... Do tego trzeba przeadresować oprogramowanie, bo moduł musi być w U9. Drugą część monitora można zapisać w innym sektorze flash, jednak nie będzie ciągłości adresowania. Przygotowałem odpowiednie modyfikacje i za pomocą "bootloadera" uruchomiłem całość. Kiedy wszystko już działało (nie obyło się bez kilku błędów), utworzyłem pliki HEX i wysłałem je do PC przez UART. Zaprogramowałem EEPROM i włączyłem komputer bez karty SD.

Zmiany w tablicy rozejść do zleceń.
Trochę trzeba było pozmieniać.


Po włączeniu CA80 działa bez zmian. CA88 dostał "rozbiegówkę", która włącza sektor "FF" (w rzeczywistości 7F), gdzie zapisałem górne cztery kilobajty. Od tej pory działają też pozostałe zlecenia monitora *84 i następne. Będą aktywne, dopóki nie przełączymy banku, czyli nie wpiszemy numeru sektora. Zlecenie *8D (opisane jako rezerwa) wykorzystałem do przepisania programu CAFL do RAM. Po jego wykonaniu możemy używać "magnetofon" oraz jego funkcje obsługujące UART. Na razie jest tylko wersja z Z80SIO, bo pracowałem na komputerze z nowym modułem "multi".

Ochrona górnych sektorów flash.
Ta zmiana chroni osiem sektorów.


W trakcie pracy zauważyłem, że łatwo można osiągnąć ochronę górnych sektorów. Wystarczy zmodyfikować jeden rozkaz w zleceniu formatującym flash. Umożliwi to wydzielenie dowolnej liczby sektorów (do 128) na strony z programami. Kasowanie chronionych sektorów nadal będzie możliwe, ale pojedynczo. Wybranie numeru sektora "FF" spowoduje sformatowanie tylko niezapisanych wcześniej niższych sektorów. Całe oprogramowanie opisane w MIK-ach zmieści się bez problemu. C930 zajmie aż cztery sektory i mały program przepisujący je do RAM, ale to innym razem.

 

Procedury przenoszące programy.
Procedury ułatwiające pracę z modułem.

Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.