Newsgroup: it.comp.lang.c
Titolo: consolle...

Ciao a tutti.
Mi sono creato una funzione in assembly per posizionare il cursore in
una coordinata dello schermo usando l'interrupt adatto (non mi ricordo
il numero ma l'ho visto su helppc21).
qualcuno mi potrebbe dire come cancellare lo schermo (naturalmente
senza usare funzioni tipo clrscr() ma usando interrupt in asm)?? Potre
accedere direttamente alla memoria video del PC, ma visto che non mi
interessa la velocità in questo caso, preferirei usare un int adatto.
Grazie anticipatamente
Ciao, David...................

interessa la velocità in questo caso, preferirei usare un int adatto.
E che motivo hai di riscriverti la funzione clrscr? Anche quella della
libreria conio utilizza l'interrupt 10h per cancellare il video; anzi, se
utilizzi il directvideo, la clrscr dovrebbe andare a scrivere direttamente
in memoria video, velocizzando di molto il tutto.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

in memoria video, velocizzando di molto il tutto.
Semplicemente non uso il compilatore Borland.
Perchè, gli altri compilatori la supportano???
Ciao, David.


 
e, di grazia... cosa farebbe di tanto diverso clrscr()??
Perche' riscrivere le funzioni??
Semmai accedi direttamente alla mem video, almeno guadagni qualcosa...
-- 
Emanuele Cesena                 
http://www.penguinpowered.com/~ecesena
ece...@penguinpowered.com
                 Attenti all'antispam NOSPAM
Combattiamo solamente quando non c'e' altra scelta.  Noi preferiamo le
vie di un contatto pacifico.
		-- Kirk, "Spectre of the Gun", data astrale 4385.3

Perche' non provi a risettare la modalita' video corrente:
INT 10 - VIDEO - GET CURRENT VIDEO MODE
        AH = 0Fh
Return: AH = number of character columns
        AL = display mode 
        BH = active page
INT 10 - VIDEO - SET VIDEO MODE
        AH = 00h
        AL = mode
(copiato dall'"Interrupt List" di Ralf Brown)
Quando chiami la funzione 00h la memoria video viene automaticamente
cancellata e se non sbaglio, il cursore viene riportato all'origine.
Prova a vedere se puo' andare bene.
Ciao
RSte

Perchč, gli altri compilatori la supportano???
Alcuni si, per esempio il DJGPP.


...
#>qualcuno mi potrebbe dire come cancellare lo schermo (naturalmente
#>senza usare funzioni tipo clrscr() ma usando interrupt in asm)?? Potre
#>accedere direttamente alla memoria video del PC, ma visto che non mi
#>interessa la velocità in questo caso, preferirei usare un int adatto.
#E che motivo hai di riscriverti la funzione clrscr? Anche quella della
#libreria conio utilizza l'interrupt 10h per cancellare il video; anzi, se
#utilizzi il directvideo, la clrscr dovrebbe andare a scrivere direttamente
#in memoria video, velocizzando di molto il tutto.
La funzione clrscr() non è standard, cosi' come l'intera libreria
conio.h che, tra l'altro, appartiene solo ai compilatori Borland e
DJGPP che io sappia.
Esiste una funzione dell'interrupt 10h che assolve a questo compito ma
francamente non ricordo quale sia.
La soluzione alternativa e' azzerare il contenuto della memoria video
che per il modo testo in modalita' reale parte dall'indirizzo
0xb800:0x0 ed e' lungo 4000 byte.
La struttura e' organizzata come
Carattere+Attributo+Carattere+Attributo+.......
In ogni caso queste indicazioni riguardano prettamente i PC.
........................................................
.                                                      .
. Andrea Laforgia        (
andrea_...@bigfoot.com
) .
.                                                      .
........................................................