LCD pomaga testować bootloader.
Testy posuwają się powoli do przodu. SD działa. Całe oprogramowanie CA80 przeniosłem na flash.
Stan procesora na wyświetlaczu LCD. W czasie rozruchu, lub po resecie ATmegi (Z80 jest resetowany przez AVR-a, więc lepiej nie używać przycisku na backplane) od razu ustawiane jest CLK dla Z80 (4 MHz jak w standardowym CA80). Wykonywana jest operacja resetu procesora, ale wprowadzany jest on w stan WAIT już w czasie pierwszego cyklu maszynowego. Wymyśliłem sposób ładowania danych do RAM, który powinien działać na wszystkich typach Z80 niezależnie od technologii i wersji (J4F ograniczył się do CMOS-ów). Na razie testowałem kilka egzemplarzy Z80 z różnymi datami produkcji i Z180, bo o niego najbardziej mi chodziło (Z180 na razie na płytkach "kwadratowych", bo do RC2014 jeszcze doszedłem). Stan WAIT może trwać dowolnie długo, jeżeli procesor ma doprowadzony CLK. Korzystając z tego faktu odczytywany jest plik "CA80.TXT", który jest odpowiednikiem pliku *.bat czyli zawiera listę plików do załadowania. Na razie ograniczyłem liczbę plików do pięciu, ale można to zmienić. Na tym etapie wystarcza.
Kolejne etapy rozruchu CA80 bez ROM.
Jak widać na zrzucie ekranu terminala, ładowane są cztery pliki: CA88, CA80_N_B, CA80_O_E i MSID_MIN. Wszystkie są plikami *.HEX. W zależności od potrzeb możemy zrezygnować z dowolnego pliku, lub dodać nowy. Na karcie SD możemy przechowywać więcej plików - o tym które załadujemy, decyduje CA80.txt. Oczywiście CA80_N_B (pierwsze 2 kB nowego CA80, litery w nazwie N - new, B - base) jest konieczny, bo to jest nasz system operacyjny! CA80_O_E to rozszerzenie pochodzące ze starej wersji, ale podobno nowa jest identyczna (litery w nazwie O - old, E - extend). CA88 - to 1000H - 1FFFH "firmowego" oprogramowania. Wszystkie utworzyłem ze źródeł opublikowanych przez kolegę @andrzejlisek. Ostatni plik jest mojego autorstwa i służy do testowania kolejnej płytki - "LCD - direct". Nazwa sugeruje coś poważnego i mam nadzieję, że słusznie. Za pomocą zworki CA80/MSID RTS zmuszamy komputer do zaglądania w zastrzeżone obszary. Do tej pory tylko nieliczni mogli korzystać z tego dobrodziejstwa. MIKSID jest odpowiednikiem debugera np. w STM32. W czasie uruchamiania programu pokazuje nam stan procesora. Większość funkcji MIKSID-a ma monitor CA80, jednak na systemowym wyświetlaczu niewiele się mieści. Modyfikacje zawartości rejestrów i pamięci są tam możliwe ale pracochłonne i wymagające większego skupienia uwagi. Na razie mój program tylko aspiruje do rangi debugera, ale od czegoś trzeba zacząć. Może pomoże mi w dalszych pracach nad MIKSID-em.
Komentarze
Prześlij komentarz