🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Problem z przesunięciem ekranu

#630
From: Matuzalem
Date: Wed, 13 Sep 2006 10:47
84 lines
3919 bytes
Johnny napisał(a):
> Mam drobny problem z przesunięciem ekranu. Otóż sam efekt przesunięcia
> tekstu o 1 wiersz potrafię osiągnąć lecz po tym zabiegu nie są widoczne
> dalsze wpisywane znaki (0-9). Prawdopodobnie niewłaściwie ustawiam
> położenie wskaźnika przy pomocy int 10h i ah=2h. Próbowałem z różnymi
> ustawieniami dh (wiersze) ale bezskutecznie. Mógłby ktoś rzucić na to
> okiem? Dzięki z góry.
>
> title 6_04
> .model small
> .stack 100h
> .386
> .code
> ;---------------------------------------------
> ; main
> ;---------------------------------------------
> main proc
> mov ax,@data		; inicjalizacja ds
> mov ds,ax
>
> mov ah,0h		; ustawienie trybu video
> mov al,3h              ; wybór trybu
> int 10h                  ; wywołanie BIOS

   mov ah, 5h            ; wybranie funkcji stronicy
   mov al, 0               ; wybranie stronicy
   int 10h                  ; wywołanie BIOS

> mov ah,3h             ; odczytanie położenia wskaźnika
   mov bh, 0              ; stronica
> int 10h                  ; wywołanie BIOS

   mov ah, 2              ; ustawienie położenia wskaźnika
   mov dh, 10            ; wiersz
   mov dl, 20             ; kolumna
   mov bh, 0              ; stronica
   int 10h                  ; wywołanie BIOS

; uzyskanie położenia wskaźnika
; CH - początkowy wiersz kursora
; CL - końcowy wiersz kursora
; DH - wiersz wskaźnika
; DL - kolumna wskaźnika

   mov ah, 3             ; uzyskanie położenia wskaźnika
   mov bh, 0             ; stronica
   int 10h                 ; wywołanie BIOS

; pobieranie danych

   mov cursor, cx     ; zapisanie wierszy wskaźnika
   mov cur_row, dh   ; zapisanie wiersza
   mov cur_col, dl     ; zapisanie kolumny

; ------------------ Przykład ----------------
; poniższy kod oczyszcza cały ekran poprzez przewinęcie
; go do góry (normalne atrybuty pustych wierszy)

   mov ah, 6            ; przewinięcie do góry
   mov al, 0             ; całe okno
   mov ch, 0            ; wiersz dla lewy-górny wierzchołek
   mov cl, 0             ; kolumna dla lewy-górny wierzchołek
   mov ah, 24          ; wiersz dla prawy-donly wierzchołek
   mov dl, 79           ; kolumna dla prawy-dolny wierzchołek
   mov bh, 7            ; normalny atrybut dla pustych wierszy
   int 10h                ; wywołanie BIOS

[...]

> exit:
> mov ax,4C00h		; zakończenie procedury
> int 21h                     ; wywołanie DOS
> main endp
>
> end main
; -----------------------------------------------------------

INT 10h: Screen -> http://www.bookcase.com/library/dos/ints/int10.html

Mam nadzieje, że gdzieś się nie machłem :P :]


Pozdrawiam
Technical Details
Message-ID: <1158144422.515053.10400@d34g2000cwd.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!d34g2000cwd.googlegroups.com!not-for-mail
References: <ee8g03$ia2$1@nemesis.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!news.germany.com!postnews.google.com!d34g2000cwd.googlegroups.com!not-for-mail
From: "Matuzalem" <codemaster_@op.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Problem z przesunięciem ekranu
Date: 13 Sep 2006 03:47:02 -0700
Organization: http://groups.google.com
Lines: 89
Message-ID: <1158144422.515053.10400@d34g2000cwd.googlegroups.com>
References: <ee8g03$ia2$1@nemesis.news.tpi.pl>
NNTP-Posting-Host: 212.244.115.33
Mime-Version: 1.0
X-Trace: posting.google.com 1158144426 23512 127.0.0.1 (13 Sep 2006 10:47:06 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 13 Sep 2006 10:47:06 +0000 (UTC)
In-Reply-To: <ee8g03$ia2$1@nemesis.news.tpi.pl>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6,gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: d34g2000cwd.googlegroups.com; posting-host=212.244.115.33;   posting-account=HFFdEQ0AAACI08bdAnMScVqwVEj2ucOg
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit