🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Problem z przesunięciem ekranu

#669
From: Wiktor S.
Date: Fri, 22 Sep 2006 09:20
100 lines
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-mail
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>

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