Newsgroup: it.comp.lang.pascal
Titolo: ClrScr...

Guardando i post vecchi su google, ho trovato questa procedura:
Procedure clrscr; Assembler;
Asm
    Mov AX,13h
    Int 10h
end;
Ora non conoscendo (pochissimo) l'assembler, qualcuno può gentilmente
commentarmi questo scriciolo di codice :) ?
Grazie in anticipo
Ciao a tutti
--
=Omega======================
"Hands On"
============================

 commentarmi questo scriciolo di codice :) ?
Inizializzazione del modo grafico 320x200 256 colori.

 Grazie in anticipo
mov ax, 13h carica il valore 13 nel registro ax, int 10h richiama
l'interrupt
10h, cioe' quello del bios.  AX e' un registro a 16 bit che e' mappato
sopra i
due reg a 8 bit  AH e AL, quindi metterci 13h e equivale a mettere 00
in AH e 13 in AL, richiedendo quindi al bios il seguente servizio:
INT 10 - VIDEO - SET VIDEO MODE
        AH = 00h
        AL = desired video mode (see #00010)
Return: AL = video mode flag (Phoenix, AMI BIOS)
            20h mode > 7
            30h modes 0-5 and 7
            3Fh mode 6
        AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
Desc:   specify the display mode for the currently active display
adapter
e 13h corrisponde alla modelita' video 40x25 caratteri / 320x200x8bit
saluti,
Dreadnaut
-- 
(morning would be easier if I had coffee)

 e 13h corrisponde alla modelita' video 40x25 caratteri / 320x200x8bit
Una nota, non tanto per Dreadnaut che presumo lo sappia,
ma per Omega che potrebbe interpretare male :)
Quel 40x25 caratteri non vuol dire che si inizializza
una modalita' testo a 40x25 caratteri, si lavora
sempre in modalita' grafica e l'area di memoria
su cui si va a lavorare e' sempre quella dedicata
alla modalita' grafica (0A000h).
Se vuoi una modalita' testo 40x25 devi utilizzare
AL = 0.

 Dreadnaut
Come sempre un....
for i:=1 to 3 do
                    begin
                    i:=i-1;
                    writeln('Grazie!!!');
                    end;
:)
Ringrazio anche Bane per la nota :) grazzziee ^^


Correttametne è così:
 Procedure ClrScr; Assembler;
  Asm
     Mov AX,03h
     Int 10h
  End;
Ti sarai imbrogliato a copiare :-)
In pratica esistono delle funzioni che sono date dalla BIOS, queste funzioni
possono essere richiamate tramite Interruzioni, la Int 10h permette di
richiamare sotto Dos, le interruzioni della BIOS che danno le funzioni di
base per la grafica.
in AH e AL vanno i parametri di tali funzioni.
in AL va la modalità in cui si vuole passare, quella da te indicata 13h è
una modalità standard, che prima veniva sempre utilizzata assime alla
modalità X, per i videogames, siccome appunto era standard e funzionava allo
stesso modo su tutte le schede grafiche che arrivavano almeno a 320x200x256
colori.
siccome il Dos funziona in mode testo, a 40x25x16 colori, la modalità
corrispondente a quella modalità è la 03.
Puoi anche realizzare un Clear Screen cancellando il buffer all'indirizzo di
memoria B8000 e poi portare il cursore in Alto con un'altra istruzione, se
non vuoi cambiare modalità di testo per pulire...

La modalità X, era così chiamata perchè era in realtà sconosciuta a molti,
ed era la 320x240x256, in questa modalità la memoria video non era più
organizzata linearmente come nella 320x200x256, ma era organizzata in un
modo strano, diventava una specie di matrice che però permetteva di
sfruttare alcune particolarità delle schede grafiche. La modalità X fece il
suo esordio nei giochi commerciali con Pinball Fantasies, il quale fu il
primo videogame divenuto poi famoso a sfruttare quella modalità standard
quasi segreta, tutto questo però a memoria d'uomo, quindi potrei aver detto
qualche imprecisione.

, Giovanni Ceglia says...

In realta' non era organizzata in modo cosi' strano, si lavorava
su 4 piani anziche' 1 per poter superare l'ostacolo dei 64K di
memoria video.
Non ho mai scoperto l'origine del nome X, ho pero' sentito molte
volte la tesi che hai esposto. Onestamente mi e' sempre
parsa piuttosto improbabile, cercando un po' si trovavano
numerosi esempi che utilizzavano questa modalita'. Ho
addirittura un libro in _italiano_ (Guida alle schede EGA/VGA)
che spiega tutti i registri delle schede grafiche EGA/VGA
(tramite i quali si possono fare varie cose, tra cui inizializzare
la modalita' X). Tutto cio' ben prima di Pinball Fantasies
(che non ricordavo fosse il primo ad utilizzarla, ma se e'
vero va sicuramente lodato per questo :))

 vero va sicuramente lodato per questo :))
Ovviamente intendevo "il primo gioco _commerciale_
ad utilizzarla" :)