Article View: pl.comp.lang.asm
Article #665Re: Problem z przesunięciem ekranu
From: Johnny
Date: Mon, 30 Oct 2006 09:18
Date: Mon, 30 Oct 2006 09:18
84 lines
3780 bytes
3780 bytes
Wracam do problemu. Kod przesłany przez Matuzalem'a - za który dziękuję - jest o tyle wadliwy, że wyświetlenie znaku występuje co drugie naciśnięcie klawisza. W ramach eksperymentów postanowiłem uprościć sprawę i wykorzystać funkcję 0eh przerwania 10h, która sama dba o przewinięcie ekranu. Ku mojemu zdumieniu funkcja ta zachowuje się podobnie jak w przypadku mojej "ręcznej" obsługi przewinięcia, tzn. nie wyświetla przedostatniego znaku ostatniego wiersza aż do momentu przewinięcia ekranu. Poniżej zamieszczam kod. Proszę poeksperymentować z licznikiem pętli pozwalającym zaobserwować różne zachowanie programu: dla mov cx,7ceh program zatrzyma się przed przedostatnią kolumną i poczeka na wprowadzenie znaku, następnie przesunie się do ostatniej kolumny NIE WYŚWIETLAJĄC wprowadzonego znaku i znowu czeka na wprowadzenie znaku i dopiero po wprowadzeniu kolejnego znaku przewija ekran i pokazuje poprawnie wszystkie znaki. Natomiast dla 7cfh program zatrzymuje się przed ostatnią kolumną WYŚWIETLAJĄC przedostatni znak. Pocieszam się tym, że w RBILu jest wzmianka o błędach przewijania w niektórych biosach. Co prawda nie ma takiej wzmianki dla trybu video 1h no ale może to jest po prostu nieudokumentowane. No albo robię jakiś błąd, którego nikt nie potrafi zauważyć. .model tiny .stack 100h .386 .code org 100h main proc mov ah,0h ; ustawienie trybu grafiki mov al,1h mov bh,0h int 10h mov cx,7ceh ;mov cx,7cfh petla: cmp ah,1h ; jeżeli wprowadzono ESC zakończ program je exit mov ah,0eh ; wyświetl znak mov al,'1' int 10h loop petla mov ah,07h int 21h mov ah,0eh ; wyświetl znak mov bh,0h mov bl,7h mov cx,1h int 10h mov ah,07h int 21h mov ah,0eh ; wyświetl znak mov bh,0h mov bl,7h mov cx,1h int 10h mov ah,07h int 21h exit: mov ax,4C00h ; zakończenie procedury int 21h main endp .data end main -- Johnny
Technical Details
Message-ID:
<ei4g2h$8f5$1@atlantis.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!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<eedgj5$hl8$1@atlantis.news.tpi.pl> <1158314745.102416.285490@p79g2000cwp.googlegroups.com> <1158315621.847716.34500@p79g2000cwp.googlegroups.com> <eee9ll$38u$1@atlantis.news.tpi.pl> <1158328549.838592.247550@m73g2000cwd.googlegroups.com> <eelk74$rmc$1@atlantis.news.tpi.pl> <1158601023.863820.102920@k70g2000cwa.googlegroups.com> <eequ8i$goo$1@atlantis.news.tpi.pl> <eer5cm$tiu$1@achot.icm.edu.pl> <eerbfh$i9l$1@nemesis.news.tpi.pl> <1158767448.505059.102840@d34g2000cwd.googlegroups.com> <eetfki$9hn$1@nemesis.news.tpi.pl> <1158837872.369946.179520@d34g2000cwd.googlegroups.com> <eetu2a$bog$1@atlantis.news.tpi.pl> <1158842844.821659.235420@i42g2000cwa.googlegroups.com> <eeusko$sal$1@atlantis.news.tpi.pl> <1158880927.023780.38570@d34g2000cwd.googlegroups.com> <ef06hb$8a5$1@atlantis.news.tpi.pl> <1158916948.171607.71750@m73g2000cwd.googlegroups.com>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!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: Mon, 30 Oct 2006 10:18:46 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 84 Message-ID: <ei4g2h$8f5$1@atlantis.news.tpi.pl> References: <eedgj5$hl8$1@atlantis.news.tpi.pl> <1158314745.102416.285490@p79g2000cwp.googlegroups.com> <1158315621.847716.34500@p79g2000cwp.googlegroups.com> <eee9ll$38u$1@atlantis.news.tpi.pl> <1158328549.838592.247550@m73g2000cwd.googlegroups.com> <eelk74$rmc$1@atlantis.news.tpi.pl> <1158601023.863820.102920@k70g2000cwa.googlegroups.com> <eequ8i$goo$1@atlantis.news.tpi.pl> <eer5cm$tiu$1@achot.icm.edu.pl> <eerbfh$i9l$1@nemesis.news.tpi.pl> <1158767448.505059.102840@d34g2000cwd.googlegroups.com> <eetfki$9hn$1@nemesis.news.tpi.pl> <1158837872.369946.179520@d34g2000cwd.googlegroups.com> <eetu2a$bog$1@atlantis.news.tpi.pl> <1158842844.821659.235420@i42g2000cwa.googlegroups.com> <eeusko$sal$1@atlantis.news.tpi.pl> <1158880927.023780.38570@d34g2000cwd.googlegroups.com> <ef06hb$8a5$1@atlantis.news.tpi.pl> <1158916948.171607.71750@m73g2000cwd.googlegroups.com> NNTP-Posting-Host: nat-132.wasko.pl Mime-Version: 1.0 X-Trace: atlantis.news.tpi.pl 1162199953 8677 193.178.240.132 (30 Oct 2006 09:19:13 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Mon, 30 Oct 2006 09:19:13 +0000 (UTC) User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) In-Reply-To: <1158916948.171607.71750@m73g2000cwd.googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit