eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAsembler 8080 - przerwania i zrzucanie stanu rejestrów na stosRe: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
  • Data: 2021-08-06 10:24:34
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 06.08.2021 09:39, Janusz wrote:

    > A 8080 nie ma czasami banków rejestrów jak 51?

    Wydaje mi się, że nie. Pod tym względem 8080 to taki uproszczony Z80.
    Posiada tylko akumulator, rejestr flag oraz pary rejestrów, które można
    traktować jako rejestr szesnastobitowe rejestry do wykonywania
    niektórych instrukcji, albo dwa ośmiobitowe, niezależne rejestry: BC, DE
    oraz HL. Ten ostatni jest wykorzystywany przez niektóre instrukcje jaki
    wskaźnik na określoną lokalizację w pamięci. No i oczywiście jest
    jeszcze SP oraz wskaźnik stosu.


    > Masz gdzieś błąd.

    Pytanie tylko gdzie... Poza hipotezą z przerwaniami nie przychodzi mi
    nic innego do głowy.

    Funkcje do operacji na VRAM-ie wyglądają następująco:

    ;RAM ADDRES IN BC, VRAM ADDRES IN DE, DATA LENGTH IN HL
    VDPRVRAM:
    MOV A, E
    OUT VDP_MODE
    NOP
    NOP
    MOV A, D
    OUT VDP_MODE
    NOP
    NOP
    VDPRVRAML:
    IN VDP_DATA
    NOP
    NOP
    STAX B
    INX B
    DCX H
    MOV A, H
    ORA L
    JNZ VDPRVRAML
    RET

    ;RAM ADDRESS IN BC, VRAM ADDRES IN DE, DATA LENGTH IN HL
    VDPWVRAM:
    MOV A, E
    OUT VDP_MODE
    NOP
    NOP
    MOV A, D
    ORI 40H
    OUT VDP_MODE
    NOP
    NOP
    VDPWVRAML:
    LDAX B
    OUT VDP_DATA
    NOP
    NOP
    INX B
    DCX H
    MOV A, H
    ORA L
    JNZ VDPWVRAML
    RET

    ;VRAM ADDRES IN DE, DATA LENGTH IN HL
    VDPZEROVRAM:
    MOV A, E
    OUT VDP_MODE
    NOP
    NOP
    MOV A, D
    ORI 40H
    OUT VDP_MODE
    NOP
    NOP
    VDPZEROVRAML:
    MVI A, 00H
    OUT VDP_DATA
    NOP
    NOP
    DCX H
    MOV A, H
    ORA L
    JNZ VDPZEROVRAML
    RET

    Instrukcje NOP umieszczone testowo, docelowo raczej nie będą potrzebne.
    Kod instrukcji do przewijania ekranu zamieściłem w poprzedniej
    wiadomości. Zawarte w niej adresy lokalizacji w VRAM-ie oraz długości
    odczytywanych/zapisywanych ciągów danych raczej są prawidłowe -
    przewijanie potrafi zachowywać się prawidłowo przez całe minuty, pomimo
    dużej ilości tekstu przelatującego przez ekran. Gdyby tam była pomyłka,
    to błędy bardzo szybko by się nawarstwiły i obraz zacząłby się
    rozjeżdżać już po pierwszym przewinięciu o linię do góry.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: