🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Problem z przesunięciem ekranu

#666
From: Bogdan (bogdro)
Date: Fri, 03 Nov 2006 11:08
41 lines
4014 bytes
Johnny napisał(a):
> 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ć.

 U mnie (FreeDOS, Award BIOS) jest tak:
- dla CX=7ce program zapełnia jedynkami cały ekran poza ostatnimi
dwoma znakami. Wpisuję '2', pojawia się '2'. Znów wpisuję '2', pojawia
się '2' i ekran przewija się o wiersz w dół.
- dla CX=7cf program zapełnia jedynkami cały ekran poza ostatnim
znakiem. Wpisuję '2', pojawia się '2' i ekran przewija się o wiersz w
dół. Wpisuję '2', pojawia się '2' w nowym wierszu.

 Podsumowując: u mnie działa. Poza kosmetyką nie zmieniałem kodu.

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Technical Details
Message-ID: <eif80n$re1$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.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> <ei4g2h$8f5$1@atlantis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Bogdan (bogdro)" <bogdan@bogdan.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Problem z przesunięciem ekranu
Date: Fri, 03 Nov 2006 12:08:42 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 41
Message-ID: <eif80n$re1$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> <ei4g2h$8f5$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: actr4.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1162552151 28097 83.11.71.4 (3 Nov 2006 11:09:11 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Fri, 3 Nov 2006 11:09:11 +0000 (UTC)
User-Agent: Thunderbird 1.5.0.7 (X11/20060909)
In-Reply-To: <ei4g2h$8f5$1@atlantis.news.tpi.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit