Terminal dla Cobry.
Nie od razu Cobrę zbudowano. Uruchamianie oryginalnej autor radził zacząć od części wideo, więc pójdę tym tropem.
Dwa w jednym.
Nie zamierzam jednak kopiować oryginału, bo nie mam w domu żadnego telewizora ani monitora CRT. Projektowanie karty graficznej VGA nie jest prostym wyzwaniem, więc pójdę na skróty - dopiszę kawałek programu i dołączę go do monitora Cobry. Nie będę ingerował w oryginalny kod, ale wykorzystam furtkę, jaką zostawili konstruktorzy. Najważniejsze procedury monitora komunikujące się z użytkownikiem mają skoki pośrednie w RAM. Są one uzupełniane w czasie rozruchu. Zaraz po ustawieniu stosu jest wywoływana procedura wpisująca odpowiednie wartości do pamięci powyżej adresu 0BFF0H, czyli tuż powyżej stosu. Zgodnie z opisem w "Audio Video" można zastąpić te wpisy innymi adresami do własnych procedur. W ten sposób dodano np. obsługę drukarki. Jestem w trudniejszym położeniu, bo nie mogę tego zrobić wykorzystując monitor Cobry. Musiałbym działać po omacku, gdyż nie mam jeszcze monitora. Oczywiście nie jest tak źle, bo moja Cobra jest gościem w CA80. W dodatku mam bootloader i nie muszę ręcznie "wklepywać" kodu.
Interfejs klawiatury Cobry.
Program musi być bardziej rozbudowany, niż przykład z drukarką. Ponieważ nie startujemy od razu Cobrowym monitorem, możemy zdublować początek: ustawić stos, wpisać do RAM skoki pośrednie, zmodyfikować skok do wysłania znaku na ekran, zainicjować UART i po wszystkim skoczyć do "gorącego startu" monitora.
Zmiany w "rozbiegówce".
Zanim to zrobimy, powinniśmy skonfigurować terminal. Najlepszy ze znanych mi wirtualnych wydaje się być Tera Term. Można w nim ustawiać prawie wszystko.
Teraz można pracować nad kodem. MIKsid bardzo się przyda. Postępy prac w repozytorium.



Komentarze
Prześlij komentarz