-
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.
Następne wpisy z tego wątku
- 06.08.21 10:27 Janusz
- 06.08.21 10:30 Janusz
- 06.08.21 11:23 Atlantis
- 06.08.21 11:41 Atlantis
- 06.08.21 12:06 Atlantis
- 06.08.21 14:47 RoMan Mandziejewicz
- 06.08.21 15:00 Atlantis
- 06.08.21 15:14 Zbych
- 06.08.21 15:16 Janusz
- 07.08.21 11:25 Atlantis
- 09.08.21 10:54 J.F
Najnowsze wątki z tej grupy
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
Najnowsze wątki
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=