| La procedura
è parzialmente scritta in linguaggio
Assembly. E' probabile che il lettore, in questo momento, non sia in possesso delle
conoscenze di base della programmazione a basso
livello, per cui questa pagina può risultare
incomprensibile; desidero fornirtela comunque, come stimolo per approfondire questa potente tecnica di programmazione
(vedi Sezione
Tutorial Assembly).
| La
procedura
opera un profondo cambiamento sul
carattere coperto dal Cursore del Mouse con l’aiuto
della Funzione 0AH della libreria
INT 33H, caricata in memoria
dal driver del Mouse direttamente da Windows o manualmente dal
prompt del Dos |
| Essa
produce l'effetto desiderato intervenendo direttamente in RAM video
in modo testo [per saperne di più consulta
la
Scheda nella Sezione
Dentro il Computer] cioè
modifica
da software sia il
codice ASCII che l'attributo di colore di
ciascun carattere coperto dal mouse |
| Il
codice proposto è in realtà molto meno potente di quanto
potrebbe essere: infatti CambiaCur2
si limita a manipolare il colore, lasciando inalterato il codice
Ascii del carattere trovato. |
Codice Sorgente |
|
|
|
|
PROCEDURE
CambiaCur2(sfondo,colore:word);
BEGIN
IF (sfondo<16)and(colore<16) THEN
begin
asm
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV CL,8 ;Sposta il byte del colore di primo
MOV AX,colore ;piano da AL a AH, lasciando AL=00H
SAL AX,CL
;
MOV CL,12 ;Sposta il byte di attributo
da DL
MOV DX,sfondo ;a DH, lasciando DL=00H e DH nella
SAL DX,CL ;forma SSSS 0000 con SSSS bitsfondo
ADD DX,AX ;Prepara le maschera da
applicare
MOV CX,00FFH
;lasciando in DH il codice
di atti-
;buto
e DL=00H, CH=00H e CL=FFH
MOV BX,0000H
MOV AX,000AH
INT 33H
POP DX
POP CX
POP BX
POP AX
end;
end;
END;
|
|