Godzina dziennie, przez dwa tygodnie.

Zabawa w programowanie c64. Usunąłem Kernal ROM i BASIC ROM. Zostawiłem Character ROM. Przez dwa tygodnie będę pisał własny Kernal. Nie będę niczego re-implementował. Piszę tylko to co jest potrzebne do uruchomienia komputera i kolejnych osiągnięć. Celów nie wyznaczam z góry, bo apetyt rośnie w miarę jedzenia.

Dzień pierwszy - organizacja narzędzi i podstawy.

  • vice jako emulator
  • kwrite jako edytor (ma podświetlanie składni 6502)
  • vasm jako asm (ponieważ Ben)
  • zmieniłem paletę kolorów c64 na bardziej estetyczną: https://lospec.com/palette-list/pico-8
  • staram się nie używać debuggera i podglądania stanu emulatora. Chyba, że brak działania wynika z czegoś czego nie wiem i nie jest oczywiste.
  • zapisałem konfigurację vice, tak by po uruchomieniu widzieć od razu wynik pracy.

Wnioski:

Vice nie startuje bez zdefiniowanego BASIC ROM. Więc wygenerowałem pusty ROM:


  .blk 8192 0


Vice nie wczytuje od nowa plików ROM nawet po softwarowym cyklu ponownego włączenia komputera. Trzeba uruchamiać emulator od nowa.

6510 ma wbudowany port i/o, którego bity ustalają czy w pewnych przestrzeniach pamięci ma być ROM, czy RAM. Po resecie port jest w trybie INPUT i ustawia wszystko na RAM. Jak komputer startuje? Twórcy komputera dołożyli rezystory podciągające do sygnałów, które powinny być aktywne by komputer wystartował.

Udało mi się wstępnie zaprogramować VIC2, bym widział, że mój kod coś robi. Ustawiłem ramkę na cały ekran i zmieniam jej kolory.

Jutro zajmę się tajemniczymi przestrzeniami adresowymi VIC. Miejsce w którym VIC czyta dane z pamięci jest wyznaczane zarówno przez rejestry VIC jak i jeden z układów CIA. Pewnie uda to ustawić na tyle by wyświetlić znak lub jakiś napis.

  • サぺルOP
    link
    fedilink
    Polski
    arrow-up
    1
    ·
    7 months ago

    Przerobiłem wszystkie tryby tekstowe i graficzne vic2. Chunky vs Planar to małe piwo.