Article View: pl.comp.lang.asm
Article #669Re: Problem z przesunięciem ekranu
From: Wiktor S.
Date: Fri, 22 Sep 2006 09:20
Date: Fri, 22 Sep 2006 09:20
100 lines
3392 bytes
3392 bytes
> No więc poddaję się. Próbuję przewalczyć "błąd przedostatniej i > ostatniej kolumny" ale bez pozytywnych rezultatów. Poniżej zamieszczam > uproszczoną wersję bez przesuwania ekranu. Nie korzystam już z funkcji > 10h przerwania 16h lecz 8h - 21h ale to niewiele zmieniło. > > Czy ktoś potrafi wskazać gdzie leży błąd lub przerobić to na > działającą wersję z wykorzystaniem tych samych funkcji? > > Kolega Matuzalem bardzo się starał i za to mu dziękuję. Jednak teorii > podanej w jego odpowiedziach nie udało mi się przełożyć na praktykę. > title ekran > .model small > .stack 100h > .386 > .code > ;--------------------------------------------- > ; main > ;--------------------------------------------- > main proc > mov ax,@data ; inicjalizacja ds > mov ds,ax > > xor ah,ah ; minimalny tryb wideo > mov al,1h > int 10h > > mov ah,0fh ; odczyt liczby kolumn > int 10h > dec ah ; l kolumn - 1 bo indeks zaczyna się od zera > mov lcol,ah > > mov cx,040ah ; licznik > > odczyt: > mov ah,8h > int 21h > > cmp al,1bh ; czy ESC > je exit > > mov ah,0ah ; zapis znaku > xor bh,bh > push cx > mov cx,1h > int 10h > pop cx > > call przesun > > loop odczyt > > exit: > mov ax,4C00h ; zakończenie procedury > int 21h > main endp > > > ;--------------------------------------------- > ; przesun > ;--------------------------------------------- > przesun proc > pusha ; wszystko na stos > > mov ah,3h ; odczytaj położenie wskaźnika > xor bh,bh > int 10h > > mov ah,2h ; przesuń wskaźnik > xor bh,bh > cmp dl,lcol > je nwiersz > inc dl > jmp exec > > nwiersz: > mov dl,0h > inc dh > > exec: > int 10h > > popa > ret > > przesun endp > > .data > lcol db ? > end main SOA#1. Program po zapełnieniu całego ekranu (nie brakuje żadnego znaku) zaczyna mazać po nieistniejącym wierszu poniżej ekranu, co skutkuje rychłym wysypaniem. -- Azarien
Technical Details
Message-ID:
<ef09tp$gjk$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<ee8g03$ia2$1@nemesis.news.tpi.pl> <eeb7nb$1r0$1@nemesis.news.tpi.pl> <1158244982.390461.281100@m73g2000cwd.googlegroups.com> <1158247875.473696.47560@e3g2000cwe.googlegroups.com> <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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: "Wiktor S." <azi@daleko.ANTISPAM.be> Newsgroups: pl.comp.lang.asm Subject: Re: Problem z przesunięciem ekranu Date: Fri, 22 Sep 2006 11:20:59 +0200 Organization: Onet.pl Lines: 101 Message-ID: <ef09tp$gjk$1@news.onet.pl> References: <ee8g03$ia2$1@nemesis.news.tpi.pl> <eeb7nb$1r0$1@nemesis.news.tpi.pl> <1158244982.390461.281100@m73g2000cwd.googlegroups.com> <1158247875.473696.47560@e3g2000cwe.googlegroups.com> <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> NNTP-Posting-Host: 155.168.wmc.com.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1158916857 17012 87.250.168.155 (22 Sep 2006 09:20:57 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Fri, 22 Sep 2006 09:20:57 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962 X-Sender: 63e3folRCjcGWUjNfLSN0w== X-Newsreader: Microsoft Outlook Express 6.00.2900.2869 X-Priority: 3 X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit