Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Shark20 01:56
 » MARC 01:54
 » RoBakk 01:51
 » Rybeck 01:27
 » Martens 01:06
 » rainy 00:57
 » spidi 00:42
 » Paweł27 00:36
 » m&m 00:35
 » rzymo 00:35
 » b0b3r 00:22
 » dugi 00:21
 » NWN 00:20
 » Logan 00:16
 » mnih 00:10
 » cVas 00:08
 » Wedrowiec 00:08
 » Visar 00:06
 » Raist 00:04
 » muerte 00:04

 Dzisiaj przeczytano
 41141 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

Nurtujące pytanie z... Pascala ;). Jak wyświetlić znak w komórce 80x25 BEZ , Chrisu 22/01/12 09:50
przesunięcia spowodowanego przez wyświetlenie kursora. Dodam, że ukrycie kursora nie pomaga.

/// GG# 1 110 10 10 11 100 10 \\\

  1. hmm , kubazzz 22/01/12 13:23
    write? nie zadziała?
    Ja robiłem takie rzeczy, ale teraz już nie pamiętam dokładnie..

    SM-S908

  2. Re: , Kool@ 22/01/12 13:40
    Dawno to było i niewiele pamiętam z Pascala ale może to będzie pomocne
    GOTOXY(80,25)

    ...

    1. kursor wyskakuje za znakiem. , Chrisu 22/01/12 19:50
      123

      /// GG# 1 110 10 10 11 100 10 \\\

  3. asm , resmedia 22/01/12 15:48
    musisz wywołać funkcję 09H lub 0AH przerwania 10H

    desipere est juris gentium

    1. robiłem tak: , Chrisu 22/01/12 19:51
      rej.AH:=3;
      intr($10,rej);
      with rej do
      begin
      kp:=ch;
      kk:=cl;
      ah:=1;
      ch:=16;
      cl:=0
      end;
      intr($10,rej);


      I guzik :( Ukrywa kursor, ale go nie "likwiduje" na amen.

      /// GG# 1 110 10 10 11 100 10 \\\

    2. kursora nie musisz ukrywać , resmedia 22/01/12 22:48
      ustawiasz go na (80,25)
      w AH ładujesz 09H
      w AL ładujesz znak (kod ascii)
      w BX ładujesz atrybuty (kolor tekstu i tła)
      w CX ładujesz licznik powtórzenia wystąpienia znaku (tego z AL) - w tym przypadku będzie to 1
      i wywołujesz INT 10H
      znak powinien się wyświetlić, a kursor nie przesunie się

      desipere est juris gentium

  4. Może pomoże... , Tig3r 22/01/12 17:46
    http://answers.yahoo.com/...=20100928115820AAdRVPE

  5. tryb tekstowy , Visar 22/01/12 23:58
    o rozdzielczości 80 x 25 bierze dane z obszaru pamięci $b800:$0000, więc w Pascalu możesz sobie zdefiniować tablicę:

    ekran : array[0..4000] of byte absolute $b800:$0000;

    i teraz możesz pisać bezpośrednio po pamięci ekranu. Wstawienie znaku na współrzędnych 80 x 25 wygląda tak:

    ekran[24 * 160 + 79 * 2] := Ord('x');

    gdzie x to znak do wyświetlenia, 24 numer wiersza (liczony od 0), 79 numer kolumny (również liczony od zera)

    Linia ma 160 znaków, ponieważ w pamięci ekranu za każdy znak odpowiadają 2 bajty, piewszy to kod znaku, drugi to atrybuty (kolor znaku - bity 0 - 3, kolor tła - bity 4 - 6, miganie - bit 7)

    Visar

    1. dzięki , Chrisu 23/01/12 10:29
      chyba i tak nici z tego. w "nowszych" kompilatorach (nie TP) bezpośredni zapis do pamięci jest wyłączony :/

      /// GG# 1 110 10 10 11 100 10 \\\

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL