🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #665

Re: Problem z przesunięciem ekranu

#665
From: Johnny
Date: Mon, 30 Oct 2006 09:18
84 lines
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-mail
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>

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