Article View: pl.comp.lang.asm
Article #641Re: Problem z przesunięciem ekranu
From: Johnny
Date: Thu, 14 Sep 2006 09:32
Date: Thu, 14 Sep 2006 09:32
106 lines
3271 bytes
3271 bytes
Mam kolejny problem. Wszystko u mnie działa pięknie do momentu gdy wskaźnik nie dojdzie do ostatniego wiersza i przedostatniej kolumny wówczas wprowadzony znak nie zostaje wyświetlony, pojawia się on dopiero wtedy gdy następuje przewinięcie okna. I tak się dzieje cały czas znak z przedostatniej kolumny nie jest wyświetlany. Nie mam pojęcia dlaczego. Podejrzewam, że może atrybut w pamięci dla tego obszaru jest "dziwny" ale po pierwsze niby dlaczego po drugie nie potrafię go podejrzeć (podgląd B800 w trybie debugowania CodeView pokazuje mi oczywiście zawartość bieżącego okna). Poniżej zamieszczam kod programu. Może ktoś wie w czym rzecz. title 6_04 .model small .stack 100h .386 .code ;--------------------------------------------- ; main ;--------------------------------------------- main proc mov ax,@data ; inicjalizacja ds mov ds,ax mov ah,0h ; ustawienie trybu grafiki mov al,1h mov bh,0h int 10h mov ah,3h ; odczytanie położenia wskaźnika int 10h odczytaj: ; odczyt znaku mov ah,10h mov bh,0h int 16h cmp ah,1h ; jeżeli wprowadzono ESC zakończ program je exit cmp ah,2h ; jeżeli wprowadzono znak z zakresu 0-9 jb odczytaj ; wyświetl go i przesuń wskaźnik cmp ah,0Bh ja odczytaj ;mov ah,0Ah ; wyświetl znak ;mov bh,0h ;mov cx,1h ;int 10h mov ah,9h ; wyświetl znak mov bh,0h mov bl,7h mov cx,1h int 10h inc dl ; zwiększ wskaźnik kolumny ;cmp dl,4Fh ; sprawdź czy to nie jest ostatnia kolumna cmp dl,27h ja next_row ; jeśli tak to przejdź do następnego wiersza mov ah,2h ; ustaw wskaźnik kolumnę dalej int 10h jmp odczytaj next_row: ; przejście do następnego wiersza inc dh ; zwiększ wskaźnik wiersza cmp dh,18h ; sprawdź czy to nie jest ostatni wiersz ja scroll ; jeśli tak skocz do sekcji przewijania okna mov ah,2h ; ustaw wskaźnik w nowym wierszu mov dl,0h int 10h jmp odczytaj ; odczytaj kolejny znak scroll: ; przewiń okno mov ah,6h mov al,1h xor cx,cx ;mov dl,4Fh mov dl,27h mov dh,18h mov bh,7h int 10h mov ah,2h ; ustaw wskaźnik w nowym wierszu mov bx,0h mov dl,0h mov dh,18h int 10h jmp odczytaj ; odczytaj kolejny znak exit: mov ax,4C00h ; zakończenie procedury int 21h main endp .data end main -- Johnny
Technical Details
Message-ID:
<eeb7nb$1r0$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<ee8g03$ia2$1@nemesis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Johnny <johnny_bez_spamu_@klub.chip.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Problem z przesunięciem ekranu Date: Thu, 14 Sep 2006 11:32:38 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 106 Message-ID: <eeb7nb$1r0$1@nemesis.news.tpi.pl> References: <ee8g03$ia2$1@nemesis.news.tpi.pl> NNTP-Posting-Host: nat-132.wasko.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1158226475 1888 193.178.240.132 (14 Sep 2006 09:34:35 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 14 Sep 2006 09:34:35 +0000 (UTC) User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) In-Reply-To: <ee8g03$ia2$1@nemesis.news.tpi.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit