eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAsembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
Ilość wypowiedzi w tym wątku: 17

  • 11. Data: 2021-08-06 12:06:52
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: Atlantis <m...@w...pl>

    Przychodzi mi do głowy jeszcze jedna hipoteza, że może coś jest nie tak
    z pamięcią systemową i w pewnym momencie przewijanie ekranu wysypuje się
    na odczycie z/zapisie do bufora BLKDAT. Byłoby to jednak wyjątkowo
    dziwną i niesamowicie selektywną awarią - w tym samym układzie pamięci
    SRAM mieści się przecież stos, kod wykonywanego programu w BASIC-u oraz
    kluczowe zmienne systemowe. Gdyby układ był wadliwy, to niestabilność
    systemu byłaby widoczna znacznie częściej, a nie tylko podczas
    wykonywania jednej procedury do scrollowania ekranu...


  • 12. Data: 2021-08-06 14:47:56
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: RoMan Mandziejewicz <r...@p...pl.invalid>

    Hello Zbych,

    Friday, August 6, 2021, 10:13:47 AM, you wrote:

    >>> W aktywnych przerwaniach faktycznie mam instrukcje modyfikujące HL, DE
    >>> oraz oczywiście akumulator/rejestr flag, jednak przed wykonaniem
    >>> procedury obsługi przerwania zrzucam ich stany na stos za pomocą PUSH, a
    >>> potem przywracam instrukcją POP.
    >> A 8080 nie ma czasami banków rejestrów jak 51?
    > Nie, ten cud techniki pojawił się w Z80, nie w 8080
    > https://en.wikipedia.org/wiki/Zilog_Z80#Registers
    > Dla porównania:
    > https://en.wikipedia.org/wiki/Intel_8080#Registers

    Człowiek się uczy całe życie... Naukę programowania zaczynałem 37 lat
    temu od ZX Spectrum i Z80. W asemblerze popełniłem sporo, m.in.
    drivery drukarki (łacznie z LPRINT i LLIST oraz wydruku grafiki z
    ArtSTUDIO) i... dalekopisu jako drukarki.
    Po 37 latach dowiaduję się, że Z80 miał podwójne rejestry. Może
    jeszcze miał flagę sygnalizującą, z którego zestawu korzystam?


    --
    Best regards,
    RoMan
    Nowa strona: http://www.elektronika.squadack.com (w budowie!)


  • 13. Data: 2021-08-06 15:00:51
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: Atlantis <m...@w...pl>

    Jeszcze jedna rzecz do mnie dotarła. Procedura scrollująca ekran jest
    jedyną częścią kodu, która korzysta z odczytu pamięci VRAM. Wszytsko
    inne (w tym alternatywa polegająca na skasowaniu ekranu i przesunięciu
    kursora na jego początek) zadowala się jedynie zapisem.
    Czy potencjalnie może istnieć jakaś sprzętowa przyczyna, która mogłaby
    się objawiać w ten sposób? Nie jest to raczej kwestia luźnej podstawki
    lub niełączącego kynaru, ponieważ przewijanie działa prawidłowo za
    każdym razem po włączeniu zasilania - nie wiem, np, uszkodzony inwerter
    na linii RD, "zatrzaskujący" się w jednej pozycji?


  • 14. Data: 2021-08-06 15:14:53
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: Zbych <z...@s...com>

    On 06.08.2021 14:47, RoMan Mandziejewicz wrote:

    > Po 37 latach dowiaduję się, że Z80 miał podwójne rejestry. Może
    > jeszcze miał flagę sygnalizującą, z którego zestawu korzystam?

    The only way for the programmer to tell which set(s) are in context is
    to trace where each register swap is made at each point in the program.


  • 15. Data: 2021-08-06 15:16:55
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: Janusz <j...@o...pl>

    W dniu 2021-08-06 o 15:00, Atlantis pisze:
    > Jeszcze jedna rzecz do mnie dotarła. Procedura scrollująca ekran jest
    > jedyną częścią kodu, która korzysta z odczytu pamięci VRAM. Wszytsko
    > inne (w tym alternatywa polegająca na skasowaniu ekranu i przesunięciu
    > kursora na jego początek) zadowala się jedynie zapisem.
    > Czy potencjalnie może istnieć jakaś sprzętowa przyczyna, która mogłaby
    > się objawiać w ten sposób? Nie jest to raczej kwestia luźnej podstawki
    > lub niełączącego kynaru, ponieważ przewijanie działa prawidłowo za
    > każdym razem po włączeniu zasilania - nie wiem, np, uszkodzony inwerter
    > na linii RD, "zatrzaskujący" się w jednej pozycji?
    >
    Albo hazard czasowy na danych lub adresach. Trzeba oscylem sprawdzić
    czasy dostępu do pamięci.

    --
    Janusz


  • 16. Data: 2021-08-07 11:25:03
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: Atlantis <m...@w...pl>

    On 06.08.2021 15:16, Janusz wrote:

    > Albo hazard czasowy na danych lub adresach. Trzeba oscylem sprawdzić
    > czasy dostępu do pamięci.

    Podmieniłem wszystkie układy scalone w sterowniku ekranu - nic się nie
    zmieniło. Gdy już kończyły mi się pomysły, a po kolejnym przeglądzie
    kody nie widziałem żadnego błędu, w akcie desperacji zacząłem sprawdzać
    mniej prawdopodobne hipotezy.
    Zacząłem od podmienienia pamięci SRAM. Nie tej w "karcie graficznej",
    ale głównej pamięci komputera. Wygląda na to, że trafiłem - komputer
    działa prawidłowo od kilku godzin, podczas gdy poprzednio problem z
    przewijaniem ekranu występował po kilku-kilkunastu-minutach.

    Wygląda na to, że problem z danymi miał miejsce w buforze BLKDAT,
    pośredniczącym w przesuwanie tekstu na ekranie. Jak dotąd nie trafiłem
    na tak dziwny problem z pamięcią - przechodziła test na TL866, działała
    prawidłowo przez jakiś czas, ale potem zaczynała gubić dane w jednym
    konkretnym fragmencie - tym, który użyłem na bufor. Nie było problemów z
    kodem BASIC-a znajdującym się trochę wcześniej, ani zmiennymi
    systemowymi, które umieściłem za buforem. Co więcej - power cycle
    przywracał na chwilę prawidłowe działanie.
    Nie mogę też powiedzieć, żeby pamięć przekłamywała dane, bo wtedy
    widziałbym na ekranie losowe znaki - one je po prostu gubiła, najpewniej
    zastępując zerami (albo inną jednolitą wartością, która wskazywała
    sterownikowi ekranu pusty znak).


  • 17. Data: 2021-08-09 10:54:58
    Temat: Re: Asembler 8080 - przerwania i zrzucanie stanu rejestrów na stos
    Od: "J.F" <j...@p...onet.pl>

    On Sat, 7 Aug 2021 11:25:03 +0200, Atlantis wrote:
    > On 06.08.2021 15:16, Janusz wrote:
    >> Albo hazard czasowy na danych lub adresach. Trzeba oscylem sprawdzić
    >> czasy dostępu do pamięci.
    >
    > Podmieniłem wszystkie układy scalone w sterowniku ekranu - nic się nie
    > zmieniło. Gdy już kończyły mi się pomysły, a po kolejnym przeglądzie
    > kody nie widziałem żadnego błędu, w akcie desperacji zacząłem sprawdzać
    > mniej prawdopodobne hipotezy.
    > Zacząłem od podmienienia pamięci SRAM. Nie tej w "karcie graficznej",
    > ale głównej pamięci komputera. Wygląda na to, że trafiłem - komputer
    > działa prawidłowo od kilku godzin, podczas gdy poprzednio problem z
    > przewijaniem ekranu występował po kilku-kilkunastu-minutach.
    >
    > Wygląda na to, że problem z danymi miał miejsce w buforze BLKDAT,
    > pośredniczącym w przesuwanie tekstu na ekranie. Jak dotąd nie trafiłem
    > na tak dziwny problem z pamięcią

    Bo to malo prawdopodobne - wszystko dziala, tylko kopiowanie do
    sterownika ekranu nie. I to kopiowanie czysto programowe.
    Podmien jeszcze raz - zobaczysz czy problem wroci :-)

    Jesli jednak wroci ... sterownik ekranu jakis wolny, i odczytany
    smieci na magistrali jeszcze dlugo?
    Szczegolnie, ze masz tam jeszcze kilka NOP .. no wlasnie - program z
    RAM czy EPROM czytany?


    >- przechodziła test na TL866, działała
    > prawidłowo przez jakiś czas, ale potem zaczynała gubić dane w jednym
    > konkretnym fragmencie - tym, który użyłem na bufor. Nie było problemów z
    > kodem BASIC-a znajdującym się trochę wcześniej, ani zmiennymi
    > systemowymi, które umieściłem za buforem. Co więcej - power cycle
    > przywracał na chwilę prawidłowe działanie.
    > Nie mogę też powiedzieć, żeby pamięć przekłamywała dane, bo wtedy
    > widziałbym na ekranie losowe znaki - one je po prostu gubiła, najpewniej
    > zastępując zerami (albo inną jednolitą wartością, która wskazywała
    > sterownikowi ekranu pusty znak).

    No wlasnie - nie tyle "gubi" co zastepuje zerami.

    Ale to hipoteza, czy jakos sprawdziles, ze tak sie dzieje?

    Bo znow - malo prawdopodobne. Chyba, ze pamiec na granicy parametrow.
    Ale bardziej bym podejrzewal jakis problem z dekoderem adresow -
    moze ci sie cos wcina w te przestrzen.

    J.



strony : 1 . [ 2 ]


Szukaj w grupach

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: